Atenção

Blog em construção... Se tiver sugestões, serão bem vindas !!!

sábado, 27 de novembro de 2010

Instalando o Windows 7 pelo pendrive

Para instalar o Windows 7 pelo pendrive seu computador precisa ter suporte ao boot pelo drive USB, comum nos computadores atuais, mas pode ser que não exista em máquinas mais antigas, verifique no setup da bios se seu PC tem a opção de boot por USB. Outro requisito importante é um pendrive de no mínimo 4GB para colocar todos os arquivos de instalação do Windows 7.

Se ainda não fez o download do Windows 7, leia o artigo Download do Windows 7 antes de continuar.

Preparando o pendrive

Com o pendrive conectado a seu computador, acesse o menu Iniciar > Executar
Digite DISKPART e clique em OK, será aberto uma janela DOS (Prompt de comando)
Digite os comandos abaixo em sequência, pressione ENTER ao final de cada comando.
  • List Disk (Lista dos discos conectados ao seu computador)
  • Select Disk X (Troque X pelo número do volume referente ao pendrive)
  • Clean (Apagar os dados do pendrive)
  • Create partition primary (Criar partição primária)
  • Active (Ativar a partição criada)
  • Format fs=fat32 quick (Formatar o pendrive)
  • Assign (Efetivar as alterações)
  • Exit (Sair da janela DOS)
Agora descompacte o arquivo ISO do Windows 7 que baixou  e copie todo o seu conteúdo para o pendrive. Você também pode copiar o conteúdo de um DVD que tenha o Windows 7 gravado.

Instalando o Windows 7

Conecte o pendrive, reinicie a máquina, dê o boot pelo USB e faça a instalação do Windows 7.
Se tiver alguma dúvida na instalação, leia o artigo Download do Windows 7 e instalando o Windows 7 mantendo a instalação do XP ou Vista.

Windows 7: instalei pelo pen drive e deu certo


O sistema operacional: Windows 7 Home Basic RTM.
A vítima: um netbook HP 1120BR com Windows XP Home em português.
O motivo: ver se funciona, usar o 7 como sistema operacional principal, testar a compatibilidade de outros programas sob o 7.
O problema: o netbook não tem um drive de CD externo. Nem eu.
A solução: instalar pelo pen drive.
Fase 1: preparando o pen drive
Materiais necessários:
- Pen drive de 4 GB ou mais.
- PC com XP ou Vista (no Mac tem um esquema no Terminal, mas desencane).
- DVD de instalação do Windows 7 ou arquivo ISO com sua imagem.
Observação: Segui as instruções da própria Microsoft, mas não deu certo na primeira vez. Culpa minha: apressado, só li as regras, mas não vi o vídeo. Me dei mal, depois deu certo.
O que você tem que fazer para preparar o memory key:
- Menu Windows | CMD | Diskpart (o maldito User Control do Vista vai piscar).
- insira o pen drive na porta USB (se colocar antes de abrir o Diskpart ele não aparece e você passa raiva).
- digite disk list. o pen drive, aqui, é o disco 2.
- digite select disc 2 (ou o número que aparecer)
- digite clean | depois create partition primary | depois active (isso cria a partição no pen drive e a ativa para o boot).
- formate o disco: format fs=fat32 quick. Depois disso, o Vista mostrou que o pen drive estava novamente “montado” como unidade externa.
Pronto, a primeira parte do pen drive está OK. Agora, você precisa copiar o conteúdo do DVD de instalação do Windows 7 para ele:
*__________*
Se, como eu, tudo que você tiver for uma imagem ISO do disco, vai precisar de um drive virtual como o Virtual CloneDrive para “montar” a imagem no seu desktop e copiar os arquivos. Eu usei o Daemon Tools e foi numa boa. Terminado o processo de cópia de arquivos, seu pen drive está pronto para dar boot no PC e instalar o Windows 7.
Fase 2: instalando o Windows 7 Home Basic
Com o pen drive em mãos, reiniciei o netbook HP e pedi para dar o boot pelo memory key. Funcionou e o instalador do 7 começou a funcionar:
*__________*
Uma pequena observação: escolhi o Home Basic para o netbook por acreditar que era a melhor opção (leve, sem frescura) para a máquina, sem frescuras gráficas (Aero) e capaz de abrir vários programas ao mesmo tempo. Poderia ter ido de Starter Edition, mas não quis arrumar encrenca com o Nagano, que quer brincar com o Starter em paz…
O instalador do 7 me perguntou se eu queria um upgrade ou uma instalação limpa. Como o netbook estava zerado, fui sem medo na instalação limpa. O processo todo demorou cerca de 25 minutos com direito a algumas reinicializações da máquina durante o processo. E deu tudo certo:
*__________*

Considerações finais:
O HP 1120 “amou” o Windows 7. O boot demora um pouco, mas não é um problema sério se contar como os programas funcionam bem mais rápido no Windows 7, e esse acredito ser o principal diferencial do sistema operacional da Microsoft (mais a falar sobre o tema em outros posts).
Nenhum aplicativo deu problema para instalar, e o único componente de hardware que não foi reconhecido no netbook foi o microfone (!). Nenhum outro componente reclamou falta de drivers.
Como fez o Nagano, aí vai minha lista de programas instalados até o momento no 1120:
  • Norton Internet Security 2009: OK
  • Microsoft Office 2007: OK (fiz instalação apenas com Word, Excel, PowerPoint e Outlook)
  • Paint.NET: OK
  • Mozilla Firefox: OK
  • Google Chrome: OK
  • Nokia PC Suite: OK (e aceitou o 5800 como modem logo após a instalação do programa)
  • Adobe Reader 9: OK (e identificou o sistema operacional como Windows 7 no site da Adobe: já tenho um software nativo)
Na sequência, o Windows 7 já baixou as primeiras atualizações de sistema (foram 14 numa leva só), com direito ao driver de vídeo da Intel, que passou a aparecer na barra inferior da tela quando religuei a máquina.
Por curiosidade, fiz o velho e bom teste de desempenho da máquina sob o Windows 7. O índice de experiência do Windows foi meio deprimente. Como é uma máquina para internet e textos, desempenho aqui não importa muito:

*__________*

domingo, 21 de novembro de 2010

Quanto vale 1X nas gravações de CD/DVD?

Antigamente, os primeiros gravadores de CD gravavam na velocidade padrão de 150
kb/s, que ficou padronizada na indústria como padrão 1x. Então, basta pegar 150
kb/s multiplicar por 48 que você terá a velocidade de 7200 kb/s, por exemplo.
Para DVD a velocidade de 1x é de 2750 kb/s. Então, basta multiplicar...

Ou, então, pegue 7200 e divida por 48 para ver quanto dá... é o valor do "x". É
matemática básica !!!!

Então 1x de CD (de não sei quantos anos atrás) é óbvio que é diferente do 1x do
DVD, recentíssimo...

Eu, por exemplo, só gravo CD-Audio e as matrizes da video aula na velocidade de
1x ou, no máximo 2x (300 kb/s). Nunca deu erro em aparelho nenhum ! O mesmo com
os DVDs... Outro detalhe importante: muitos leitores de CD-Audio apenas decifram
150 kb/s, principalmente os vindo dos EUA, por isso atribuiem a má-fama aos cds
gravados... Na verdade, quem os gravou não soube fazer certo...





Quanto vale X nas gravações?

Hoje em dia ao comprar um gravador de DVD o mínimo
que pode acontecer é você não entender nada da
nomenclatura empregada. Em algumas caixas, juntando
especificações da parte CD com a parte DVD você vai
dar de cara com pelo menos nove velocidades "X"
diferentes. Mas quanto vale "X"?

"X" não vale nada. "X" é marketing, uma medida de
coisa alguma e o pior: atribuída a coisas totalmente
diferentes como CD e DVD.

Todos fabricandes de gravadores de CD chegaram à
velocidade 52x e vários voltaram para a 40x. Mas isso
é mais velocidade ou menos que a de um gravador de DVD
de 8x? Assusta pensar que vou levar 5 vezes mais tempo
para gravar um DVD do que um CD. Péra aí! Se o DVD tem
4 GB de capacidade, então eu vou levar 25 vezes o tempo
que levaria para gravar um CD a 40x, portanto, a conta dá
uns 75 a 90 minutos para queimar um DVD. Deixa para lá!
Vou gastar meu dinheiro com outra coisa.

O marketing dos fabricantes é tão ruim que não explicam
para ninguém que o "x" da questão não é o mesmo. "X" para
DVD é muito maior. Veja nas tabelas abaixo as velocidades
em KB/s (1.000 bits por segundo) para unidades de gravação
convencionais - 1 byte = 8 bits

Velocidades de gravação em CD
52x - ninguém consegue essa velocidade mesmo...
48x - 7.200 KB/s (é facil encontrar discos)
40x - 6.000 KB/s
32x - 4.800 KB/s (daqui para baixo é lixo tecnológico)
24x - 3.600 KB/s
16x - 2.400 KB/s
8x - 1.200 KB/s
4x - 600 KB/s

Velocidades de gravação DVD
2x - 5.000 KB/s (lixo, não vale nada)
4x - 11.000 KB/s (funciona e os discos custam 2 reais)
8x - 22.000 KB/s (tem discos a 3 reais em todo lugar)
16x - 44.000 KB/s (não se encontram os discos)

HD genérico de 5.400 rpm - 15.300 KB/s
HD genérico de 7.200 rpm - 58.500 KB/s

Evidentemente, a velocidade máxima é uma referência
que só é atingida quando o disco a ser queimado aceita-a.
O valor "X" indicado no disco pode ser falso, apenas para
aumentar seu preço. No caso da velocidade dos HDs, está
indicada uma média, apenas por referência, com cada modelo
e fabricante tendo suas velocidades ligeiramente diferentes.
Um HD mais frio, com cooler, vai conseguir velocidades mais
altas. Num dia muito quente, elas podem baixar.

Portanto, o que você precisa saber é que queimar um DVD com
discos de velocidade 8x (facilmente encontrados no mercado)
é uma tarefa de apenas 7 a 8 minutos. O DVD pode armazenar
dados e MP3 como um CD normal e não apenas filmes. Logo,
é a melhor mídia atual para backups de grandes HDs,
principalmente da pasta Meus Documentos que pode ser enfiada
lá para dentro sem muita consideração.

Os programas de controle dos gravadores também influenciam
a velocidade. O Nero consegue sempre partir para o mais
veloz possível, enquanto o Roxio é mais conservador.
As versões do final de 2004 e 2005 controlam a velocidade
muito melhor que as mais antigas. Mesmo que su gravador
seja mais antigo, vale a pena usar os programas atuais.

A transformação de formatos de vídeo para o formato de
DVD pode levar horas, enquanto a queimada fica ali pelos
8 minutos mesmo. Uma cópia de DVD em 8x não passa de 16
minutos. É muito rápido para duas horas de vídeo e áudio
de altíssima qualidade.

Não falei nada de CDRW e DVDRW? Esqueça isso. Sempre vai
terminar em perda de dados e muito tempo esperando para
saber se algo foi relamente gravado. A regravação é
absurdamente lenta em qualquer sistema. Só tem certa
praticidade com o uso de mini-discs de 200 MB. Use chaves
de memória, cartões das máquinas fotográficas ou players
de MP3 que são muito mais velozes e confiáveis para
gravar e regravar. Lembre que sua máquina digital pode
transportar qualquer arquivo de dados.

sábado, 20 de novembro de 2010

Sistemas Operacionais, Kernel e Shell

Kernel e Kernel Linux

 

O que é um Kernel


O kernel de um sistema operacional é visto como se fosse o núcleo do mesmo. Ele representa a camada de software mais próxima ao hardware. Segundo alguns autores, o kernel é o seu coração, sua mente e seu sistema nervoso. Ele é responsável exclusivamente pelo transporte das informações de mais baixo nível que tornam todas as outras tarefas possível. Fazendo malabarismos com diversos processos que ocorrem simultaneamente, gerenciando sua memória de forma que não interfiram uns nos outros, satisfazendo suas solicitações de acesso a um disco e muito mais.

Funções de um Kernel

O kernel (monolítico) é responsável por abstrair a interface de hardware, fazendo com que os processos utilizem os recursos de forma segura e organizada.

Algumas funções são atribuídas ao Kernel como:
  • Gerência dos Processos (Criação, Agendamento, Finalização);
  • Gerência de Alocação e Liberação de Memória;
  • Controle do Sistema de Arquivos;
  • Operações de Entrada e Saída;

Para que se possa ter essa estrutura funcional e realizar algum trabalho, uma aplicação tem que ter acesso aos serviços disponibilizados pelo kernel, desta forma uma API (Interface de Programação de Aplicação) é disponibilizada à aplicação. Essa API faz a chamada das funções do kernel através de interrupção, memória compartilhada ou IPC (Inter-Process Communication).

Arquitetura do Kernel

Segundo Tanenbaum, o kernel pode ser monolítico, em camadas, ou microkernel (também conhecido como modelo cliente-servidor).

Sistemas Monolíticos

Estrutura mais utilizada, poderia ser chamada de "a grande fusão". Não existe uma estruturação visível na organização monolítica. O Sistema operacional é escrito como um conjunto de procedimentos, sendo que um pode chamar qualquer um dos outros quando necessário. Quando utilizada essa estrutura, cada procedimento deve ter uma interface muito bem definida em termos de parâmetros e resultados.
Linux: Sistemas Operacionais, Kernel e Shell.
Dentro dessa estrutura existem dois tipos de chamadas:
  • o modo Kernel, onde é permitida a execução de todas as instruções básicas da máquina e;
  • o modo usuário, para os programas de usuário, onde certas instruções, como aquelas que controlam entrada/saída não podem ser executadas

Sistemas em Camadas

Estrutura em que o sistema operacional foi organizado como uma hierarquia de níveis, cada um construído sobre o nível imediatamente inferior. O primeiro sistema construído dessa forma foi o THE, projetado no Technische Hogeschool Eindhoven na Holanda por E.W.Dijkstra (1968).

Microkernel

Sendo mais flexível que o kernel monolítico, o microkernel não fornece o sistema de arquivos, sistema de diretórios, gerência completa de processos e a manipulação da maioria das chamadas de sistema. Todos os serviços prestados pelo microkernel estão á por serem difíceis de executar em outro local ou inviável financeiramente se oferecidos fora do kernel.

O objetivo principal é mantê-lo o menor possível. Todos os outros serviços do sistema operacional estão disponibilizados em forma de servidores ao nível de usuário. Para se realizar alguma operação, o usuário deve enviar uma mensagem ao servidor apropriado.

Os serviços prestados pelo microkernel são os seguintes:
  • Um mecanismo de comunicação entre processos
  • Um mínimo de funções para gerência de memória
  • Um mínimo de funções de gerência de processos e de escalonamento
  • Funções de entrada / Saída de baixo nível

Kernel Híbrido

Baseado em microkernel, ele executa operações em modo protegido (modo kernel), através de servidores externos, para a melhoria de desempenho evitando também troca de contextos.

NanoKernel

Extremamente simples. Ele é a camada mais próxima do hardware. Gerenciando virtualmente os serviços, o nano-kernel faz com que a memória que é utilizada por ele seja menor que a do micro-kernel.

Exokernel

Nessa estrutura existe apenas um kernel simples onde o mesmo faz o controle de recursos do sistema e de um conjunto de bibliotecas que implementam as abstrações do sistema operacional. O aplicativo pode acessar diretamente os recursos do sistema, ou utilizar as bibliotecas. O Programador tem mais liberdade para optar pela abstração de hardware que desejar.

O Kernel Linux

Criado como um hobby por um estudante chamado Linus Torvalds, que tinha como objetivo criar seu próprio sistema operacional Unix-like (baseado na estrutura Unix) que rodasse em processadores de arquitetura Intel 80386. Linus estudou o sistema Minix, de Andrew Tanenbaum e não satisfeito com a arquitetura resolveu criar o seu próprio sistema.

O Projeto Linux foi lançado publicamente em 1991.
Linux: Sistemas Operacionais, Kernel e Shell.
Kernel monolítico, drivers e extensões do kernel rodam com acesso total ao hardware, embora alguns rodem em espaço usuário (modo usuário citado anteriormente em Kernel Monolítico).

Diferente do padrão do kernel monolítico, os drivers de dispositivos são configurados como módulos e são carregados enquanto o sistema está rodando. Ainda, os drivers de dispositivos podem ser pré-inseridos sob algumas condições. Isso foi feito para a correção de acesso a interrupções de hardware e melhora do multi-processamento simétrico.

O objetivo do Torvalds não era tornar o sistema portável, embora hoje ele seja um dos mais portáveis dentre os existentes. A portabilidade do sistema era dirigida para a parte de inclusão de sistemas que rodavam em outros sistemas operacionais, no Linux.

OpenDNS, o DNS aberto

Para quem não sabe o que é DNS, ou Domain Name System (sistema de nomes de domínios), vai aqui uma pequena explicação a respeito, antes de entrarmos no assunto do artigo propriamente dito: DNS nada mais é do que um sistema de gerenciamento de nomes de domínios, que "traduz" os "endereços" que você digita em seu navegador preferido (como por exemplo: http://www.comopiniao.com/) para o endereço "numérico" real dos servidores/sites na internet (e vice-versa), o qual na verdade é o endereço IP, ou "Internet Protocol", um número único de 32 bits atribuído a cada computador conectado à internet, composto de 4 octetos.
Os computadores que guardam tais sistemas e listas de domínios e IPS, e são responsáveis por responder às requisições e "traduzir" um endereço como por exemplo o http://www.comopiniao.com/ em seu verdadeiro endereço (IP), são chamados de "Servidores DNS".
Resumindo, servidores DNS nada mais são do que máquinas com uma relação de domínios e IP's, as quais permitem a realização de consultas e, após tais consultas, redirecionam as requisições dirigidas a um domínio/endereço para o respectivo IP (verdadeiro endereço), e vice-versa.
Bom, após esta pequena introdução, gostaria de ressaltar que quando você assina um plano qualquer de acesso à internet, seja ADSL, cabo ou linha discada, você está na maior parte das vezes utilizando os servidores DNS próprios de tais empresas/provedores (muitas vezes os servidores dos provedores "obrigatórios", apesar da "tal" liminar provisória), os quais são muitas vezes lentos, com caches fraquíssimos e pequenos, e sempre passíveis de inúmeras quedas ou falhas.

Um serviço interessante


A solução que pretendo apresentar aqui e que promete (fato comprovado por mim mesmo, usuário do sistema há quase um ano) acabar com muitos dos problemas acima mencionados e aumentar a velocidade da navegação, é o OpenDNS, serviço de DNS "Aberto" oferecido gratuitamente pela OpenDNS, LLC, empresa sediada em San Francisco, CA - USA.
Trata-se, nada mais nada menos, de uma alternativa aberta e gratuita aos diversos servidores DNS falhos e lentos oferecidos pelos tais provedores que nos são enfiados goela abaixo quando assinamos um plano qualquer de acesso à internet (apesar da ainda provisória "liminar" desobrigando a assinatura dos provedores quando assinamos um plano de acesso à internet).
Com o OpenDNS, você simplesmente conta com uma alternativa rápida, segura, redundante e gratuita de servidores DNS. O serviço possui um cache enorme, opera sua própria rede de servidores e software, e se torna mais rápido à medida que mais usuários utilizam a ferramenta, pois mais endereços são adicionados à lista, e assim, gradativamente, sua performance vai sendo incrementada.
Aliado a isto, uma das vantagens do OpenDNS é sua redundância. O serviço possui uma ampla rede de datacenters e servidores espalhados por diversos locais nos Estados Unidos e Europa, o que significa que a disponibilidade dos serviços também é altamente levada em conta. Se um dos datacenters cair, por exemplo, todo o tráfego é redirecionado automaticamente, utilizando tecnologia de ponta, para o datacenter mais próximo.
Ou seja, será muito difícil ocorrer "downtime".
Qualquer usuário pode checar o status do serviço a qualquer momento, o qual é atualizado a cada cinco minutos, através dos seguintes links:

Se alguma requisição/tentativa de acesso a um site falhar, você ainda pode efetuar uma checagem no sistema de verificação do OpenDNS, o CacheCheck, que vai fazer uma checagem geral em toda a rede do mesmo e retornar os resultados, efetuando então a partir daí um "refresh" no sistema. Já dá pra ver que o OpenDNS é muito mais rápido, seguro, estável e redundante que o DNS que você usa atualmente do seu provedor, não é mesmo? :)

Além disso tudo, o OpenDNS oferece serviços inéditos, alguns dos quais apresento abaixo:
  • Phishing Protection (proteção contra sites fraudulentos/falsos): qualquer tentativa de acesso a sites que sejam identificados como tais, é automaticamente bloqueada, e uma mensagem de alerta é exibida. E para isto, o OpenDNS utiliza o PhishTank, uma das maiores e mais utilizadas bases de dados sobre phishing do mundo.
  • Domain Blocking (bloqueio de domínios): através do painel de controle, você pode simplesmente bloquear o acesso a qualquer domínio que desejar. Muito útil a administradores de rede que querem bloquear o acesso a sites fraudulentos, com conteúdo inadequado, etc. A ferramenta inclusive apresenta um formulário de contato no momento do bloqueio, para que o usuário entre em contato, se desejar, com o administrador da rede.
blok
  • Adult Site Blocking (bloqueio de sites adultos): ferramenta similar ao Domain Blocking, mas muito mais poderosa quando a necessidade é bloquear o acesso a sites com conteúdo impróprio, como sexo, por exemplo, pois conta com uma lista pré-definida de mais de quatro milhões de sites bloqueados.
  • Typo Correction (um corretor para erros ao digitar o endereço de um site): ferramenta muito útil para corrigir erros comuns quando se digita o endereço de um site. Totalmente configurável pelo usuário, você pode configurar, por exemplo, para que quando for digitado por engano "http://www.google.cmo/", o usuário seja automaticamente levado ao endereço correto, "http://www.google.com/" .
  • Shortcuts (atalhos): você pode definir atalhos para serem utilizados durante a navegação. Por exemplo, você pode configurar para que ao digitar "g", ou "go", por exemplo, na barra de endereços do navegador, você seja automaticamente levado ao site do Google.
  • Statistics (estatísticas): o sistema oferece um completo painel com estatísticas, como por exemplo "total de solicitações", "domínios mais visitados", "total de tentativas de acesso a domínios bloqueados", etc, sempre contendo informações completas, como data, hora, IP origem e destino, etc.
Além das ferramentas acima, o OpenDNS oferece muitos recursos bem interessantes, como por exemplo a possibilidade de personalização das páginas de erro. Ou seja, quando você ou algum usuário em sua rede tentar acessar um site inexistente, ou que por qualquer motivo esteja indisponível naquele momento, é apresentada uma página do próprio serviço no momento, a qual permite que seja consultado o motivo da falha, quais servidores falharam, etc.
Além disso, essa página pode ser customizada pelo usuário, e no caso de empresas, por exemplo, é possível inserir-se o logotipo da mesma, slogan, etc. Muito interessante, não é mesmo?

Como utilizar em conexões com IP fixo


Utilizar o OpenDNS é muito fácil, mais fácil ainda se você utiliza uma conexão com IP fixo. Nesse caso, basta substituir os servidores DNS informados pelo seu provedor de acesso à internet pelos IPs do OpenDNS, os quais são:
  • 208.67.222.222
  • 208.67.220.220

Como utilizar em conexões com IP dinâmico


Agora, se você utiliza uma conexão com IP "dinâmico" (o tipo de conexão mais comum atualmente), também pode facilmente utilizar o OpenDNS através da utilização de serviços como o DynDNS, No-IP ou ChangeIP, juntamente com ferramentas/"clientes para atualização de IPs dinâmicos" (muitas vezes disponibilizadas pelos próprios), que atualizam seu novo IP a cada nova conexão.
Tais ferramentas irão atualizar automaticamente seu novo IP junto ao sistema que você escolher, no caso, o OpenDNS, assim que você se conectar. Assim sendo, é muito fácil ter seu novo IP sempre atualizado junto ao sistema do OpenDNS.

Redes: TCP/IP, endereçamento e portas

O endereçamento IP é sempre um tema importante, já que é ele que permite que o brutal número de redes e hosts que formam a Internet sejam capazes de se comunicar entre si.
Existem duas versões do protocolo IP: o IPV4 é a versão atual, que utilizamos na grande maioria das situações, enquanto o IPV6 é a versão atualizada, que prevê um número brutalmente maior de endereços e deve se popularizar a partir de 2012 ou 2014, quando os endereços IPV4 começarem a se esgotar.
No IPV4, os endereços IP são compostos por 4 blocos de 8 bits (32 bits no total), que são representados através de números de 0 a 255 (cobrindo as 256 possibilidades permitidas por 8 bits), como "200.156.23.43" ou "64.245.32.11". Os grupos de 8 bits que formam o endereço são chamados de "octetos", o que dá origem a expressões como "o primeiro octeto do endereço". De qualquer forma, a divisão dos endereços em octetos e o uso de números decimais serve apenas para facilitar a configuração para nós, seres humanos. Quando processados, os endereços são transformados em binários, como "11001000100110010001011100101011".
As faixas de endereços começadas com "10", "192.168" ou de "172.16" até "172.31" são reservadas para uso em redes locais e por isso não são usadas na Internet. Os roteadores que compõe a grande rede são configurados para ignorar pacotes provenientes destas faixas de endereços, de forma que as inúmeras redes locais que utilizam endereços na faixa "192.168.0.x" (por exemplo) podem conviver pacificamente, sem entrar em conflito.
No caso dos endereços válidos na Internet, as regras são mais estritas. A entidade global responsável pelo registro e atribuição dos endereços é a IANA (http://www.iana.org/), que delega faixas de endereços às RIRs (Regional Internet Registries), entidades menores, que ficam responsáveis por delegar os endereços regionalmente. Nos EUA, por exemplo, a entidade responsável é a ARIN (http://www.arin.net/) e no Brasil é a LACNIC (http://www.lacnic.net/pt/). Estas entidades são diferentes das responsáveis pelo registro de domínios, como o Registro.br.
As operadoras, carriers e provedores de acesso pagam uma taxa anual à RIR responsável, que varia de US$ 1.250 a US$ 18.000 (de acordo com o volume de endereços requisitados) e embutem o custo nos links revendidos aos clientes. Note que estes valores são apenas as taxas pelo uso dos endereços, não incluem o custo dos links, naturalmente.
Ao conectar via ADSL ou outra modalidade de acesso doméstico, você recebe um único IP válido. Ao alugar um servidor dedicado você recebe uma faixa com 5 ou mais endereços e, ao alugar um link empresarial você pode conseguir uma faixa de classe C inteira. Mas, de qualquer forma, os endereços são definidos "de cima para baixo" de acordo com o plano ou serviço contratado e você não pode escolher quais endereços utilizar.
Embora aparentem ser uma coisa só, os endereços IP incluem duas informações: o endereço da rede e o endereço do host dentro dela. Em uma rede doméstica, por exemplo, você poderia utilizar os endereços "192.168.1.1", "192.168.1.2" e "192.168.1.3", onde o "192.168.1." é o endereço da rede (e por isso não muda) e o último número (1, 2 e 3) identifica os três micros que fazem parte dela.
Os micros da rede local podem acessar a Internet através de um roteador, que pode ser tanto um servidor com duas placas de rede quando um modem ADSL ou outro dispositivo que ofereça a opção de compartilhar a conexão. Nesse caso, o roteador passa a ser o gateway da rede e utiliza seu endereço IP válido para encaminhar as requisições feitas pelos micros da rede interna. Esse recurso é chamado de NAT (Network Address Translation).
Um dos micros da rede local, neste caso, poderia usar esta configuração de rede:
  • Endereço IP: 192.168.1.2
  • Máscara: 255.255.255.0
  • Gateway: 192.168.1.1 (o servidor compartilhando a conexão)
  • DNS: 200.169.126.15 (o DNS do provedor)
O servidor, por sua vez, utilizaria uma configuração similar a esta:
  • Placa de rede 1 (rede local):
  • Endereço IP: 192.168.1.1
  • Máscara: 255.255.255.0
  • Placa de rede 2 (Internet):
  • Endereço IP: 200.213.34.21
  • Máscara: 255.255.255.0
  • Gateway: 200.213.34.1 (o gateway do provedor)
  • DNS: 200.169.126.15 (o DNS do provedor)
A configuração da segunda placa de rede seria obtida automaticamente, via DHCP, de forma que você só precisaria realmente se preocupar com a configuração da sua rede local. Normalmente, você primeiro configuraria a rede local, depois conectaria o servidor à Internet e, depois de checar as duas coisas, ativaria o compartilhamento da conexão via NAT.
O servidor DHCP incluído no ICS do Windows utiliza uma configuração fixa, fornecendo endereços dentro da faixa "192.168.0.x", mas ao utilizar um servidor Linux, ou qualquer outro dispositivo de rede que ofereça um servidor DHCP com mais recursos, você pode escolher qualquer faixa de endereços e também configurar uma "zona" para os endereços do servidor DHCP, permitindo que você tenha micros com IPs fixos e IPs dinâmicos (fornecidos pelo servidor DHCP) na mesma rede. Nesse caso, você poderia ter uma configuração como a seguinte:
  • 192.168.0.1: Gateway da rede
  • 192.168.0.2: Ponto de acesso wireless
  • 192.168.0.3: Servidor de arquivos para a rede interna
  • 192.168.0.4 até 192.168.0.99: Micros da rede configurados com IP fixo
  • 192.168.0.100 até 192.168.0.254: Faixa de endereços atribuída pelo servidor DHCP
Veja que usar uma das faixas de endereços reservadas não impede que os PCs da sua rede possam acessar a Internet. Embora eles não acessem diretamente, por não possuírem IPs válidos, eles podem acessar através de uma conexão compartilhada via NAT ou de um servidor proxy. É possível, inclusive, configurar o firewall ativo no gateway da rede para redirecionar portas (port forwarding) para micros dentro da rede local, de forma que eles possam ser acessados remotamente. O servidor nesse caso "empresta" uma porta, ou uma determinada faixa de portas, para o endereço especificado dentro da rede local. Quando alguém da Internet acessa uma das portas encaminhadas no servidor, é automaticamente redirecionado para a porta correspondente no micro da rede interna, de forma transparente.
O uso dos endereços de rede local tem aliviado muito o problema da falta de endereços IP válidos, pois uma quantidade enorme de empresas e usuários domésticos, que originalmente precisariam de uma faixa de endereços completa para colocar todos os seus micros na Internet, pode sobreviver com um único IP válido (compartilhado via NAT entre todos os micros da rede). Em muitos casos, mesmo provedores de acesso chegam a vender conexões com endereços de rede interna nos planos mais baratos, como, por exemplo, alguns planos de acesso via rádio, onde um roteador com um IP válido distribui endereços de rede interna (conexão compartilhada) para os assinantes.
Embora seja possível, pelo menos em teoria, ter redes com até 24 milhões de PCs, usando a faixa de endereços de rede local 10.x.x.x, na prática é raro encontrar segmentos de rede com mais de 100 ou 200 micros. Conforme a rede cresce, o desempenho acaba caindo, pois, mesmo ao utilizar um switch, sempre são transmitidos alguns pacotes de broadcast (que são retransmitidos a todos os micros do segmento). A solução nesse caso é dividir a rede em segmentos separados, interligados por um roteador.
Em uma empresa, poderíamos (por exemplo) ter três segmentos diferentes, um para a rede cabeada (e a maior parte dos micros), outro para a rede wireless e outro para os servidores, que ficariam isolados em uma sala trancada:
O roteador nesse caso teria 4 interfaces de rede (uma para cada um dos três segmentos e outra para a Internet). A vantagem de dividir a rede desta maneira é que você poderia criar regras de firewall no roteador, especificando regras diferentes para cada segmento. Os micros conectados à rede wireless (menos segura), poderiam não ter acesso aos servidores, por exemplo. Quando falo em "roteador", tenha em mente que você pode perfeitamente usar um servidor Linux com diversas placas de rede.
Com relação à proteção da rede contra acessos provenientes da Internet, você poderia tanto configurar o próprio firewall ativo no roteador, de forma a proteger os micros da rede local quanto instalar um firewall dedicado (que pode ser um PC com duas placas de rede, configurado adequadamente) entre ele e a Internet

Linux para iniciantes

Quem precisa deste artigo?

Você acabou de adquirir o Linux de alguma forma (CD, net, etc) e precisa saber o que fazer agora? É usuário de outros sistemas, mas quer aprender a usar o Linux? Então este artigo será de grande ajuda.

Veremos os principais comandos do Linux e alguns comandos mais avançados. Aplicativos muito úteis também serão abordados e como adquirir tais programas. Usamos o Debian/Ubuntu como uso pessoal, mas qualquer distribuição será funcional com as instruções dadas aqui.

Vamos supor algumas coisas durante este artigo:
  • Esperamos que você tenha os conhecimentos básicos no uso de computadores pessoais;
  • Obviamente deve possuir uma distribuição Linux para seu uso;
  • Crie uma conta normal para uso no Linux (não use como super-usuário);
  • E tenha paciência, afinal nem tudo se aprende em um dia.

Também não é necessário ter medo de errar. Faça backups (cópias dos dados) de seus arquivos importantes e divirta-se! Se complicar as coisas ou tudo "parar de funcionar", ainda assim estamos longe de grandes problemas: basta reinstalar as coisas e recomeçar.

Sugerimos que leia o artigo enquanto tiver tempo para usar na prática o que será dito aqui. Afinal, é com o uso que a aprendizagem será consolidada.

Para começar nossa viagem, saiba como tudo começou.

Um pouco de História

Na início da década de 70, fruto de necessidade original dos Laboratórios Bell, surgiu um sistema operacional chamado UNIX. Em 1973, após o surgimento da linguagem de programação "C", o UNIX foi reescrito nessa linguagem. Logo, embora sem tanta empolgação no campo acadêmico, ganhou força no mundo dos negócios.

Já o Linux foi escrito por Linus Torvalds, e muitas são as pessoas que vêm colaborando com o seu desenvolvimento desde então. Está sob a licença de uso da GNU General Public License (GPL). Esta é uma licença escrita pela Free Software Foundation (FSF). Falando em termos simples, você tem o direito de cobrar o quanto quiser por sua cópia, mas não pode impedir a outra pessoa de distribuir gratuitamente. A licença também diz que qualquer um que modificar o programa também deve lançar esta sua versão sob a mesma licença.

Graças à legião de colaboradores ao redor do mundo, os bugs que porventura surgem no Linux são rapidamente eliminados. Pessoas de todas as áreas colaboram, algumas com larga experiência em programação e hardware.

Saiba que há softwares comerciais para Linux. Em grande parte, são programas que já existem para o ambiente Windows migrando para o Linux.

"Tudo" sendo dito, vamos por a mão na massa.


Páginas do artigo
   1. Quem precisa deste artigo?
   2. Dando início
   3. O terminal
   4. Organizando as coisas

Outros artigos deste autor

Leitura recomendada

Sistemas Operacionais

Um computador sem seu software nada mais é que um pedaço de metal inútil. Com estas palavras eu abro um pequeno artigo. Isso foi dito por Bill Gates para persuadir a IBM e também por Andrew S. Tanenbaum em seu livro Sistemas Operacionais Modernos. Hoje, para termos um computador funcional, precisamos de aplicativos para realizarmos tarefas. Aplicativos de correio eletrônico, de editores de texto etc.

Porém o mais importante se chama Sistema Operacional ou Operating System (SO ou OS respectivamente). Ele é responsável por gerenciar os recursos dos computadores e fornecer a base sobre a qual os aplicativos serão escritos.

Os sistemas operacionais são a interface pela qual o usuário se comunica com o computador através de entradas e saídas. Interface seria o meio comunicador entre o usuário e a máquina, aquele que faz a ponte entre essas duas entidades. Entradas podem ser feitas usando mouses e teclados, e as saídas por meio dos monitores e de impressoras, sendo esses os exemplos mais básicos.

Os sistemas operacionais também, como foi dito, podem ser os gerentes de recursos do computador. O sistema operacional aloca memória para a aplicação, gerencia o processo dando prioridade àqueles mais importantes, gerencia os hardwares do computador alocando-os para os vários processos que estão concorrendo pelo seu uso.
Linux: Sistemas Operacionais, Kernel e Shell.
Demonstrativo simples da função do S.O.

Os sistemas operacionais na nossa atualidade podem ser divididos por funções. As empresas de sistemas dividem seus sistemas operacionais dessa forma. Alguns estão mais voltados para funções do cotidiano, para os usuários comuns. Outros já têm ferramentas e arquiteturas melhores planejadas para servidores, para serem os computadores mestres em uma rede de computadores.

Alguns sistemas tentam unir as duas coisas. Mais a frente falaremos dos sistemas operacionais montados sobre o Kernel Linux.
Linux: Sistemas Operacionais, Kernel e Shell.
Demonstrativo de funções de um S.O. (visão Linux)

Com essas informações podemos dizer que o sistema operacional é aquele que recebe a sua requisição e a transmite àqueles que são responsáveis por computar e fornecer uma resposta legível ao ser humano.

Detalhes de Sistemas Operacionais e seus fabricantes já foram citados em posts anteriores juntamente com seus fabricantes. Segue alguns dos principais sistemas existentes:
  • Gnu/Linux Slackware
  • Gnu/Linux Debian
  • Gnu/Linux Red Hat
  • Gnu/Linux Ubuntu
  • Gnu/Linux Mandriva
  • Gnu/Linux Kurumin
  • Gnu/Linux Gentoo
  • Gnu/Linux SuSE
  • Solaris
  • Open Solaris
  • Windows 95
  • Windows 98
  • Windows Millenium
  • Windows 2000
  • Windows NT
  • Windows XP
  • Windows Vista
  • Apple 2
  • Apple Machintosh
  • FreeBSD
  • Pc-BSD
  • OpenBSD
  • NetBSD
  • DragonFly

10 dicas para aprender a programar por conta própria

Introdução

Primeiramente, quero dizer às pessoas que estão querendo aprender a programar que tenho alguns "macetes" para não desanimar, justamente por mim ter desanimado algumas vezes no meio do aprendizado, daí criei esses métodos para poder continuar e como vi que deu certo comigo, talvez deva possa dar certo com outras pessoas também.

1. Tenha um objetivo. Você tendo um objetivo para aprender a programar fica muito mais fácil, anote em algum lugar numa folha ou até mesmo num arquivo de texto seu objetivo e quando estiver desanimado, leia. Ou até mesmo algo que você viu, alguém programando, etc. Não aprenda a programar por motivos bobos, como esse por exemplo: "Tenho que programar para ser "hacker"...", por que um hacker não é o que a mídia diz ser, por isso procure saber o que é realmente um hacker.

2. Não se assuste. Quando você vê algo novo na linguagem que você está programando, sempre pense: isso é fácil... por que nem tudo é tão difícil quanto se aparenta ser.

3. Sempre veja exemplos de pessoas que já programam, você pode aprender com os exemplos e até evoluir os exemplos, essa é uma razão pra mim usar sistema open source.

4. Sem um professor, você mesmo determina o seu tempo de aprendizado para cada capítulo. Nunca avance sem ter aprendido o capítulo anterior. Caso você não esteja conseguindo aprender um capítulo, tente outra em outra hora que sua mente esteja mais descansada. Não se apresse, por que você será um eterno aprendiz.

5. Use sempre comentários em seus programas, isso te ajudará a fixar a função dos comandos.

6. Tenha uma boa lógica e um bom raciocínio. Tendo uma boa lógica e um bom raciocínio, você terá mais facilidade a aprender a programar. Programação não é baseada em só decorar os comandos como alguns pensam e me disseram, é preciso muito mais do que decorar os comandos, por isso ter uma boa lógica é fundamental. Uma boa coisa para evoluir a lógica é o raciocínio é a matemática.

7. Tire suas dúvidas com pessoas que já programam, se você não conhecer ninguém, na internet mesmo você pode encontrar.

8. Se você resolver estudar lógica de programação, no começo você certamente vai achar bobeira, pois não pare de estudar, no futuro isso vai fazer muito sentido.

9. Não evolua maus hábitos. Para não evoluir maus hábitos, é muito importante ver como uma pessoa que programa há muito tempo se comporta. Mas cuidado ao seguir os exemplos, dependendo do nível da pessoa que o programou.

10. Bem, essa última dica é pessoal, não sei se vai funcionar com vocês, essa dica foi uma pessoa da internet que me deu e funcionou comigo. Beba café quando estiver programando, ouça uma variedade de músicas calmas, mas quando estiver cansado (não desanimado), beba refrigerante e tome sorvete bem gelado, isso esfria a cabeça.

* Linux Introduction

Viva o LINUX *.*

 1. Sistemas Operacionais
   2. Kernel e Kernel Linux
   3. O Shell
   4. Finalizando

Outros artigos deste autor

Leitura recomendada

Assemblers e Compiladores.

A evolução dos computadores, nas décadas de 1940 e 50, conduziu aos primeiros assemblers, uma razoável melhoria na programação, por permitirem o uso de uma linguagem simbólica com mnemónicas, ainda que praticamente correspondente às instruções máquina. O próximo passo foi o desenvolvimento das primeiras linguagem de programação de mais alto nível, como o FORTRAN.

Apesar das ligeiras melhorias, o desenvolvimento de programas continuava a ser árduo para o utilizador. A necessidade de muitos procedimentos de inicialização (instalação de fitas e cartões nos periféricos, carregamento e activação dos programas) tornava também muito baixo, o rendimento de utilização da própria instalação do computador. Convém notar que as primeiras realizações dos computadores eram muito caras, pelo que foi dada especial atenção à necessidade de melhorar o rendimento de utilização dos recursos do computador. Nos primeiros sistemas, tratava-se de recursos físicos, em particular, tempo de utilização do processador (CPU, espaço ocupado em memória e tempo de operação dos periféricos. De forma a optimizar estes parâmetros, tentou automatizar-se o maior número possível de tarefas, ligadas à inicialização, arranque e terminação de programas.

Os aspectos críticos dos primeiros sistemas eram:

  • muitos procedimentos manuais de inicialização de periféricos, tais como, por exemplo, a instalação do rolo de fita perfurada num leitor de fita;
  • periféricos muito lentos, com tempos típicos da ordem do minuto ou centenas de segundos, quando comparados com o tempo de execução de instruções do processador, já na escala do microsegundo);
  • completo controlo da máquina, pelo programa carregado em memória; qualquer operação de leitura ou de escrita de dados, envolvendo interacção com os periféricos lentos (leitor de fita/cartão, unidade de banda magnética, perfurador de fita, ou impressora) deixava o processador desocupado, enquanto aquela operação não se completasse.

Máquina Dedicada

Esses primeiros computadores eram utilizados em regime de máquina dedicada: cada utilizador agendava um período de utilização, durante o qual era 'dono e 'senhor' da máquina. Como não havia quaisquer programas de apoio, o utilizador tinha de programar em linguagem binária da máquina e tinha de incluir no seu programa, todo o código de rotinas auxiliares, tais como as rotinas de entrada e saída e as rotinas de carregamento do programa em memória central. Nos primeiros sistemas, na fase inicial dos trabalhos, o utilizador introduzia, em binário, os seus programas directamente em memória, e controlava a sua execução, através de uma consola ou painel de interruptores e indicadores luminosos, associados às linhas do bus ou aos registadores do processador. Para melhorar um pouco esta fase inicial, surgiram os primeiros programas carregadores, capazes de lerem directamente de periféricos de entrada, tais como os leitores de fita perfurada ou os cartões perfurados. Esses programas carregadores, escritos em binário e contendo uma dezena de instruções máquina, tinham primeiro de serem carregados em memória, eles próprios. Uma vez carregados, eram postos em execução, para lerem, a partir dos leitores de fita ou dos cartões perfurados. Visando automatizar a inicialização dos primeiros carregadores, surgiu o conceito de bootstrap loader, um pequeno programa carregador que, quando se inicializa o computador, é automaticamente posto em execução, com a função de, tipicamente a partir de um periférico pré-definido (unidade de diskette ou disco), carregar em memória os programas iniciais do sistema de operação.

Processamento de trabalhos em batch

A inicialização e terminação de programas envolvia manipulações de periféricos, pelo que se pensou deixá-las a cargo de especialistas, os operadores do sistema. O utilizador deixou de ter acesso à máquina, contrariamente ao regime de máquina dedicada, atrás referido.
A figura 1 ilustra, esquematicamente, a organização dos sistemas de processamento de lotes (batch) de trabalhos.


Figure 1: Sistema de processamento batch
\begin{figure}\begin{center}
\epsfxsize =10cm
\epsfbox{batch.eps} \end{center}\end{figure}
Cada trabalho (job) podia corresponder a uma sequência de passos (job steps). Cada passo poderia envolver a compilação de um programa numa linguagem (assembly ou FORTRAN) ou a execução de um programa já compilado. O utilizador era responsável por especificar a descrição de cada trabalho, com base numa linguagem de controlo, devendo tipicamente codificar essa descrição sob a forma de cartões perfurados, editados numa máquina perfuradora de cartões. Assim, a descrição do trabalho pedido por cada utilizador constituia uma pilha de cartões, que eram depois entregues ao operador, responsável pela supervisão da execução dos trabalhos. Cartões especiais de controlo indicavam, na descrição do trabalho, informações tais como 'início de cartões de um trabalho', 'compilador de FORTRAN', 'início de sequência de cartões do programa utilizador', 'início de sequência de cartões de dados para o trabalho', etc.
O operador do sistema era responsável por escalonar a ordem segunda a qual os diversos trabalhos submetidos iriam ser executados. Uma vez decidida essa ordem, colocava as pilhas de cartões na 'calha' de leitura de um periférico de entrada: o leitor de cartões perfurados. Os cartões de cada trabalho iriam ser lidos para memória e interpretados por um programa que antes tinha sido carregado em memória (este programa era chamado monitor control program) e constituia o embrião dos actuais interpretadores de comandos do terminal (na designação anglo-saxónica shell).
Este sistema de processamento de trabalhos era estritamente sequencial, isto é, cada trabalho era executado completamente, até terminar e passar o controlo ao monitor de controlo, para este processar o próximo trabalho do lote. Durante a execução, o programa era responsável também pelas operações de entrada (leitura de cartões de dados) e de saída (escrita dos resultados numa impressora). Uma evolução introduzida nos primeiros sistemas foi a de disponibilizar as rotinas de controlo das entradas e saídas, como rotinas auxiliares, que residiam em memória, de modo a poupar o trabalho (e diminuir a probabilidade de ocorrência de erros) do programador. Estas rotinas de entrada/saída, mais o interpretador de cartões de controlo, formavam o que se designava por monitor de controlo ou programa supervisor de trabalhos. Este programa residia numa zona de memória central, conforme ilustrado na figura 2.


Figure 2: Ocupação de memória
\begin{figure}\begin{center}
\epsfbox{memoria.eps} \end{center}\end{figure}
Estes sistemas não ofereciam qualquer mecanismo de protecção contra erros imprevistos dos programas utilizadores:

  1. se o programa gerasse endereços que referissem a zona de memória do monitor, poderia corromper o seu código ou dados;
  2. o programa de um utilizador, em situações de erro, podia começar a ler os cartões de entrada, do leitor de cartões, mas correspondentes aos utilizadores seguintes, no lote de trabalhos submetidos;
  3. se o programa tivesse um ciclo infinito, nunca terminaria e o controlo nunca retornaria ao monitor de controlo, ficando o sistema completamente bloqueado
Para resolver os dois primeiros tipos de problemas, surgiram mecanismos de protecção, suportados pelo hardware dos próprios processadores (CPU). No registador de flags de estado do processador passou a haver um bit adicional de controlo, indicando o modo de operação corrente do processador.
Se este bit indicar o modo supervisor ou protegido, então todas as acções são permitidas na execução das instruções máquina, incluindo o acesso a toda a memória, sem restrições, o acesso aos registadores de controlo do processador, incluindo os que controlam o acesso às tabelas de páginas ou de segmentos dos programas, bem como o acesso às interfaces dos periféricos e o controlo do mecanismo de interrupções. Tipicamente, os programas que constituem o sistema de operação, irão ser executados no modo supervisor.
O sistema de operação, antes de passar o controlo da execução para um programa utilizador, modifica o bit de modo para indicar o modo utilizador. Neste modo, o programa só pode gerar endereços que refiram as zonas de memória às quais lhe foi dado acesso, por exemplo, através da sua tabela de páginas (inicializada pelo SO). Qualquer referência de memória fora dessas zonas é detectada pelo hardware do processador, no processo de transformação do endereço virtual, o que, em modo utilizador, origina uma interrupção do programa, por violação de memória. O mesmo controlo é exercido, de modo a impedir o programa em modo utilizador de aceder às portas de interface dos periféricos, executar instruções máquina de entrada e saída e efectuar acções de controlo do processador, por exemplo, para o controlo de interrupções. A figura 3 ilustra, esquematicamente, as acções permitidas e as proibidas.


Figure 3: Modos de operação do processador
\begin{figure}\begin{center}
\epsfbox{modos.eps} \end{center}\end{figure}
Como aquelas acções ficam proibidas e são impostas por hardware, os erros dos dois primeiros tipos podem ser controlados pelo SO.
Surge, entretanto, uma dúvida. Se, em modo utilizador, o programa não pode executar instruções de entrada e saída, como é que comunica com o exterior, isto é, recebe dados e produz resultados, envolvendo os dispositivos periféricos, sejam de entrada, de saída ou de arquivo de ficheiros? A resposta é: fazendo pedidos ao SO, através da invocação de chamadas ao sistema, conforme se explicou na primeira aula.

* Bash - O interpretador de comandos

 

Um comando do Linux é uma palavra especial que representa uma ou mais ações. Um interpretador de comandos também é conhecido como shell ou modo texto. Ele é o programa responsável por interpretar essas instruções enviadas pelo usuário e seus programas para o kernel. No Linux, você poderá ter vários interpretadores de comandos (ao contrário do que acontece no Windows que só tem o command.com).

O interpretador de comandos é que executa comandos lidos do teclado ou de um arquivo executável. É a principal ligação entre o usuário. Entre os programas interpretadores de comandos pode-se destacar o bash, ash, csh, tesh, sh.

Entre eles o mais usado é o bash (Bourne Again Shell), criado por S.R. Bourne. Os comandos podem ser enviados de duas maneiras para o interpretador:

a) Interativa: Os comandos são digitados no teclado pelo usuário e passados ao interpretador de comandos um a um. Neste modo o computador depende do usuário para executar uma tarefa ou o próximo comando.

b) Não-interativa: São usados arquivos de comandos (scripts) criados pelo usuário para o computador executar os comandos na ordem encontrada no arquivo. Neste modo, o computador executa os comandos do arquivo um por um, e dependendo do término do comando, o script pode checar qual será próximo comando que será executado e dar continuidade ao processamento.

Esse sistema é útil quando temos que digitar por várias vezes seguidas um mesmo comando ou para compilar algum programa complexo.

Uma característica interessante do Bash é que ele possui a função de auto-completar os nomes de comandos que foram digitados via entrada padrão. Isso é feito pressionando-se a tecla TAB; o comando é completado e acrescentando um espaço.

Isso funciona sem problemas para comandos internos; caso o comando não seja encontrado, o Bash emite um beep. Por exemplo, na sua pasta raiz tente digitar cd pro (aperte TAB)+as( aperte TAB)+os( aperte TAB)+d(aperte TAB) e veja como foi fácil digitar um caminho para entrar no local: /proc/asound/oss/devices.

Existem alguns atalhos úteis que podem ser utilizados no bash para facilitar no dia-a-dia no Linux:

Alt+bMove o cursor uma palavra para trás.
Alt+f Move o cursor uma palavra para frente.
Ctrl+aIr para o início da linha.
Ctrl+c Para o comando.
Ctrl+dLogout.
Ctrl+e Ir para o final da linha.
Ctrl+lApaga a tela (O mesmo que clear).
Ctrl+r Busca Incremental no histórico de comandos.
Ctrl+tInverte o caractere sob o cursor com o anterior.
Ctrl+u Apagar do cursor até o começo da linha.
Ctrl+w Apagar do cursor até o começo da palavra.
Ctrl+y Re-insere o último trecho apagado.
Ctrl+z Põe processo em background.


Agora que você já sabe um monte de combinações legais para facilitar sua vida, pode sair queimando o seu teclado no bash. Certo? Mas o bash não para por aí. Você pode repetir um comando no bash sem ter que digitá-lo novamente. Isso é possível utilizando o caractere "!" na frente do comando que você deseja repetir. O bash vai buscar aquele comando no histórico e se lá tiver algo parecido o comando será executado. Veja o exemplo:

# mount /mnt/cdrom
# ls /mnt/cdrom
# umount
# !mount


O comando "!mount" irá informar ao shell (bash) para executar o último comando mount executado, neste exemplo, "mount /mnt/cdrom". Que poder heim? Casa você queira verificar qual o shell que está em uso, digite o comando: "echo $SHELL"; para saber as disponíveis, o comando "cat /etc/shells" lhe informará.

Espero que esse artigo tenha abordado pontos interessantes e agradado o iniciantes. Abraços.
Obs: Mais alguns atalhos uteis:
alt-d deleta do cursor ate o final da palavra
ctrl-k delete do cursor ate o final da linha
$ ctrl + z (processo pausado)
$ bg (joga em background)
$ jobs (ver os processos em background)
$ fg (retorna para um processo em background)


PS: vale tanto para o BASH quanto para o TCSH....

Aprender a utilizar o interpretador de comandos DOS

Introdução ao interpretador do comando DOS


Disc Operating System


O que significa DOS ? Disc Operating System (Sistema Operacional Disco)
  • Interpretador antigo (1981,IBM PC)
  • Sistema operacional primitivo
  • Funciona em linha de comando
  • Não tem multi tarefas


As variantes do DOS :
  • PC-DOS desenvolvido por Microsoft para IBM PC
  • MS-DOS vendido por Microsoft
  • DR-DOS de Digital Research
  • FreeDOS


A linguagem Batch


Apesar da interface gráfica do Windows ser amigável, a utilização da linha de comando continua a ser um meio útil de efetuar numerosas tarefas :
  • A linguagem Batchnão é compilada, ela é interpretada COMMAND.COM
  • Os arquivos Batch são editáveis diretamente (não protegidos)
  • Linguagem lenta para as aplicações escritas em linguagem Máquina
  • Um Arquivo Batch é na base um arquivo texto
  • Possível criar seus Batch com qualquer editor de texto.






O interpretador de comando DOS


Faça Iniciar / Executar (ou tecla Windows + R).




Digite cmd para abrir uma janela DOS




É possível de maneira simples modificar a cor do fundo e do texto do console Windows :

A caixa de diálogo dos comandos, com o comando:

- x é a cor do fundo
- y a cor do texto.

Sintaxe a escrever : color xy.







As cores respondem e seguem os seguintes códigos :

0 = Preto ; 8 = Gris ; 1 = Azul ; 9 = Azul claro ; 2 =Verde ; A = Verde
claro ; 3 = Azul cinza ; B = Azul vivo ; 4 = Vermelho ; C =vermelho vivo ; 5 =
Violeta ; D = Violeta claro ; 6 = Amarelo ; E = Amarelo vivo ; 7 = Branco ; F
= branco vivo.


Um clique direito no atalho da caixa de diálogo dos comandos nos dá também a possibilidade de personalizar a janela DOS.

Os caminhos


Pode-se no MSDOS concatenar os nomes dos diretórios ( intercalando um / entre cada diretório) para localizar um diretório dado.
  • Caminho absoluto C:\AD_automobile\Lille
  • Caminho relativo (quando estamos em AD_automobile) Lille


As teclas teclado

  • A tecla TAB permite completar automaticamente as primeiras letras de um comando ou de um caminho de acesso.
  • As teclas alto e baixo permitem editar os últimos comandos


Os comandos


CD : Trocar de diretório (Change Directory)


Para a continuidade deste curso, você pode criar uma pasta na raiz de seu disco rígido as seguintes pastas:
AD_Automobile, Audi, Citroen, Compta, Ford, Peugeot, Renault
e no interior da pasta
AD_Automobile
, uma segunda pasta
Lille
.

Trocar de diretório com o comando CD




Dir : Afixagem de um repertório (directory)







  • "*" caráter genérico que substitui um grupo de caracteres
  • ? substitui o caráter por uma letra desconhecida.




Para conhecer os parâmetros que podem tomar o comando basta acrescentar
/?
depois do comando, por exemplo : dir /?




Tree : Afixagem Arborescência (árvore)




  • /f
    afixa o nome dos arquivos de cada diretório
  • /a
    Utiliza ASCCII no lugar dos caracteres estendidos

domingo, 14 de novembro de 2010

* Redes Wi-Fi

Hackeando Notebooks em Rede Sem Fio

Imagem

A internet sem fio é uma realidade e atualmente quem possui um computador com um dispositivo de acesso wireless pode usar a internet de locais públicos como cafés, bares, shoppings ou mesmo em sua própria casa.

Dizem que esta forma de conexão é tão segura que o usuário nem ao menos precisa utilizar firewalls ou outros programas para prevenir seu computador de invasões, será mesmo verdade?

Há algum tempo foi definido que qualquer computador que estivesse conectado a uma rede sem fio poderia estar se colocando em situação de risco. É verdade que os demais computadores ligados a esta mesma rede ou mesmo outros usuários pela internet poderiam tentar invadir sua máquina por meio deste acesso!

PS:. Pois vou lhes mostrar como isso é muito facil!

Primeiramente você precisa de um notebook e estar conectado a uma rede sem fio, numa faculdade por exemplo! imaginem quantos usuarios também estão conectados a mesma rede de você!

Para dar inicio a invasão você precisa saber o n° de IP dos outros ususarios, certo!
mas como saber esses n° de IPs?
Isso é muito simples, utilizando o software "SoftPerfect Network Scanner 3.8" que estarei disponiblizando o Link para o download!

SoftPerfect Network Scanner 3.8

Imagem

Descrição
Programa com estrutura avançada, procura por portas TCP e mostra que tipo de recursos são compartilhados na rede. Além disso, permite montar recursos compartilhados como drives de rede e procurar por informações através dela. O scanner pode também identificar qual porta cada usuário utiliza.

Compatibilidade Windows 95, Windows 98, Windows ME, Windows 2000, Windows NT, Windows XP, Windows 2003, Windows Vista 32 Bits

Licença de uso: Freeware
Idioma: Inglês
Tamanho: 637 KB
Site do autor: SoftPerfect Research Clique aqui para fazer o Download!

Pronto, agora ja temos um notebook, conectado a uma rede sem fio, ja temos um sacnner de IPs, passaremos então para a melhor parte disso tudo! vamos invadir!

Coloque a SoftPerfect-Network-Scanner a rodar, e em segundos ele te dara varios n° de IPs que estão conectados a mesma rede que você.
selecione alguns, agora abra o menu executar.

Imagem

Pegue o n° de IP selecionado por ex: 192.168.10.82
E digite assim:


Código: Selecionar tudo
\\192.168.10.82  para acesso a pasta compartilhadas \\192.168.10.82\c$  para ter acesso ao C: da vítima \\192.168.10.82\d$  para ter acesso ao D: da vítima