
Guia de Administrao do Sistema Linux 
Verso 0.6 

Lars Wirzenius 

Projeto de Documentao do Linux

Esta  a verso 0.6 do Guia de Administrao Linux
Publicada em 15 de Novembro de 1997

Traduzido e Adaptado pela Conectiva Informtica 
Ltda.





ndice



       

     Introduo

     Viso Geral do Linux
          Diversas partes de um sistema operacional
          Partes importantes do kernel
          Principais servios do kernel  
               init 
               acesso a partir de terminais
               Mensagens do Sistema 
               Comandos peridicos: cron e at               
                Interface grfica
               Rede 
               Acesso via Rede 
               Sistema de Arquivos de Rede (NFS) 
               Correio eletrnico
               Impresso
          A estrutura do sistema de arquivos 
Viso geral da rvore de diretrios 
          Background
          O sistema de arquivos raiz
              O diretrio /etc
              O diretrio /dev
         O sistema de arquivos /usr
         O sistema de arquivos /var
         O sistema de arquivos /proc

Utilizando discos rgidos e outros dispositivos de 
armazenamento
          Dois tipos de dispositivos
          Discos rgidos
          Discos flexveis
          CD-ROMs
          Fitas
          Formatao
          Parties 
               MBR, setores de inicializao e 
tabela de parties
               Parties lgicas e estendidas
               Tipos de partio
               Particionando um disco rgido
               Arquivos de dispositivos e parties
          Sistema de arquivos
              O que  um sistema de arquivos?
               Diversidade de sistemas de arquivos 
               Qual  sistema de arquivos deve ser 
usado?
               Criando um sistema de arquivos
               Montando um sistema de arquivos
               Verificando a integridade de um 
sistema de arquivos com fsck
               Verificando blocos com erro em 
discos rgidos
                Evitando fragmentao
                Outras ferramentas para todos 
sistemas de arquivos 
                Outras ferramentas para sistemas de 
arquivos ext2
          Discos sem sistemas de arquivos
          Alocando espao em disco
               Esquemas de particionamento
               Requisitos de espao      
               Exemplos de alocao de espao em 
disco  
               Adicionado espao em disco ao Linux
               Dicas para economizar espao 
     Gerenciamento de Memria
               O que  memria virtual?
               Criando uma rea de troca
               Usando a rea de troca
               Compartilhando rea de troca com 
outros sistemas operacionais
               Alocando rea de troca
               O cache de buffer 
      Iniciando e Desligando
           Uma viso geral da inicializao e 
encerramento do sistema
           O processo de inicializao em maiores 
detalhes
           Reinicializando
           Mais informaes sobre o encerramento do 
sistema
           Modo monousurio
           Disquetes de emergncia    
      init 
          init vem em primeiro lugar
          configurando o init: o arquivo 
/etc/inittab
          nveis de execuo
          configuraes especiais no /etc/inittab
          iniciando em modo monousurio

     Entrando e saindo do sistema 
          Acesso via terminais
          Acesso via rede
          O que o acesso ao sistema faz
          X e xdm
          Controle de acessos
          Ativao do ambiente de trabalho (shell)
     Gerenciando contas de usurios
          O que  uma conta?
          Criando um usurio
                /etc/passwd e outros arquivos
               Escolhendo um  nmero de usurio e 
identificao de grupo
                Ambiente inicial: /etc/skel
                Criando um usurio manualmente
           Alterando as caractersticas de um 
usurio
           Removendo um usurio
           Desabilitando um usurio temporariamente
       
     Cpias de Segurana
         O que  importante copiar?
          Selecionando o dispositivo de backup
          Selecionando a ferramenta de backup
          Cpias simples
                Cpias de segurana com tar
                Restaurando arquivos com tar
          Cpias em diversos nveis
          O que copiar
          Arquivos comprimidos
     Manuteno de Data/Hora
           Zonas de tempo
           Os relgios de hardware e software
           Quando o relgio est errado
     Medidas de Segurana   
     Comandos e Programas Relacionados
     HOWTOS relacionados 
     Glossrio (DRAFT) 
     Referncias 
     ndice 
     Sobre este documento ... 
     Sobre esta traduo.. 



Lars Wirzenius 




Contedo  

Os fontes do documento original em LaTex e outros 
formatos pode ser encontrado na Internet, via FTP 
annimo em sunsite.unc.edu, no diretrio 
/pub/Linux/docs/LDP.  Encontra-se tambm disponvel 
nos formatos  Postscript e TeX.DVI. A pgina 
oficial deste livro encontra-se em 
texttt{http://www.iki.fi/liw/linux/sag/}.A verso 
atualizada tambm pode ser encontrada naquela 
localizao.

 Copyright  1993-1997 Lars Wirzenius. 

Marcas registradas so de propriedade dos seus 
autores.

 permitido reproduzir e distribuir cpias deste 
manual , desde que acompanhadas 
dos devidos registros de direitos e este aviso seja 
divulgado em todas as cpias.

 permitido processar este documento em TeX ou 
outros formatos e imprimir os 
resultados, e distribuir os documentos impressos, 
desde que acompanhados de permisses expressas  e  
que este aviso esteja presente em todas as cpias, 
incluindo-se as referncias das fontes onde estas 
informaes foram encontradas e o endereo da 
pgina oficial na Internet.    

 permitidos copiar e distribuir diferentes verses 
deste manual sob as mesmas 
condies acima mencionadas, e desde que o trabalho 
da derivado seja distribudo sob os mesmos termos 
desta permisso e que este aviso esteja presente.
 
 permitido a cpia e distribuio deste manual  em 
outras lnguas, sob as 
mesmas condies mencionadas para cpias 
modificadas.

O autor gostaria de ser avisado das modificaes, 
tradues e  verses 
impressas. 

Obrigado.


Adendo

A Conectiva Informtica Ltda., no seu papel de 
buscar popularizar o uso Linux no Brasil, buscou 
traduzir da melhor forma o contedo dessa 
publicao do LDP - Projeto de Documentao Linux, 
assim como agregou comentrios e informaes 
adicionais que pudessem enriquecer o seu uso.

Quaisquer incorrees ou problemas detectados, 
pedimos que sejam comunicados por email para 
info@conectiva.com.br, a fim de que os ajustes 
sejam realizados para as prximas verses.

Agradecemos a todos aqueles que tem participado 
ativamente no desenvolvimento dos  trabalhos de 
traduo, internacionalizao, divulgao e 
adaptao do Linux  realidade brasileira, pois 
muito de nosso esforo est calcado no processo 
participativo desta comunidade.

Esperamos que esse livro seja de utilidade ao 
administradores de sistemas que busquem uma 
ferramenta de auxlio s suas atividades dirias, e 
que possa enriquecer e facilitar os seus 
conhecimentos.

Linux: Quem Compara, Usa!


Conectiva Informtica Ltda.
1998

  




Introduo

No comeo o arquivo foi escrito sem  forma e void; 
e  o vcuo estava sobre a face dos bits. E os Dedos 
do Autor moveram-se sobre o teclado. E o Autor 
disse: que haja palavras, e fizeram-se as 
palavras.


O Guia de Administrao Linux, descreve aspectos da  
administrao do sistema Linux e est voltado para 
usurios  com pouco conhecimento de administrao 
de sistemas, mas que tenham uma base mnima. Este 
manual no descreve como instalar o Linux,  o que  
apresentado no Guia do Servidor Linux. 

Administrao de sistemas  o conjunto de tarefas 
necessrias para manter o computador em boas 
condies de uso. Isso inclui atividades como 
efetuar cpias de segurana (e restaur-las, se 
necessrio), instalar novos programas, criar contas 
de usurios (e apag-las quando no mais forem 
necessrias), estar certo que os sistemas de 
arquivos esto ntegros, e assim por diante. Se um 
computador fosse, por exemplo, uma casa,  
administrao do sistema poderia ser comparada a 
manuteno, a qual inclui a limpeza, arrumar 
vidraas quebradas, e coisas do gnero. 
Administrao de sistemas no  chamada de 
manuteno, por que encerra outros aspectos, no 
abrangidos por este conceito.

A estrutura deste manual permite que muitos 
captulos possam ser utilizados de maneira 
independente, isto , caso sejam necessrias por 
exemplo informaes sobre cpias de segurana, 
pode-se ler somente aquele captulo. Espera-se com 
isto tornar este livro um manual de referncia e 
treinamento, e dentro do possvel, que somente 
partes pequenas sejam consultadas quando 
necessrio, ao invs de exigir a sua leitura 
completa. Ainda assim o fato deste manual ser ainda 
uma ferramenta de ajuda e de referncia , para 
mim, uma uma feliz coincidncia.   

Este manual no pretende ser usado com nica 
ferramenta de consulta. Muitas informaes  
importantes para a administrao de sistemas podem 
ser encontradas nos documentos Linux. Alm disso o 
administrador do sistema  somente um usurio com 
privilgios e tarefas especiais. Um dos recursos 
importantes so as pginas de manual on-line, que 
devem  servir de referncia sempre que um comando 
no for familiar.

O processo de traduo e adaptao do manual buscou 
acrescentar os comandos e HOWTOS relacionados aos 
temas aqui abordados, os quais esto em Apndices 
especfico.  

Enquanto este manual est voltado para o Linux, 
princpios gerais de administrao podem ser 
utilizados em outros sistemas UNIX. Infelizmente 
pelo fatos das variaes serem grandes entre 
diferentes verses de UNIX, a possibilidade de 
cobrir completamente o tema  muito pequena. O 
prprio Linux  difcil de ser abrangido em todas 
as suas possibilidades, dada  natureza de seu 
desenvolvimento.

No h uma distribuio oficial do Linux, e pessoas 
diferentes utilizam diferentes configuraes da 
mesma distribuio, e muitos ainda possuem as suas 
prprias personalizadas. Este livro no pretende 
fixar-se em uma distribuio especfica,  apesar do 
autor utilizar o Debian GNU/Linux e o tradutor o 
Conectiva Linux exclusivamente. Sempre que possvel 
procurar-se- apresentar as diferenas entre elas. 

Tentou-se descrever como as coisas funcionam, ao 
invs de descrever-se somente 
cinco passos simples para cada executar uma 
tarefa. Isso significa que muita informao aqui 
pode no ser necessria, mas pode ser simplesmente  
ignorada para utilizao em um sistema pr-
configurado. Uma leitura completa naturalmente 
aprimorar o conhecimento do sistema e poder 
tornar a administrao mais agradvel.      

Como todo o desenvolvimento do Linux, que funciona 
atravs de trabalho 
voluntrio, este trabalho foi realizado porque 
pensamos que seria agradvel e porque ns sentimos 
que ele precisava ser realizado. Ainda assim, como 
em qualquer trabalho voluntrio h limites de tempo 
despendido e de  conhecimento. Isso significa que 
este manual pode no ser necessariamente to bom 
quanto desejaramos, porm pensamos que ele seja 
muito bom e que as informaes aqui contidas devam 
ser divulgadas. 

Outro ponto que deve ser ressaltado  que muitas 
coisas j documentadas em 
outros manuais no foram aqui exploradas 
profundamente. Isso aplica-se especialmente  
documentao de programas especficos, como por 
exemplo a documentao do mkfs (n.t.: na edio 
brasileira adaptada os programas so apresentados 
em Apndice especfico). Foi descrito somente o 
propsito e o seu uso como ferramenta dentro dos 
princpios deste manual. Para maiores informaes, 
 sugerido ao gentil leitor o uso de outros 
manuais, normalmente os referenciados no projeto de 
documentao do Linux. 

Fizemos um grande esforo para tornar este manual o 
melhor possvel, porm gostaramos de ouvir 
qualquer sugesto que possa melhor-lo. Erros de 
linguagem, informaes incorretas, idias para 
novos tpicos, sees reescritas, informaes sobre 
como os diversos sistemas UNIX funcionam, so bem-
vindas. O email para correspondncias em ingls 
pode ser encontrado em  http://www.iki.fi/liw/mail-
to-lasu.html.  necessrio ler aquelas pginas para 
ultrapassa os filtros de emails indesejados. Para 
sugestes em portugus, por favor envie  as 
mensagens para info@conectiva.com.br.

Muitas pessoas ajudaram no desenvolvimento deste 
livro, direta ou indiretamente. Eu gostaria de 
agradecer especialmente a Matt Welsh pela 
inspirao e liderana na LDP, Andy Oram por levar-
me a trabalhar novamente com o seu valioso 
feedback,  Olaf Kirch por mostrar que isso poderia 
ser executado, e Adam Richter da Yggdrasil e 
diversas outras pessoas por me mostrarem que este 
trabalho poderia ser til e interessante.  

Stephen Tweedie, H. Peter Anvin, Rmy Card, 
Theodore Ts'o, e Stephen Tweedie que me emprestaram 
seus trabalhos (e tornaram este livro menor e mais 
rico). Estou muito agradecido e peo desculpas por 
verses anteriores que possam estar sem os devidos 
crditos.

Adicionalmente gostaria de agradecer a Mark 
Komarinski por enviar seu material em 1993 e s 
muitas colunas de administrao de sistemas do 
Linux Journal. Foram muito instrutivas e 
inspiradoras.

Muitos comentrios teis foram enviados por um 
grande nmero de pessoas. No poderia enumerar 
todos eles, mas alguns, em ordem alfabtica devem 
ser lembrados: Paul Caprioli, Ales Cepek, Marie-
France Declerfayt, Dave Dobson, Olaf Flebbe, Helmut 
Geyer, Larry Greenfield e seu pai, Stephen Harris, 
Jyrki Havia, Jim Haynes, York Lam, Timothy Andrew 
Lister, Jim Lynch, Michael J. Micek, Jacob 
Navia,Dan Poirier, Daniel Quinlan, Jouni K 
Seppnen, Philippe Steindl, G.B. Stotte. 

Peo desculpas aqueles que por ventura no tenham 
sido citados.


O Projeto de Documentao Linux (LDP)

O Projeto de Documentao Linux ou LDP,  um time 
de escritores, leitores e 
editores que trabalham juntos para prover uma 
documentao completa do sistema operacional Linux. 
O coordenado geral do projeto  Greg Hankins. 

Este manual  um de um conjunto  distribudo pela 
LDP, incluindo Guia do Usurio 
Linux, Guia de Administrao do Sistema, Guia de 
Administrao de Rede, e o Guia de Programadores. 
Estes manuais esto disponveis em formatos LaTeX, 
dvi e postscript e disponveis para FTP no 
sunsite.unc.edu, no diretrio /pub/Linux/docs/LDP. 

Ns encorajamos qualquer um com pendor para escrita 
ou editorao, a juntar-se a 
ns para melhorar a documentao Linux. Caso voc 
tenha um endereo email, pode contactar Greg 
Hankins em gregh@sunsite.unc.edu. 

Os Versos da LDP 

Algo  imenso
E belo,
Isto  escrever
Um livro.

Eu gostaria de cantar
Sobre o suor,
O sangue e as lgrimas,
Que foram derramados.

Comeou no passado,
Mil novecentos e noventa e dois,
Quando usurios proclamavam
Ns no podemos fazer nada!

Ele queriam saber
Qual era a causa de seus problemas
E como resolv-los
(para ontem).

Ns pusemos as respostas
Em um Linux FAQ,
Esperando termos resolvido
Qualquer necessidade de escrever novamente.

Isto  muito grande
Difcil de pesquisar
E no podemos ler,
De nenhum modo!

Ento alguns de ns
Juntaram-se
(virtualmente, voc sabe)
e comeamos a LDP.

Comeamos a escrever,
Ou a planejar, no mnimo,
Diversos livros,
Um para cada necessidade.

O comeo foi divertido,
Muita conversa,
Uma  manchete,
Ento freou!

O silncio veio,
O trabalho comeou,
Alguns escreveram menos,
Outros escreveram mais. 

Uma tela em branco,
, isto  horrvel,
Ela  prostada  l
Rindo na minha cara.

Ainda esperamos,
O dia final.
Quando tudo estar pronto.

At l
Tudo o que temos
 um rascunho,
Para voc coment-lo!



Viso Geral do Linux

Deus olhou sobre tudo o que ele fez e viu que 
estava bom!
Genesis 1:31 


Este captulo apresenta uma viso geral do Linux. 
Primeiramente, dos principais 
servios disponibilizados pelo sistema operacional 
e aps os programas que os implementam, porm sem 
um detalhamento muito profundo. O propsito deste 
captulo  dar um entendimento do sistema como um 
todo, onde cada parte ser descrita em detalhes 
mais adiante.


      
Diversas partes de um sistema operacional
          Partes importantes do kernel
          Principais servios do kernel  
               init 
               acesso a partir de terminais
               Mensagens do Sistema 
               Comandos peridicos: cron e at               
                Interface grfica
               Rede 
               Acesso via Rede 
               Sistema de Arquivos de Rede (NFS) 
               Correio eletrnico
               Impresso
A estrutura do sistema de arquivos 


Diversas partes de um sistema operacional

Um sistema operacional UNIX consiste de um kernel 
(kernel) e alguns programas de 
sistema. H ainda aplicaes que executam diversas 
tarefas. O kernel  o corao do sistema 
operacional. Ele mantm o controle dos arquivos em 
disco, programas que iniciam e so executados 
simultaneamente, aloca memria e outros recursos 
para os diversos processos, recebe e envia pacotes 
da rede, etc... O kernel faz muito pouco sozinho, 
na verdade ele prov ferramentas com as quais os 
servios podem ser executados. Ele ainda evita que 
qualquer um possa acessar diretamente os 
componentes de hardware, forando o uso das 
ferramentas disponveis, provendo assim alguma 
proteo para os usurios. As ferramentas 
disponibilizadas pelo kernel so utilizadas atravs 
das chamadas de sistema  (system calls). Para 
maiores informao veja o Apndice Comandos e 
Programas Relacionados ou pginas de manual on-
line, seo 2, para maiores informaes sobre elas.

Os programas de sistema utilizam as ferramentas 
disponibilizadas pelo kernel 
para implementar os diversos servios necessrios 
para o sistema operacional. Programas de sistema e 
todo os demais, so executados sobre o kernel, o 
que  denominado em modo usurio. A diferena entre 
programas do sistema e aplicaes 
est no seu objetivo: as ltimas visam que coisas 
teis sejam realizadas (como  por ex. brincar, caso 
seja um jogo), enquanto os primeiros so 
necessrios para que o sistema operacional possa 
funcionar. Um editor de textos  uma aplicao, 
telnet  um programa do sistema. A diferena  
algumas vezes muito pequena, e somente  importante 
para classificadores compulsivos.

Um sistema operacional pode ainda conter 
compiladores e suas bibliotecas correspondentes 
(GCC e C no caso do Linux), ainda que nem todas as 
linguagens devam ser parte integrante do sistema 
operacional. Documentao e mesmo jogos podem  
fazer parte. Tradicionalmente o sistema operacional 
tem sido definido como o  contedo nos discos de 
instalao, o que no Linux pode variar bastante, 
j que ele pode ser encontrado em diverso sites ao 
redor do mundo. 

Partes importantes do kernel

O kernel do Linux  formado por diferentes partes: 
gerenciador de processos, gerenciador de memria, 
controle de dispositivos de hardware, controle de 
sistemas de arquivos, gerenciador de rede e vrios 
outros. A figura 2.1 mostra alguns deles.

  
Figura 2.1: algumas das partes mais importantes do 
kernel do Linux

Provavelmente as partes mais importantes do kernel 
(nada funciona sem elas) so o gerenciador de 
memria, responsvel pela liberao de memria para 
a rea de troca (swap),  para os processos, para os 
demais componentes do kernel e para o cache de 
disco,  e o gerenciador de processos, responsvel 
por criar os processos e implementar a capacidade 
de execuo de diversas tarefas simultaneamente, 
atravs da troca dos processos ativos no 
processador. 

No  nvel mais baixo, o kernel contm componentes 
de controle (drivers) para 
cada dispositivo de hardware suportado. Uma vez que 
existem inmeros hardwares, o nmero de programas 
de controle tambm  muito grande. A similaridade 
de funcionalidades permite que se tenham classes de 
programas de controle para suportar funes 
similares, ou seja cada membro de uma determinada 
classe de hardwares tem a mesma interface com o 
resto do kernel, mas diferem somente no que  
necessrio para implementar as suas caractersticas 
especficas. Por exemplo todos os discos rgidos 
parecem iguais para o resto do kernel, isto  todos 
tm operaes como inicializar o dispositiivo , 
ler setor N e gravar setor N.

Alguns servios de softwares disponibilizados pelo 
kernel tem propriedades similares, e podem ser 
tambm derivados em classes. Por exemplo, os 
diversos protocolos de rede so abstrados em uma 
interface de programao, a biblioteca BSD. Outros 
exemplo  a camada do sistema virtual de arquivos 
(VFS), a qual abstrai as operaes dos diversos 
sistemas de arquivos. Quando alguma entidade tenta 
utilizar um sistema de arquivos, a requisio  
direcionada ao VFS, a qual  a reencaminha  para o 
dispositivo de controle adequado ao sistema de 
arquivos solicitado.    


Principais servios em um sistema Unix

Esta seo descreve como partes importantes dos 
servios UNIX so implementadas. Elas so descritas 
mais detalhadamente nos prximos captulos.


===================================================
====================

  
               init 
               acesso a partir de terminais
               Mensagens do sistema 
               Comandos peridicos: cron e at               
               Interface grfica
               Rede 
               Acesso via Rede 
               Sistema de Arquivos de Rede (NFS) 
               Correio eletrnico
               Impresso



init

O mais importante servio isolado disponvel em um 
sistema UNIX  denominado init. Init  o primeiro 
processo iniciado em todos os sistemas UNIX, aps a 
carga do kernel do sistema. Quando o init comea, 
ele continua o processo de inicializao do 
sistema, executando diversas tarefas necessrias ao 
funcionamento do sistema (checando e montando 
sistemas de arquivos, iniciando programas 
residentes, etc...)

A lista exata de tarefas que o init realiza depende 
do nvel de execuo do sistema. Ele prov o 
conceito de modo monousurio, no qual ningum alm 
do superusurio (root) pode entrar no sistema, 
sendo utilizado somente o ambiente de trabalho da 
console do sistema, ou o modo multiusurio, o modo 
padro de incio do sistema. Algumas verses 
generalizam isso, denominando como nveis de 
execuo; sendo os modos mono e multiusrio 
considerados como nveis, podendo existir diversos 
outros, como por exemplo, aquele que permita a 
execuo do X (interface grfica) na console. 

Em uma operao normal, o init certifica-se que os 
programas getty esto sendo 
executados (para permitir o acesso dos usurios) e 
adota processos rfos (processos cujos programas 
que os iniciaram (chamados pais) morreram (no 
esto mais sendo executados)). Em UNIX todos os 
processos (programas) esto em uma estrutura em 
rvore, devendo todos eles terem um "pai".

Quando um sistema  desligado,  o init que se 
encarrega de finalizar todos os outros processos, 
desmontando todos os sistemas de arquivos e parando 
o processador junto com tudo o mais que esteja 
sendo executado.


acesso a partir de terminais

Os accessos a partir de terminais (via linhas 
seriais) e atravs da console (quando no se est 
executando o X (interface grfica)) so 
disponibilizados pelo programa getty. O init inicia 
uma instncia distinta do getty para cada terminal, 
nos quais o acesso  permitido. O programa getty l 
o nome do usurio e executa o programa de acesso 
(login), o qual por sua vez processa a validao da 
senha do usurio. Caso usurio e senha sejam 
vlidos, o programa de acesso inicia o shell do 
usurio (programa de ambiente de trabalho). Quando 
um shell  finalizado, isto , o usurio sai do 
sistema, ou quando o  login  finalizado porque 
usurio ou senha so incorretos, o init avisa do 
ocorrido na sida padro e inicia uma nova 
instncia do getty. O kernel no tem conhecimentos 
dos acessos, pois tudo isso  controlado pelos 
programas de sistema. 

Mensagens do Sistema

O kernel e muitos programas do sistema produzem 
avisos, mensagens de erro, e outros comunicados.  
importante que estas mensagens sejam lidas 
freqentemente, mesmo que muito tempo aps da sua 
ocorrncia. Para que isso seja possvel elas so 
gravadas pelo programa syslog em um arquivo. O 
syslog pode ser configurado para ordenar as 
mensagens em diferentes arquivos de acordo com o 
nvel de importncia ou origem. Por exemplo, 
mensagens do kernel so freqentemente direcionadas 
para arquivos distintos, desde que esse tipo de 
mensagem  mais importante e  necessrio que seja 
lida com mais freqncia do que as de outras 
origens.   


Comandos peridicos: cron e at

Tanto administradores do sistema como usurios 
comuns necessitam, com freqncia executar 
periodicamente determinados programas ou comandos. 
Por exemplo o administrador do sistema pode 
executar um comando para limpar os diretrios que 
contenham arquivos temporrios antigos (/tmp e 
/var/tmp), evitando assim que os discos rgidos 
fiquem cheios de arquivos sem utilizadade, uma vez 
que nem todos os programas apagam os arquivos 
temporrios aps a sua execuo.  

O servio cron foi criado para atender a essa 
demanda. Cada usurio tem uma tabela do cron 
(crontab)  sua disposio, onde se pode listar os 
comandos desejados e a freqncia com que eles 
devem ser executados. O programa residente (daemon) 
cron  o encarregado de executar os comandos no 
dias e horrios definidos.

O servio at  similar ao cron, mas est limitado  
uma nica execuo: o comando  executado em um 
determinado horrio fornecido, mas no repetidas 
vezes.


Interface grfica

UNIX e Linux no incorporam a interface do usurio 
ao kernel. Ela  implementada pelos programas a 
nvel de usurio, tanto a interfaces texto como a 
grfica.

Esta configurao ganha em flexibilidade, mas tem a 
desvantagem de, pela facilidade de implementao,  
se ter uma multiplicidade exagerada de interfaces, 
uma para cada programa, tornando o sistema mais 
complexo de ser utilizado.  

O ambiente grfico primrio usado com Linux  
chamado X Window (resumido por X), o qual na 
verdade no implementa a interface grfica, somente 
disponibiliza as ferramentas para tal. As 
interfaces grficas mais populares para Linux so: 
KDE, Gnome, Motif, Open Look, etc...  

Rede

Rede pode ser definida como a conexo entre dois ou 
mais computadores, de forma que eles possam 
comunicar-se entre si. Os mtodos de conexo e 
comunicao so um pouco complexos, porm os 
resultados so muito teis.

Sistemas UNIX tm muitas facilidades para 
implantao de redes. Os servios mais bsicos, 
como impresso, cpias de segurana, sistemas de 
arquivos, etc... podem ser realizados por seu 
intermdio. Isso pode tornar a administrao do 
sistema mais simples, uma vez que permite a sua 
realizao de forma centralizada, mantendo os 
benefcios do processamento distribudo e do uso de 
microcomputadores, como por exemplo menores custos 
e melhor tolerncia  falhas.  
 
Ainda que este livro aborde superficialmente o 
tema, veja o Guia do Administrador de Redes para 
maiores informaes, inclusive uma descrio mais 
profunda sobre o funcionamento de redes.

Acesso via Rede

Acessos via rede so um pouco diferentes dos 
acessos normais, onde h uma linha serial distinta 
para cada terminal, atravs da qual  possvel 
acessar o sistema. Nos casos de acesso via rede, 
para cada usurio que conecta-se ao sistema, h uma 
conexo virtual separada, podendo haver 
(teoricamente) um nmero ilimitado delas. No  
mais possvel executar um getty para cada conexo 
virtual possvel, pois alm disso h muitas formas 
diferentes de conectar-se via rede, sendo o telnet 
e rlogin os servios TCP/IP mais utilizados. 

Acessos via rede, ao invs de um nico programa 
getty, utilizam um programa residente para cada 
tipo de acesso (por exemplo telnet e rlogin 
utilizam programas diferentes), os quais monitoram 
as tentativas de acesso. Quando percebem alguma, 
iniciam uma nova instncia de si prprios para 
controlar uma nica conexo, enquanto a instncia 
original continua monitorando novas tentativas. As 
novas instncias funcionam de maneira similar ao 
getty. 


Sistema de Arquivos de Rede (NFS)
  
Uma das maiores facilidades disponibilizadas pelos 
servios de rede  o compartilhamento de arquivos 
atravs de sistemas de arquivos em rede. O mais 
usado  conhecido como NFS (Network File System), 
tendo sido desenvolvido pela Sun.

Com um sistema de arquivos em rede, qualquer 
operao com arquivos executada por um programa em 
uma determinada mquina, pode ser enviada pela rede 
para outro computador. Esse procedimento pode 
enganar o programa, levando-o a pensar que 
todos os arquivos encontram-se no mesmo equipamento 
onde ele est sendo executado. Isso torna o 
compartilhamento de informaes muito simples, j 
que no requer nenhuma modificaes na programao.  
 
Correio eletrnico

Correio eletrnico  normalmente o mais importante 
meio de comunicao entre os usurios. Uma mensagem 
eletrnica fica armazenada em arquivos com formatos 
especiais, e programas de correio especficos so 
utilizados para ler e enviar mensagens.

Cada usurio tem uma caixa de entrada de mensagens 
(um arquivo com um formato especial) onde todas as 
novas mensagens so armazenadas. Quando algum 
envia uma nova mensagem, o programa de correio 
localiza a caixa do destinatrio e adiciona a nova 
mensagem ao arquivo de recebidas. Caso a caixa de 
entrada esteja em outra mquina, a mensagem  
enviada atravs da rede para o equipamento que 
mantm os arquivos de correio do destinatrio.    

O sistema de correio  constitudo por uma srie de 
programas. A entrega de mensagens para usurio 
remotos  realizada por um programa especfico (o 
agente de transferncia de mensagens  MTA, como 
por exemplo sendmail ou qmail), enquanto os 
programas de usurios so tambm distintos (agente 
de correio do usurio  MUA, como por exemplo pine, 
elm, kmail, Netscape,...). As caixas postais so 
normalmente armazenadas no diretrio 
/var/spool/mail.


Impresso

Hoje somente um usurio pode utilizar uma 
impressora a cada vez, mas seria antieconmico no 
compartilhar esse recurso entre os demais usurios 
da rede. A impressora  ento gerenciada por um 
software que implementa o conceito de fila de 
impresso: todos os trabalhos so colocados em uma 
fila e toda vez que a impressora finaliza um 
trabalho de impresso, o seguinte  iniciado 
automaticamente.  Isso evita que os usurios tenham 
que organizar esta fila ou que haja problemas no 
controle do uso da impressora. 

O software de fila de impresso tambm grava os 
trabalhos de impresso em disco, ou seja os textos 
so mantidos em um arquivo enquanto estejam na fila 
de impresso. Isso permite que uma aplicao 
transfira rapidamente os trabalhos de impresso 
para o software gerenciador da fila, no tendo que 
esperar que o trabalho de impresso seja finalizado 
para continuar a sua execuo. 


A estrutura do sistema de arquivos 


O sistema de arquivos  dividido em diversas 
partes, normalmente utilizando uma estrutura em 
rvore, com um sistema de arquivos chamado raiz 
(root), simbolizado por '/'. Debaixo deste podemos 
ter diversos outros, como  por exemplo: /bin, /lib, 
/etc, /dev, etc.... Um sistema de arquivos /usr 
pode conter programas e dados no atualizveis, o 
/var pode conter dados variveis (como arquivos de 
histricos) e um sistema /home pode ter arquivos 
pessoais de todos os usurios. Dependendo da 
configurao de hardware e das definies do 
administrador do sistema, a diviso pode variar 
substancialmente, sendo possvel inclusive que 
todos os contedos estejam em um nico sistema de 
arquivos. 

Adiante apresentaremos a estrutura dos sistemas de 
arquivos em mais detalhes, sendo que o documento 
que descreve o Sistema de Arquivos Padro do Linux 
cobre o tema mais profundamente.



Viso geral da rvore de diretrios 

 Dois dias depois, havia Pooh,
sentado em seu banco, balanando suas pernas,
e havia ainda, ao seu lado, quatro potes de mel...
(A.A. Milne) 

Este captulo descreve a importncia dos 
componentes padres da rvore de diretrios Linux, 
baseado no Sistema de Arquivos Padro do Linux - 
FSSTND. Ele descreve a forma usual de dividir a 
rvore de diretrios em diferentes sistemas de 
arquivos com diferentes propsitos, justificando a 
adoo de cada diviso. Algumas opes alternativas 
so tambm descritas.


===================================================
=====================
       
         Background
         O sistema de arquivos raiz
              O diretrio /etc
              O diretrio /dev
         O sistema de arquivos /usr
         O sistema de arquivos /var
         O sistema de arquivos /proc



Background

Este captulo est de certa forma baseado no 
Sistema de Arquivos Padro do Linux  (FSSTND), 
verso 1.2, o qual busca definir uma padronizao 
para a organizao da rvore de diretrios Linux. 
Tal padro tem a funo de facilitar o 
desenvolvimento e o porte para o Linux, assim como 
a administrao de mquinas Linux, uma vez que tudo 
estar localizado em caminhos conhecidos. No h 
obrigatoriedade da adoo desta padronizao,  nem 
nada que obrigue quem quer que seja a utiliz-la, 
alm do bom senso, uma vez que ela tem o apoio da 
maioria, seno da totalidade, das distribuies 
Linux. Portanto no  aconselhvel alterar o padro 
da rvore de diretrios, a menos que se tenha 
razes muito fortes para isso. O FSSTND busca 
manter os padres antigos do UNIX, conciliando-os 
com novas demandas, fazendo com o que o Linux 
torne-se mais familiar para aqueles com alguma 
experincia em outros UNIX e vice e versa.

Este captulo no  to detalhado como o FSSTND. Um 
administrador de sistemas deveria  ler aquela 
especificao  para seu um completo entendimento. 
Tambm no so descritos todos os arquivos em 
detalhes. A inteno  de apresentar uma viso 
geral, sob um ponto de vista de sistemas de 
arquivos. Maiores informaes sobre cada arquivo 
podem ser encontradas em outros pontos deste manual 
ou nas pginas de manual on-line do Linux.

A rvore de diretrios deve ser dividida em partes 
menores, cada uma com o seu prprio disco ou 
partio, facilitando questes como limites de 
tamanhos de disco ou a gerao de cpias de 
segurana. Os maiores sistemas de arquivos so o 
raiz (root), /usr , /var , e /home (vide figura 
3.1). Cada parte tem um propsito diferente. O 
desenho da rvore foi idealizado para funcionar 
tambm em rede, tanto em mquinas que necessitem 
compartilhar partes do sistemas de arquivos com 
autorizao somente de leitura (por exemplo um CD-
ROM), assim como 
em mquinas com sistemas de arquivos de rede (NFS). 


Figura 3.1: Partes da rvore de diretrios Unix. 
Linhas tracejadas indicam os limites da parties.

As regras para tal diviso so descritas a seguir.

O sistema de arquivos raiz (root)  especfico de 
cada mquina ( geralmente armazenado em um disco 
local, apesar de poder estar presente em um disco 
em memria ou em uma unidade de rede) e contm os 
arquivos necessrios para a inicializao do 
sistema e para permitir o acesso aos demais 
sistemas de arquivos. O contedo do raiz dever ser 
suficiente ainda para que o sistema possa ser 
executado em modo monousurio. Ele contm ainda 
ferramentas para resolver eventuais problemas e 
recuperar arquivos a partir das cpias de 
segurana. 

O sistema de arquivos /usr contm os comandos, 
bibliotecas, pginas de manual e outros arquivos 
imutveis, necessrios para a operao normal do 
sistema. Os arquivos em /usr no devem ser 
especficos para uma determinada mquina e no 
devem ser alterados durante o uso normal. Isso 
permite que estes arquivos possam ser 
compartilhados atravs da rede, o que pode ser 
bastante interessante pela possvel economia de 
espao em disco (o /usr pode conter facilmente 
centenas de megabytes) e torna a administrao mais 
simples (uma vez que somente o /usr na mquina 
principal necessita ser atualizado e mantido em 
dia). Mesmo que este sistema de arquivos esteja no 
disco local, ele deve ser montado com autorizao 
somente de leitura, para diminuir a chance de 
corrupo de arquivos durante um eventual acidente.   

O sistema de arquivos /var contm arquivos 
mutveis, como diretrios de arquivos temporrios 
(spool) para correio eletrnico, impresses, logs, 
pginas de manual formatadas, etc... 
Tradicionalmente o contedo de /var estaria em 
algum lugar sob o /usr, poprm isso torna 
impossvel montar o /usr com permisses somente de 
leitura  

O sistema de arquivos /home contm os diretrios 
pessoais dos usurios, ou seja, todas as 
informaes armazenadas por estes no sistema. 
Separar diretrios pessoais em sua prpria rvore 
de diretrios ou sistema de arquivos simplifica a 
gerao de cpias de segurana, uma vez que outras 
partes do sistema normalmente no necessitam serem 
copiadas com a mesma frequncia. Um /home muito 
grande pode ser dividido em diversos sistemas de 
arquivos que requerem um nvel adicional na sua 
denominao, como por exemplo /home/alunos ou 
/home/funcionrios.

Apesar das diferentes partes acima serem chamadas  
de sistemas de arquivos, no h obrigatoriedade de 
elas estejam assim separadas. Elas podem facilmente 
estarem no mesmo sistema em uma pequena mquina 
utilizada por um nico usurio que deseje mant-las 
de uma forma mais simplificada. A rvore de 
diretrios pode estar dividida ainda em diferentes 
sistemas de arquivos, dependendo do tamanho de cada 
disco e de quanto espao ser alocado para cada 
finalidade. A parte importante  que os nomes 
padres sejam mantidos e sejam utilizados da forma 
correta.   
 
A estrutura dos sistemas de arquivos Unix prev um 
agrupamento de acordo com o propsito. Ou seja os 
comandos esto todos em uma determinada rea, todos 
os arquivos de dados em uma outra, documentao em 
uma terceira, e assim por diante. Uma alternativa 
seria agrupar os arquivo de acordo com os programas 
a que eles pertenam, isto , os arquivo do Emacs 
estariam todos em um nico diretrio, todos os 
arquivos de TeX em outro, e assim por diante. O 
problema dessa abordagem reside no compartilhamento 
de arquivos (um arquivo de programas contm todos 
os tipos de arquivos: estticos, dinmicos, 
compartilhados e no compartilhados,...) e algumas 
vezes em encontrar alguns desse arquivos (por 
exemplo uma pgina de manual a ser pesquisada em um 
grande nmero de diretrios).   


O Sistema de arquivos raiz (root)

O sistema de arquivos raiz deve geralmente ser 
pequeno, deste que contm  somente os arquivos 
fundamentais para o incio e funcionamento do 
sistema. Um sistema pequeno e pouco modificado tem 
uma chance maior de no ter problemas. Um sistema 
de arquivos raiz corrompido pode geralmente 
significar que o sistema no poder ser 
inicializado, exceto atravs de medidas especiais 
(como por exemplo, por disquetes).

O diretrio raiz geralmente no contm nenhum 
arquivos, exceto talvez pela imagem de 
inicializao (boot) do sistema, normalmente 
chamada /vmlinuz. Todos os outros arquivos esto em 
subdiretrios do raiz:

/bin  
Comandos necessrios durante a inicializao do 
sistema que podem ser utilizados pelos usurios 
(provavelmente aps a ativao do sistema).
/sbin  
Similar ao /bin, porm os comandos no so 
destinados aos usurios comuns, apesar de poderem 
ser utilizados por estes se necessrio.
/etc  
Arquivos de configurao especficos da mquina.
/root  
O diretrio pessoal do superusurio (root).
/lib  
Bibliotecas compartilhadas necessrias aos 
programas residentes no sistema de arquivos raiz.
/lib/modules  
Mdulos dinmicos e carregveis pelo kernel, 
especialmente aqueles necessrios para inicializar 
o sistema em caso de acidentes (por exemplo 
programas de controle de sistemas de arquivos de 
redes).
/dev  
Arquivos de controle de dispositivos. 
/tmp  
Arquivos temporrios. Programas que so executados 
aps a ativao do sistema devem usar o /var/tmp e 
no o /tmp, uma vez que provavelmente encontraro 
mais espao disponvel naquele sistema de arquivos.
/boot  
Arquivos utilizados pelo carregador de 
inicializao do sistema, por exemplo, LILO. 
Imagens do kernel so normalmente mantidas aqui ao 
invs de no diretrio raiz. Casa haja inmeras 
imagens, o diretrio pode facilmente crescer 
demasiadamente, sendo aconselhvel mant-lo em um 
sistema de arquivos  parte. Outra razo  estar 
seguro de que as imagens do kernel estejam nos 
primeiros 1024 cilindros de um disco IDE.
/mnt 
Ponto para montagens temporrias realizadas pelo 
administrador do sistema. Programas usualmente no 
prevem a montagem automtica em /mnt. Este deve 
estar dividido em subdiretrios, como por exemplo 
/mnt/dosa sendo uma unidade de disquetes utilizando 
um sistemas de arquivos MS-DOS, e /mnt/exta pode 
ser a mesma unidade,porm com uma extenso ext2.
/proc, /usr, /var e /home
Pontos de montagem para outros sistemas de 
arquivos.

O diretrio /etc 

O diretrio /etc contm inmeros arquivos. Alguns 
deles esto descritos a seguir. Para outras 
descries  necessrio determinar a quais 
programas eles pertencem e ler as pginas de manual 
daqueles programas. Muitos arquivos de configurao 
de programas de rede esto em /etc, assim como 
encontram-se descritos no Guia de Administrao de 
Rede.  

/etc/rc  ou /etc/rc.d  ou /etc/rc?.d  
So arquivos de lote (scripts) ou os diretrios de 
arquivos de lote que so executados no incio do 
sistema. Veja o captulo sobre o processo init para 
maiores informaes.  

/etc/passwd  
A base de dados de usurios, cujos campos definem 
nome do usurio, nome real, diretrio pessoal, 
senha cifrada e outras informaes especficas de 
cada usurio. O formato est documentado na pgina 
de manual do comando passwd (man passwd) ou no 
Apndice de Comandos e Programas Relacionados.

/etc/fdprm  
A tabela de parmetros de disquetes. Descreve os 
diferentes formatos disponveis.  utilizada pelo 
programa setfdprm. Para maiores informaes veja a 
pgina de manual on-line setfdprm ou no Apndice de 
Comandos e Programas Relacionados. 

/etc/fstab  
Lista os sistemas de arquivos montados 
automaticamente, durante a inicializao do 
sistema, pelo comando mount -a (em etc/rc ou 
arquivo de inicializao similar). Sob Linux, 
contm ainda informaes sobre as reas de trocas 
(swap) usadas automaticamente pelo comando swapon -
a. Veja a pgina de manual do comando mount para 
maiores informaes ou o Apndice de Comandos e 
Programas Relacionados.

/etc/group  
Similar ao /etc/passwd, porm descreve grupos ao 
invs de usurios. Veja a pgina de manual de grupo 
para maiores informaes ou o Apndice de Comandos 
e Programas Relacionados.

/etc/inittab  
Arquivo de configurao do init.

 /etc/issue  
Sada do programa getty antes do prompt de acesso 
ao sistema. Normalmente contm uma breve descrio 
ou mensagens de boas-vindas. O contedo fica a 
critrio do administrador do sistema.

/etc/magic  
O arquivo de  configurao para o comando file. 
Contm as descries de vrios formatos de 
arquivos. Veja as pginas de manual de magic e file 
para maiores informaes ou o Apndice de Comandos 
e Programas Relacionados.
 
/etc/motd  
A mensagem do dia, automaticamente apresentada aps 
um acesso bem sucedido. Contedos so a critrio do 
administrador do sistema. Normalmente so usadas 
para enviar informaes para os usurios, como por 
exemplo avisos de desligamentos planejados.

/etc/mtab  
Lista dos sistemas de arquivos montados. 
Inicialmente configurado por programas de lotes e 
posteriormente atualizado pelo comando mount. Usado 
quando uma lista de sistemas de arquivos  
necessria, como por exemplo pelo comando df.

/etc/shadow  
Arquivos de segurana de senhas em sistemas onde o 
software shadow password esteja instalado. Esta 
opo move as senhas cifradas de /etc/passwd para o 
arquivo /etc/shadow, o qual somente pode ser lido 
pelo superusurio (root). Isso d uma maior 
segurana s senhas dos usurios.

/etc/login.defs  
Arquivo de configurao do programa de acesso ao 
sistema (login).

/etc/printcap  
Similar ao /etc/termcap, mas direcionado a 
impressoras e com sintaxe diferente.  

/etc/profile , /etc/csh.login , /etc/csh.cshrc  
Arquivos executados no acesso ou em tempo de incio 
do sistema pelos ambientes de trabalho Bourne Shell 
ou C Shell. Estes permitem ao administrador 
utilizar padres de variveis para todos os 
usurios. Veja as pginas de manual especficas dos 
respectivos ambientes ou o Apndice de Comandos e 
Programas Relacionados.

/etc/securetty  
Identifica terminais seguros, ou seja aquele nos 
quais  permitido que o superusurio acesso o 
sistema. Normalmente somente as consoles virtuais 
so listadas, tornando muito difcil obter os 
privilgios de superusurio do sistema atravs da 
rede ou de uma conexo via modem.

/etc/shells  
Lista os ambientes de trabalho (shells) 
autorizados. O comando chsh permite que os usurios 
mudem o ambiente padro durante o acesso ao 
sistema, porm somente para aqueles listados neste 
arquivo. ftpd, o servidor de processos que prov os 
servios de transferncia de arquivos em uma 
mquina, checar se o ambiente do usurio est 
listado em /etc/shells e no aceitar acessos que 
no estejam l presentes.

/etc/termcap  
O arquivo de configurao de terminal. Descreve as 
diversas seqncias de "escape" para os diversos 
terminais. Os programas ao invs de escreverem 
diretamente uma seqncia que somente funcionaria 
em determinado tipo de terminal, devem buscar a 
seqncia correta para fazer o que quer que seja em 
/etc/termcap, resultando que devem funcionar na 
maioria dos terminais suportados. Veja as pginas 
de manual termcap, curs_termcap e terminfo para 
maiores informaes ou no Apndice de Comandos e 
Programas Relacionados. 
	
O diretrio /dev 
O diretrio /dev contm arquivos especiais 
(drivers) de controle de todos os dispositivos. 
Estes arquivos utilizam uma denominao especial 
descrita na lista Device. Os arquivos de controle 
so criados durante a instalao, e posteriormente 
atravs do programa /dev/MAKEDEV. O 
/dev/MAKEDEV.local  um programa de lotes escrito 
pelo administrador do sistema e que cria somente os 
arquivos de controles de dispositivos locais que 
no faam parte do padro do MAKEDEV, como arquivos 
de controle para dispositivos especiais.

O sistema de arquivos /usr
O sistema de arquivos /usr normalmente tem um 
tamanho razovel, uma vez que todos os programas 
esto ali instalados. Todos os arquivos em /usr 
normalmente vem com a distribuio Linux, sendo que 
programas instalados localmente esto normalmente 
em /usr/local. Isso torna a atualizao do sistema 
possvel para uma nova verso da distribuio ou 
mesmo para uma distribuio completamente nova, sem 
que seja necessrio instalar todos os programas 
novamente. Alguns dos subdiretrios de /usr esto 
listados a seguir (outros menos importantes podem 
ser encontrados no FSSTND para maiores 
informaes). 

/usr/X11R6  
Os arquivos do sistema X Window. Para simplificar o 
desenvolvimento e a instalao do X, seus arquivos 
no foram integrados ao restante do sistema. H uma 
rvore de diretrios sob /usr/X11R6 similar ao 
/usr.

/usr/X386  
Similar ao /usr/X11R6 , mas destinado a verso 5 do 
X11.
 
/usr/bin  
Praticamente todos os comandos de usurios. Alguns 
outros podem ser encontrados em /bin ou 
/usr/local/bin.

/usr/sbin  
Comandos de administrao do sistema que no 
necessitem estar no sistema de arquivos raiz, como 
por exemplo programas de servidores.

/usr/man , /usr/info , /usr/doc  
Pginas de manual, documentos Info GNU e diversos 
outros documentos, respectivamente.
 
/usr/include  
Arquivos header para a linguagem de programao C. 
Este diretrio deveria estar sob /usr/lib, porm 
por tradio tem sido suportado neste formato.

/usr/lib  
Arquivos estticos de dados para programas e 
subsistemas, incluindo alguns arquivos de 
configurao de todo o site. O nome lib vem de 
library (biblioteca), pois originalmente as 
bibliotecas de programao eram armazenadas neste 
subdiretrio.
 
/usr/local  
O local para softwares instalados localmente e 
outros arquivos.

O sistema de arquivos /var 
O sistema de arquivos /var contm dados que so 
alterados quando o sistema est sendo executado.  
especfico de cada sistema, ou seja, no 
compartilhado atravs da rede com outros 
equipamentos.

/var/catman  
Um cache para pginas de manual que so formatadas 
quando solicitadas. Os fontes para as pginas so 
armazenados em /usr/man/man*, sendo que algumas 
pginas podem vir pr-formatadas, estando 
armazenadas em /usr/man/cat*.  Outras pginas 
necessitam ser formatadas quando acessadas, sendo 
que a verso final fica armazenada em /var/man, 
fazendo com outro usurio que necessite de uma 
verso formatada, tenha ela pronta e disponvel. O 
diretrio /var/catman  freqentemente esvaziado, 
da mesma forma que os arquivos temporrios.   

/var/lib  
Arquivos que mudam enquanto o sistema  executado 
normalmente.
 
/var/local  
Dados variveis para programas que estejam 
instalados em /usr/local, por exemplo programas que 
foram instalados pelo administrador do sistema. 
Note-se que mesmo quando instalado localmente estes 
programas podem usar ainda outros diretrios /var, 
como por exemplo /var/lock.

/var/lock  
Arquivos de controle. Muitos programas seguem uma 
conveno de criarem arquivos em /var/lock para 
indicar que eles esto utilizando um dispositivo em 
particular ou um determinado arquivo. Outros 
programas percebero a existncia do arquivo de 
controle e no tentaro utilizar o mesmo 
dispositivo ou arquivo enquanto o arquivo existir.

/var/log  
Arquivos de histricos de vrios programas, 
especialmente o de acesso (var/log/wtmp, o qual 
registra todas as entradas e sadas do sistema) e 
syslog (var/log/messages, o qual contm as 
mensagens do kernel e programas do sistema). 
Arquivos em /var/log podem crescer indefinidamente 
com frequncia e podem requerer limpezas 
peridicas.  

/var/run  
Arquivos que contm informaes sobre o sistema e 
que so vlidas at a prxima inicializao. Por 
exemplo /var/run/utmp contm informaes sobre os 
usurios atualmente conectados.

/var/spool  
Diretrios de mensagens, notcias, filas de 
impresso e outros trabalhos em fila. Cada 
funcionalidade tem o seu prprio subdiretrio sob 
/var/spool, como por exemplo as mensagens de 
correio eletrnico esto armazenadas em 
/var/spool/mail.  

/var/tmp  
Arquivos temporrios que sejam muito grandes ou que 
necessitem existir por um perodo maior que o 
definido para /tmp. Note-se que o administrador do 
sistema poder no permitir arquivos muitos antigos 
tambm em /var/tmp.  

O sistema de arquivos /proc 

O sistema de arquivos /proc contm um conjunto de 
arquivos virtual. Na verdade ele no existe em um 
disco rgido, mas ao invs  criado em memria pelo 
kernel, sendo usado para prover informaes sobre o 
sistema (originalmente sobre os processos, da a 
origem de seu nome). Alguns dos arquivos mais 
importantes e diretrios so detalhados abaixo. 
Este sistema de arquivos  descrito mais 
detalhadamente na pgina de manual proc ou no 
Apndice de Comandos e Programas Relacionados.

/proc/1  
Um diretrio com as informaes do processo nmero 
1 (init). Cada processo tem um diretrio embaixo de 
/proc, cujo nome equivale ao seu nmero de 
identificao.

/proc/cpuinfo  
Informaes sobre o processador, tais como tipo, 
fabricante, modelo, e performance.
 
/proc/devices  
Lista de programas de controle de dispositivos 
configurados no kernel atualmente em execuo.

/proc/dma  
Mostra quais canais DMA esto sendo utilizados no 
momento.
 
/proc/filesystems  
Sistemas de arquivos configurados no kernel.
 
/proc/interrupts  
Mostra quais interrupes esto em uso  e quantas 
existem.
 
/proc/ioports  
Apresenta quais portas de entrada e sada esto em 
uso no momento.
 
/proc/kcore  
Imagem da memria fsica do sistema. Tem exatamente 
o mesmo tamanho da memria fsica, mas no ocupa 
toda aquela rea, sendo normalmente gerada durante 
o acesso por um determinado programa.

/proc/kmsg  
Mensagens de sada do kernel. So direcionadas 
tambm para o syslog.

 /proc/ksyms  
Tabela de smbolos para o kernel. 
 
/proc/loadavg  
A carga mdia do sistema, contendo trs indicadores 
de quanto trabalho o sistema est executando no 
momento.

/proc/meminfo  
Informaes sobre o uso de memria, tanto fsica 
como de virtual de troca (swap)

/proc/modules  
Descreve quais mdulos esto carregados no momento.
 
/proc/net  
Informaes sobre a situao dos protocolos de 
rede.
 
/proc/self  
Uma ligao simblica para o diretrio de processos 
(/proc). Quando dois processos acessam /proc, podem 
utilizar diferentes ligaes, o que  conveniente 
para programas que utilizem este diretrio como seu 
diretrio de processos.
 
/proc/stat  
Diversas estatsticas sobre o sistema, como o 
nmero de pginaes desde seu incio, I/O, 
processos executados, etc...
 
/proc/uptime  
Tempo que o sistema est ativo.
 
/proc/version  
Verso do kernel do sistema.

Note-se que enquanto os arquivos acima so de fcil 
leitura, por estarem em formato texto, eles podem 
eventualmente estar em outros formatos, de leitura 
mais complexa. H muitos comandos que lem os 
arquivos acima e formatam o seu contedo para um 
melhor entendimento. Por exemplo o programa free l 
o contedo de /proc/meminfo e converte as 
quantidades dadas em bytes em kilobytes, com  
algumas pequenas informaes adicionais.





Usando discos e outros dispositivos de 
armazenamento

" Em um disco vazio pode-se pesquisar eternamente"

Ao instalar ou atualizar o sistema,  necessrio 
ter uma quantidade razovel de espao em disco. Ao 
gerar-se sistemas de arquivos em disco, inmeros 
arquivos podem ser armazenados e espaos podem ser 
reservados para as diferentes partes do sistema. 
 
Este captulo explica todas estas atividades. 
Normalmente, uma vez que o sistema esteja 
configurado, no  necessrio executar esta 
atividade novamente, exceto ao se utilizar 
disquetes. Ser necessrio retornar a este captulo 
caso um novo disco seja adicionado ao sistema ou se 
deseje refinar a utilizao do disco j instalado.


As atividades bsicas na administrao dos discos 
so:
? Formatar o disco. Nesta atividade vrias tarefas 
so executadas, como por exemplo a  checagem de 
setores defeituosos (a formatao hoje no  
mais necessria para diversos discos rgidos).
? Particionar o disco. Indicado caso estejam 
previstas a execuo de diversas tarefas 
independentes entre si. Uma razo para o 
particionamento  manter diferentes sistemas 
operacionais no mesmo disco, outra seria a 
manuteno de arquivos de usurios separados de 
arquivos do sistema, simplificando a gerao de 
cpias de segurana e auxiliando na proteo dos 
arquivos do sistema operacional.
? Gerar um sistema de arquivos (de tipo mais 
adequado) para cada disco ou partio. O disco 
em si no tem significado para o Linux, at que 
um sistema de arquivos seja criado e acessado.
? Organizar diferentes sistemas de arquivos para 
formar uma nica rvore de diretrios, 
automtica ou manualmente montadas (note-se que 
sistemas de arquivos montados manualmente, 
necessitam ser desmontados da mesma forma). 

O captulo 5 contm ainda informaes sobre memria 
virtual e cache de disco, as quais so necessrias 
para se conhecer o correto uso do disco.

Neste captulo explicaremo todo o necessrio para 
conhecer discos rgidos, disquetes, CD-ROMs e 
unidades de fita.


=================================================== 

          Dois tipos de dispositivos
          Discos rgidos
          Discos flexveis
          CD-ROMs
          Fitas
          Formatao
          Parties 
               MBR, setores de inicializao e 
tabela de parties
               Parties lgicas e estendidas
               Tipos de partio
               Particionando um disco rgido
               Arquivos de dispositivos e parties
          Sistema de arquivos
              O que  um sistema de arquivos?
               Diversidade de sistemas de arquivos 
               Qual  sistema de arquivos deve ser 
usado?
               Criando um sistema de arquivos
               Montando um sistema de arquivos
               Verificando a integridade de um 
sistema de arquivos com fsck
               Verificando blocos com erro em 
discos rgidos
                Evitando fragmentao
                Outras ferramentas para todos 
sistemas de arquivos 
                Outras ferramentas para sistemas de 
arquivos ext2
          Discos sem sistemas de arquivos
          Alocando espao em disco
               Esquemas de particionamento
               Requisitos de espao      
               Exemplos de alocao de espao em 
disco  
               Adicionado espao em disco ao Linux
               Dicas para economizar espao 
     

Dois tipos de dispositivos

Unix, e tambm o Linux, reconhecem dois tipos de 
dispositivos: de acesso randmico em blocos (como 
discos rgidos) e dispositivos a caracter (como 
fitas e linhas seriais), alguns dos quais podem 
tambm ser de acesso randmico, sendo outros de 
acesso sequencial. Cada dispositivo suportado  
representado no sistema de arquivos como um arquivo 
de dispositivo. Ao ler ou gravar em um arquivo de 
dispositivo, as informaes vo e vem para o 
dispositivo por ele representado. Desta forma 
nenhum programa especial (e nenhum mtodo especial 
de programao, como descobrir interrupes ou 
vasculhar portas seriais)  necessrio para acessar 
os dispositivos. Por exemplo para enviar um arquivo 
para uma impressora pode-se simplesmente comandar: 

     $ cat filename > /dev/lp1 
     $ 

e o contedo do arquivo ser impresso (o arquivo 
obviamente deve estar em um formato ininteligvel 
para a impressora). Note-se que no  exatamente 
uma boa idia ter-se diversos arquivos direcionados 
para a impressora atravs do comando cat. Deve-se 
utilizar o comando lpr, que assegura que somente um 
arquivo ser impresso por vez, e enviar o arquivo 
seguinte imediatamente aps a concluso da 
impresso do anterior. Algo similar pode ser 
necessrio para a maioria dos dispositivos. Na 
verdade, raramente os arquivos de dispositivos so 
utilizado diretamente. 

Desde que os dispositivos so apresentados como 
arquivos no sistema de arquivos (no diretrio 
/dev),  fcil verificar quais dispositivos existem 
utilizando-se por exemplo  o comando ls ou outro 
similar. Na sada do comando ls -l, a primeira 
coluna indica o tipo de arquivo e suas permisses. 
Um exemplo ao examinar-se um dispositivo serial:

$ ls -l /dev/cua0 
crw-rw-rw- 1 root uucp 5, 64 Nov 30 1993 /dev/cua0 
$ 

O primeiro caracter na primeira coluna acima, isto 
 `c' em crw-rw-rw-, mostra-nos o tipo do arquivo, 
neste caso um dispositivo a caracter. Para arquivos 
comuns o primeiro caracter ser `-', para 
diretrios ser 'd' e para dispositivos em blocos 
ser 'b'. Verifique a pgina de manual on-line do 
comando ls para maiores detalhes ou o Apndice de 
Comandos e Programas Relacionados.

Veja que normalmente todos os arquivos de 
dispositivos existem mesmo que o dispositivo em si 
no esteja instalado. Quer dizer que mesmo que 
exista um arquivo /dev/sda, no significa que 
realmente haja um disco SCSI instalado. Ter-se 
todos os arquivos de dispositivos gerados durante a 
instalao torna-a mais simples, assim como 
facilita a adio de novos componentes de hardware, 
pois no h necessidade de encontrar os parmetros 
corretos para criar os arquivos de novos 
dispositivos.

Discos Rgidos

Esta sub-seo introduz terminologias relacionadas 
com discos rgidos. Caso estes termos e conceitos 
j sejam de seu conhecimento, pode-se passar 
diretamente para a prxima sub-seo. 


A figura 4.1 apresenta um esquema das partes 
importantes de um disco rgido. Ele consiste em um 
ou mais pratos circulares, cada um com ambas as 
faces coberta por uma substncia magntica usada 
para a gravao de dados. Para cada face, h uma 
cabea de leitura e gravao que examina ou altera 
os dados ali gravados. Os pratos giram em um eixo 
comum e tipicamente a velocidade  de 3.600 
rotaes por minuto, sendo que discos de alta 
performance atingem velocidades maiores. As cabeas 
movimentam-se ao longo do raio dos pratos, cujo 
movimento combinado com a rotao dos pratos 
permite o acesso pelas cabeas a qualquer parte da 
superfcie.

O processador (CPU) e o disco comunicam-se atravs 
da controladora de discos. Isso retira dos outros 
componentes do computador o trabalho de saber como 
acessar o dispositivo, uma vez que as controladoras 
para diferentes tipos de discos podem utilizar a 
mesma interface com o restante do computador. Assim 
o restante do sistema somente necessita solicitar 
as informaes necessrias, ao invs de enviar uma 
srie complexa de sinais eltricos para mover as 
cabeas para o local adequado e esperar pelo 
correto posicionamento dos pratos e todos os demais 
passos necessrios. Na realidade a interface da 
controladora  bastante complexa, mas muito menos 
do que poderia ser um acesso direto ao disco. A 
controladora pode ainda executar outras tarefas 
como cache e realocao de setores defeituosos.  

Estas so as informaes necessrias para entender 
o funcionamento do hardware. H ainda muitos outros 
aspectos, como o motor que gira os pratos e move as 
cabeas, o qual eletronicamente controla as partes 
mecnicas do disco, porm estes aspectos no so 
relevantes para o processo de entendimento dos 
princpios bsicos do disco. 

A superfcie dos pratos  normalmente dividida em 
anis concntricos, chamados trilhas e estes por 
sua vez esto divididos em setores. Esta diviso  
utilizada para especificar as localizaes dentro 
do disco e para alocao de espao para os 
arquivos. Para encontrar um determinado ponto em um 
disco, deve-se dizer "face 3, trilha 5, setor 7". 
Normalmente o nmero de setores  o mesmo em todas 
as trilhas e todos os setores tem o mesmo tamanho 
fsico, cabendo nas trilhas externas maiores. 
Tipicamente um setor comporta 512 bytes de dados. O 
disco por si s no pode manipular quantidades 
menores de dados em um setor.
 
Figura 4.1: Desenho esquemtico de um disco rgido

Cada face  dividida em trilhas (e setores) de 
mesma formato. Assim quando uma cabea est sobre 
uma trilha, as cabeas das outras faces esto na 
mesma trilha correspondente. Todas as trilhas 
correspondentes formam um cilindro. O movimento das 
cabeas de uma trilha (ou cilindro) para outro 
utiliza um determinado intervalo de tempo. Ento se 
os dados que so normalmente acessados de forma 
conjunta (digamos um arquivo) estiverem em 
localizaes contguas dentro do disco, o movimento 
das cabeas ser menor, melhorando a performance do 
sistema. Porm nem sempre  possvel armazenar os 
arquivos desta forma, e arquivos que esto 
dispostos em diversos locais do disco so chamados 
de fragmentados.  

O nmero de faces (ou cabeas, que  o mesmo), 
cilindros e setores varia bastante. A especificao 
deste nmero  chamada geometria do disco rgido. A 
geometria  normalmente arquivada de forma 
especial, em uma posio da memria alimentada por 
pilhas, chamada CMOS RAM, da qual o sistema 
operacional pode recuperar durante a inicializao 
do sistema.

Infelizmente a BIOS tem um desenho limitado, o que 
torna impossvel especificar na CMOS RAM um nmero 
de trilhas maiores que 1.024, o que  muito pouco 
para poder controlar discos maiores. A sada 
encontrada para isso foi a controladora "mentir" 
sobre a geometria e converter os endereos dados 
pelo computador em endereos corretos. Por exemplo, 
consideremos que um disco rgido tenha 8 cabeas, 
2048 trilhas e 35 setores por trilha. A 
controladora pode informar que o disco tem 16 
cabeas, 1024 trilhas e 35 setores por trilha, no 
excedendo o limite do nmero de trilhas e dividindo 
por 2 o nmero de cabeas e multiplicando por dois 
o de trilhas para chegar  capacidade exata do 
disco. Na realidade a matemtica pode ser um pouco 
mais complicada, porque os nmeros podem no ser 
to exatos como no nosso exemplo, porm estes 
detalhes no so relevantes para o entendimento do 
princpio. Esta converso distorce a viso do disco 
pelo sistema operacional, tornando impraticvel o 
uso de todos os dados em um cilindro para o 
incremento da performance.   

A converso  somente um dos problemas em discos 
IDE. Discos SCSI tem um nmero seqencial de 
setores, isto  a controladora traduz o nmero 
seqencial do setor  em um endereo composto po 
cabea, cilindro e setor, e usa um mtodo 
completamente diferente de comunicao entre a CPU 
e a controladora, no tendo este tipo de problema. 
Note-se que de qualquer forma o computador pode 
tambm no saber tambm a real geometria de um 
disco SCSI. 

Desde que o Linux com frequncia no conhecer a 
real geometria de um disco, seus sistemas de 
arquivos sequer tentaro manter os arquivos em um 
nico cilindro. Ao invs disso ele tentar utilizar 
setores consecutivos, o que proporciona quase a 
mesma performance. O tema um pouco mais complicado 
 o cache de disco  e acessos automticos feitos 
pela controladora.  

Cada disco rgido  representado por um arquivo de 
dispositivo distinto. Eles podem (normalmente) ser 
somente um ou dois para discos IDE, e so 
conhecidos como /dev/hda, /dev/hdb, /dev/hdc e 
/dev/hdd, respectivamente. Discos SCSI so 
conhecidos como /dev/sda, /dev/sdb, /dev/sdc e 
/dev/sdd. Convenes similares para nomes existem 
para outros tipos de discos (que podem ser 
conhecidos na lista Linux de dispositivos de Peter 
Anvin). Note-se que os arquivos de dispositivos de 
discos rgidos do acesso a todo o disco, sem 
preocupar-se com as parties (que sero discutidas 
adiante), e pode ser simples misturar as 
informaes entre as parties caso no se tenha 
cuidado. Os arquivos de dispositivos de discos so 
normalmente utilizados somente para a obteno de 
dados do registro mestre de inicializao (MBR). 

Disquetes

Um disquete consiste em uma membrana flexvel 
coberta em um ou ambos os lados com uma substncia 
magntica similar a de um disco rgido. O disquete 
por si s no tem uma cabea de leitura e gravao, 
a qual est na unidade de disquetes. Um disquete 
corresponde a um prato do disco rgido, porm   
removvel e uma unidade de disquetes pode tratar 
diferentes disquetes, enquanto um disco rgido  
uma unidade indivisvel.

Como um disco rgido, um disquete est dividido em 
trilhas e setores (e as trilhas de ambos os lados 
do disquete equivalem a um cilindro), mas muito 
menores e em menor quantidade que em um disco 
rgido.

Uma unidade de disquetes pode normalmente tratar 
diferentes formatos de disquetes de forma 
automtica, como por exemplo, uma unidade de 3.5" 
pode usar tanto discos de 720 Kb como de 1.44 Mb. 
Porm o dispositivo ter que operar de forma um 
pouco diferente e o sistema operacional dever 
saber qual o real tamanho do disquete. Para tanto  
h diversos arquivos de dispositivos para unidades 
de disquetes, uma para cada combinao de 
dispositivo e tipo de disquete. H /dev/fd0H1440 
que  o primeiro dispositivo de disquetes (fd0), 
que serve para uma unidade de 3.5", de alta 
densidade (high - H) e com a capacidade de 1440 Kb. 

Os nomes dos arquivos de controle de unidades de 
disquetes so complexos, porm no Linux h tipos 
especiais de dispositivos que podem detectar 
automaticamente o tipo de disco na unidade. Isso 
funciona atravs da tentativa de ler o primeiro 
setor de um disquete recm inserido, usando 
diferente tipos, at que um deles consiga ler o 
disquete corretamente. Isso naturalmente requer que 
o disquete esteja formatado. Os dispositivos 
automticos so chamados /dev/fd0, /dev/fd1 e assim 
por diante. 

Os parmetros dos dispositivos automticos a serem 
utilizados podem ser configurados atravs do 
programa setfdprm. Isso pode ser til caso no se 
utilizem tamanhos usuais de discos, ou se, por 
exemplo, eles tm um nmero diferente de setores, 
ou se a autodeteco falhou por alguma razo.

Linux pode manusear diversos formatos de disquetes 
no padronizados, alm dos padres. Alguns desses 
formatos requerem a utilizao de programas 
especiais de formatao. No comentaremos esses 
tipos, porm pode-se conhec-los ao se examinar o 
arquivo /etc/fdprm. Ele especifica os parmetros 
que o comando setfdprm reconhece. 

O sistema operacional deve saber toda a vez que o 
disquete for substitudo na unidade, para, por 
exemplo, evitar, manter dados no cache de um 
disquete no mais disponvel. Infelizmente a linha 
de sinalizao utilizada para transmitir esta 
informao algumas vezes pode no estar disponvel 
ou pior nem sempre haver notificao ao se usar o 
dispositivo dentro do DOS. Caso problemas estranhos 
estejam ocorrendo, esta pode ser uma possvel 
razo. O nico meio de corrigir este problema  
substituir a unidade de disquetes. 
 
CD-ROM

Um dispositivo CD-ROM utiliza um leitor tico e um 
disco recoberto de plstico. A informao  gravada 
na superfcie do disco  em pequenos orifcios 
alinhados ao redor de uma espiral do centro para a 
borda. O dispositivo direciona um feixe laser na 
espiral para poder ler os dados contidos no disco. 
Quando o laser atinge um dos orifcios, o laser  
refletido de uma determinada forma, quando ele 
atinge a superfcie lisa  refletido de outra. Isso 
permite a criao de um cdigo de bits e portanto 
de informao. O restante  simples, mera mecnica.

Dispositivos de CD-ROM so lentos, quando 
comparados a discos rgidos. Onde um disco rgido 
tpico tem um tempo mdio de acesso de menos de 15 
milisegundos, um CD-ROM rpido pode chegar a 
dcimos de segundos a cada leitura. A taxa atual de 
transferncia est acima das centenas de kilobytes 
por segundo. A lentido dos CD-ROM significa que 
eles no so to agradveis de usar quanto os 
discos rgidos. Porm para instalaes de novos 
softwares, CD-ROMs so muito indicados , uma vez 
que a velocidade no  essencial nestes momentos. 
Algumas distribuies de Linux provem sistemas de 
arquivos prontos para execuo em CD-ROMs, tornando 
a instalao mais simples e economizando bastante 
espao em disco.   

H muitas formas de arrumar os dados em um CD-ROM. 
O mais popular  o especificado pelo padro 
internacional ISO 9660. Este padro especifica um 
sistema de arquivos mnimo, que  mais rudimentar 
do que o do DOS. Por outro lado,  to simples que 
qualquer sistema operacional poder mape-lo em 
modo nativo.
 
Para uso normal em Unix, o sistema de arquivos ISO 
9660 no  muito til, sendo que foram produzidas 
extenses denominadas Rock Ridge. Estas extenses 
permitem nomes longos de arquivos, ligaes 
simblicas e uma srie de outras facilidades, 
tornando o CD-ROM similar a qualquer sistema de 
arquivos Unix. E melhor ainda, um sistema de 
arquivos Rock Ridge  ainda um sistema de arquivos 
vlido para o ISO 9660, tornando-o passvel de 
utilizao tambm sob sistemas no-Unix. Linux 
suporta ambos os formatos: ISSO 9660 e Rock Ridge, 
sendo as extenses reconhecidas automaticamente.
  
O sistema de arquivos  somente metade da questo. 
Muitos CD-ROMs contm dados que requerem programas 
especiais de acesso e muitos desse programas podem 
no ser compatveus com Linux (exceto, 
possivelmente, sob o dosemu, a emulao Linux do 
MS-DOS).

Um dispositivo de CD-ROM  acessado atravs do 
arquivo de dispositivo correspondente. H muitas 
formas de conectar uma unidade de CD-ROM ao 
computador: via SCSI, via placa de som, ou via 
EIDE. Os detalhes de hardware esto fora do escopo 
deste livro. Porm o tipo de conexo definir o 
arquivo de dispositivo.  Consulte a lista de 
dispositivos de Peter Anvin para maiores detalhes.



Fitas

Uma unidade de fitas utiliza fita similares aos 
cassetes usados para msica. Uma fita  serial por 
natureza, o que significa que para obter qualquer 
informao ali armazenada,  necessrio passar por 
todas as outras partes que estejam antes do ponto 
desejado. Um disco pode ser acessado 
randomicamente, isto , pode buscar-se um dado 
diretamente, independente do ponto em que esteja no 
disco. O acesso serial torna as fitas bastante 
lentas, quando comparadas com disco rgidos.

Por outro lado, fitas so relativamente baratas, 
uma vez que elas no necessitem ser rpidas. Elas 
podem facilmente ser geradas em um perodo longo, 
porm contendo uma grande quantidade de dados. Isso 
torna as fitas muito apropriadas para atividades 
como arquivamentos ou cpias de segurana, os quais 
no requerem grandes velocidades, devido aos 
benefcios de custos baixos e alta capacidade de 
armazenamento. 

Formatando
Formatar  o processo de inicializar uma mdia 
magntica, gerando-se as marcas de trilhas e 
setores. Antes de um disco ser formatado, a sua 
superfcie magntica  uma total confuso de sinais 
magnticos. Aps a sua formatao, alguma ordem  
dada a esse caos, basicamente delineando-se as 
linhas onde as trilhas estaro presentes e onde 
elas estaro divididas em setores. O detalhamento 
deste processo mostra algumas diferenas em relao  
ao princpio, porm dentro do escopo deste manual 
isto no e relevante. O que realmente importa  que 
um disco no pode ser utilizado at que seja 
formatado. 

A terminologia pode ser um pouco confusa aqui: no 
DOS a palavra formatao  utilizada com a 
abrangncia tambm da criao dos sistemas de 
arquivos (o qual ser discutido a seguir). E estes 
dois processo esto geralmente combinados, 
especialmente em disquetes. Quando uma distino 
faz-se necessria, a real formatao  chamada de 
baixo nvel, enquanto que a gerao de sistemas de 
arquivos  denominada de alto nvel. Em Unix as 
duas so denominadas: formatao e criao de 
sistemas de arquivos, e  assim que utilizaremos 
neste livro. 

Para discos IDE e alguns SCSI, a formatao  
realizada na fbrica e no necessita ser repetida, 
ou no h porque preocupar-se com o tema. Na 
verdade formatar um disco rgido pode causar 
problemas no seu funcionamento, por exemplo, por 
ser necessrio formatar de uma forma especial ou 
diferente para permitir a realocao automtica de 
setores defeituosos.

Discos que necessitem ser formatados freqentemente 
requerem um programa especial, uma vez que a 
interface de formatao lgica dentro do 
dispositivo varia de disco para disco. O programa 
de formatao  normalmente fornecido com a 
controladora ou atravs de um programa DOS, sendo 
que nenhum dos dois tende a ser de simples 
utilizao sob o Linux.  

Durante a formatao pode-se encontrar pontos ruins 
no disco, chamados de blocos ou setores 
defeituosos. Algumas vezes isso  administrado pelo 
prprio dispositivo, mas mesmo assim, caso o seu 
nmero seja muito grande,  algo precisar ser feito 
para evitar o uso destas partes do disco.  A 
soluo para essa situao reside nos sistemas de 
arquivos, ou seja em manter as informao acima 
descritas. Alternativamente pode-se criar uma 
pequena partio que abrigue somente os setores 
defeituosos do disco, sendo essa abordagem mais 
adequada caso existam pores substanciais do disco 
com defeitos, uma vez que essas grande reas 
normalmente geram problemas em outros sistemas de 
arquivos.   

Disquetes so formatados com fdformat. O arquivo de 
dispositivos da unidade de disquetes  informado 
atravs de parmetro. Por exemplo. O seguinte 
comando  dado para formatar um disco de 3.5 e de 
alta densidade na primeira unidade de disquetes:

     $ fdformat /dev/fd0H1440 
     Double-sided, 80 tracks, 18 sec/track. Total 
capacity 1440 kB. 
     Formatting ... done 
     Verifying ... done 
     $ 

Note-se que caso se necessite auto-detectar o tipo 
de dispositivo (por exemplo /dev/fd0), deve-se 
configurar os parmetros com o comando setfdprm 
primeiramente. Para atingir o resultado desejado, 
deve-se observar os seguintes passos:   

$ setfdprm /dev/fd0 1440/1440 
$ fdformat /dev/fd0 
Double-sided, 80 tracks, 18 sec/track. Total 
capacity 1440 kB. 
Formatting ... done 
Verifying ... done 
$ 

Normalmente  mais conveniente escolher o arquivo 
de dispositivo que se adequa com o tipo de 
disquete. Note-se que isto no pode ser usado para 
formatar disquetes com uma capacidade maior de  
armazenamento do que aquela original de fbrica.

fdformat validar o disquete, isto , verificar os 
blocos defeituosos, e ainda tentar arrum-los 
diversas vezes (pode-se ouvir isto quando o barulho 
da unidade cresce substancialmente). Se o disquete 
tem somente problemas superficiais (como sujeira na 
cabea de leitura e gravao, alguns erros podem 
ser falsos), e fdformat ser executado normalmente, 
mas se um erro real for encontrado, o processo ser 
finalizado imeadiatamente. O kernel apresentar 
mensagens de erro para cada um que seja encontrado, 
as quais sero apresentadas na console, ou, caso o 
syslog esteja sendo usado,  no arquivo 
/usr/adm/messages. fdformat no identificar nem 
apresentar a localizao exata do erro, pois um 
disquete  barato o suficiente para que possa ser 
substitudo imediatamente.    

$ fdformat /dev/fd0H1440 
Double-sided, 80 tracks, 18 sec/track. Total 
capacity 1440 kB. 
Formatting ... done 
Verifying ... read: Unknown error 
$ 
O comando badblocks pode ser utilizado para 
pesquisar qualquer disco ou partio na deteco de 
blocos defeituosos (inclusive em um disquete). Ele 
no formata o disco, portanto pode ser utilizado 
mesmo para sistemas de arquivos j existentes. O 
exemplo a seguir verifica um disquete de 3.5 que 
apresentou dois blocos com defeitos: 


$ badblocks /dev/fd0H1440 1440 
718 
719 
$ 

A sada do programa apresenta o nmero dos blocos 
defeituosos encontrados. Muitos sistemas de 
arquivos podem evitar tais blocos. Eles mantm uma 
lista destes, a qual  inicializada quando o 
sistema de arquivos  gerado e posteriormente 
atualizada. A pesquisa inicial por blocos 
defeituosos pode ser realizada pelo comando mkfs 
(que inicializa sistemas de arquivos), mas 
posteriormente deve ser realizada pelo comando 
badblocks e novos blocos podem ser adicionados com 
o comando fsck. Estes comandos sero descritos 
posteriormente. 

Muitos discos modernos avisam sobre blocos 
defeituosos e tentam consert-los, usando em seu 
lugar um bloco especial, que no tenha problemas e 
reservado  para estas situaes. Isso  
transparente para o sistema operacional e tal 
facilidade deve estar documentada nos manuais do 
disco rgido. Mesmo discos podem falhar caso o 
nmero de blocos defeituosos cresa demasiadamente, 
o que deve provavelmente ocasionar a inutilizao 
do dispositivo.  


Parties

Um disco rgido pode ser divido em diversas 
parties. Cada partio funciona como se fosse um 
disco rgido em separado. A idia  que se h 
somente um disco rgido, e se deseje ter por 
exemplo dois sistemas operacionais, pode-se dividi-
lo em duas parties. Cada sistema operacional 
teria a sua partio prpria, sem interferir nos 
dados do outro sistema. Desta forma eles podem 
coexistir pacificamente no mesmo dispositivo. Sem 
parties deveriam haver dois discos, um para cada 
sistema.

Disquetes no so particionados. No h razes 
tcnicas contrrias, porm pelo fato de serem to 
pequenos, parties no tm aplicao prtica nesta 
mdia. CD-ROMs tambm normalmente no so 
particionados, uma vez que  muito simples utiliz-
los como um grande disco, e dificilmente haver 
mais de um sistema operacional em um CD.

===================================================

       
               MBR, setores de inicializao e 
tabela de parties
               Parties lgicas e estendidas
               Tipos de partio
               Particionando um disco rgido
               Arquivos de dispositivos e parties


MBR, setores de inicializao e tabela de parties

As informaes de como um disco rgido est 
particionado  armazenada no seu primeiro setor 
(isto , no primeiro setor, da primeira trilha do 
primeiro prato). O primeiro setor  o registro 
mestre de inicializao (MBR) do disco. Este  o 
setor que a BIOS l e inicializa,  quando a mquina 
 ligada. O registro mestre de inicializao contm 
um pequeno programa que l a tabela de parties, 
verifica quais parties esto ativas (isto , 
marcadas como inicializveis) e l o primeiro setor 
de cada partio, o setor de inicializao da 
partio (o MBR tambm  um setor de inicializao, 
mas tem um nome diferente por executar diferentes 
funes). O setor de inicializao contm outro 
pequeno programa que l a primeira parte do sistema 
operacional armazenado naquela partio (assumindo 
que ela seja inicializvel, ou seja, que possa 
iniciar o sistema operacional) e ativa o sistema 
operacional l armazenado.

O esquema de particionamento no  definido pelo 
hardware, muito menos pela BIOS.  somente uma 
conveno que diversos sistemas operacionais 
seguem. Os poucos que no a seguem so considerados 
excees. Alguns sistemas operacionais suportam 
parties, mas uma partio que ocupe todo um disco 
e usam mtodos de particionamento interno naquela 
partio. Esse tipo de partio pode conviver 
pacificamente com outros sistemas operacionais, 
inclusive com o Linux, e no requerem medidas 
especiais, porm um sistema operacional que no 
suporte esta facilidade no poder coexistir no 
mesmo disco. 

Uma medida preventiva  anotar-se as parties em 
um papel, assim mesmo que a tabela de parties 
esteja corrompida no se perdero todos os arquivos 
(uma tabela defeituosa pode ser consertada com 
fdisk). A informao relevante  fornecida pelo 
comando fdisk l: 

$ fdisk -l /dev/hda 

Disk /dev/hda: 15 heads, 57 sectors, 790 cylinders 
Units = cylinders of 855 * 512 bytes 

Device Boot Begin Start End Blocks Id System 
/dev/hda1 1 1 24 10231+ 82 Linux swap 
/dev/hda2 25 25 48 10260 83 Linux native 
/dev/hda3 49 49 408 153900 83 Linux native 
/dev/hda4 409 409 790 163305 5 Extended 
/dev/hda5 409 409 744 143611+ 83 Linux native 
/dev/hda6 745 745 790 19636+ 83 Linux native 
$

Parties Lgicas e estendidas

O esquema original de parties  para discos 
rgidos de PCs permite somente quatro parties . 
Isso rapidamente tornou-se muito reduzido para o 
atendimento das necessidades do mundo real, 
principalmente porque as pessoas desejavam utilizar 
diversos sistemas operacionais (Linux, MS-DOS, 
OS/2, Minix, FreeBSD, NetBSD, ou Windows/NT, para 
enumerar alguns), assim como particionar o disco 
mesmo com um nico sistema operacional  uma boa 
idia. Por exemplo a rea de troca (swap), por 
questes de performance, deve ter a sua prpria 
partio no Linux, ao invs de utilizar a partio 
principal. 

Para solucionar estes problemas de projeto, foram 
criadas as parties estendidas. Este truque 
permite que a partio primria seja particionada 
em subparties. A partio primria subdividida  
uma partio estendida, a subpartio  uma  
partio lgica. Elas comportam-se exatamente como 
parties primrias, mas so criadas de forma 
deferente, no havendo diferena de velocidade 
entre elas.  

A estrutura de parties de um disco rgido pode 
aparentar algo similar  figura 4.2. O disco  
dividido em trs parties primrias, a segunda das 
quais  dividida em duas parties lgicas. Parte 
do disco no est particionado. O disco como um 
todo e cada partio primria tem um setor de 
inicializao. 


Figura 4.2: Exemplo de particionamento de disco

Tipos de Parties

As tabelas de parties (uma no MBR e outras nas 
parties estendidas) contem um byte que identifica 
o tipo da partio.  uma tentativa de identificar 
o sistema operacional que utiliza aquela partio 
ou para qual a sua finalidade. O propsito primeiro 
era tornar possvel que dois sistemas operacionais 
utilizassem a mesma partio. Na verdade, sistemas 
operacionais no se importam com o byte de tipo de 
partio. Pior,  alguns deles o utilizam 
incorretamente como o DR-DOS.
No h um padro internacional para especificar o 
que cada byte significa, mas os mais comuns e 
aceitos esto descritos na tabela 4.1 A mesma lista 
est disponvel no programa fdisk do Linux.
 
Particionando um disco rgido

H muitos programas para criao e remoo de 
parties. A maioria dos sistemas operacionais tem 
o seu prprio, e pode ser uma boa idia us-los, 
para evitar situaes no suportadas pelos outros. 
Muitos programas so chamados fdisk, inclusive o 
programa do Linux, ou suas variaes. Detalhes 
sobre a utilizao do fdisk so apresentadas na 
pgina de manual on-line ou no Apndice de Comandos 
e Programas Relacionados. O comando cfdisk  
similar ao fdisk porm mais agradvel, por possuir 
uma interface mais amigvel ao usurio. No 
Conectiva Linux pode ainda ser encontrado o 
DiskDruid, um utilitrio extremamente poderoso.

Ao utilizar discos IDE, a partio de inicializao 
(aquela que contm os arquivos de imagem do kernel 
do sistema) deve residir inteiramente nos primeiros 
1024 cilindros. Isso deve-se ao fato que a partio 
 utilizada pela BIOS no incio do sistema ( e 
antes de carregar o sistema operacional) e a BIOS 
no pode gerenciar mais que 1024 cilindros. Pode-se 
ainda usar uma partio que esteja somente 
parcialmente nos  1024 cilindros iniciais, desde 
que todos os arquivos necessrios  inicializao 
do sistema estejam dentro do limite da BIOS. Porm 
esta  uma prtica desaconselhada pois novas 
compilaes do kernel ou fragmentaes do disco 
podem colocar os arquivos fora deste limite. De 
qualquer forma h que se estar seguro de os 
arquivos necessrios  inicializao do sistema 
estejam nos primeiros 1024 cilindros.

Algumas verses novas de BIOS e discos IDE 
conseguem efetivamente gerenciar discos com mais de 
1024 cilindros. Caso se tenha um sistema desses 
disponvel, este problema no existir e os 
arquivos de inicializao podem estar em qualquer 
ponto do disco. 

Cada partio deve ter um nmero par de setores, 
uma vez que os sistemas de arquivos Linux usam 
blocos de 1 Kb de tamanho, ou seja dois setores. Um 
nmero mpar resultar na no utilizao do ltimo 
setor. Isso no  necessariamente um problema, 
porm  bastante desagradvel e algumas verses de 
fdisk podem alertar sobre o problema.

Alterar o tamanho de uma partio normalmente 
requer que primeiramente seja efetuada uma cpia de 
segurana de tudo o que se deseje salvar e que 
esteja presente na partio (preferencialmente do 
disco todo como medida preventiva), apag-la, criar 
uma nova, e restaurar os arquivos na nova partio. 
Se a partio estiver crescendo, pode-se ter que 
tambm ajustar o tamanho de parties relacionadas 
(assim como das cpias de segurana). 

Uma vez que alterar o tamanho das parties  
bastante trabalhoso,  prefervel t-las bem 
dimensionadas desde o incio, ou ter-se um 
eficiente sistema de cpias de segurana 
implementado. Caso a instalao seja a partir de 
uma mdia que no requeira muita interveno humana 
(digamos CD-ROM comparado com disquetes),  
aconselhvel testar diferentes configuraes num 
primeiro momento, j que no h dados para serem 
copiados, tornando menos trabalhoso modificar o 
tamanho das parties diversas vezes.

H um programa para parties MS-DOS chamado fips, 
que no requer cpias e restauraes de arquivos, 
mas para outro tipo de sistema arquivos o 
procedimento completo ainda ser necessrio.

Arquivos de dispositivos e parties

Cada partio e partio estendida tem o seu 
prprio arquivo de dispositivo. A conveno da 
nomenclatura destes arquivos  formada por um 
nmero adicionado aps o nome do disco, variando de 
1 a 4 para parties primrias (independentes de 
quantas elas sejam) e de 5 a 8 para as parties 
lgicas (independente de onde elas residam). Por 
exemplo o /dev/hda1  o primeira partio primria 
no primeiro disco IDE e /dev/sdb7  a terceira 
partio estendida no segundo disco SCSI.

Sistemas de Arquivos

 
               O que  um sistema de arquivos?
               Diversidade de sistemas de arquivos 
               Qual  sistema de arquivos deve ser 
usado?
               Criando um sistema de arquivos
               Montando um sistema de arquivos
               Verificando a integridade de um 
sistema de arquivos com fsck
               Verificando erros no disco com 
badblocks
                Evitando fragmentao
                Outras ferramentas para todos 
sistemas de arquivos 
                Outras ferramentas para sistemas de 
arquivos ext2

O que so sistemas de arquivos?

Um sistema de arquivos  o mtodo e a estrutura de 
dados que um sistema operacional utiliza para 
administrar arquivos em um disco ou partio, ou 
seja a forma pela qual os arquivos esto 
organizados em um disco. A expresso tambm  
utilizada para se referenciar a uma partio ou 
disco que seja usado para armazenar os arquivos ou 
outros tipos de sistemas de arquivos. Algum pode 
dizer que h dois sistemas de arquivos, 
significando que tem duas parties nas quais 
armazena arquivos.  

A diferena entre um disco ou partio e um sistema 
de arquivos  bastantes significativa. Poucos 
programas (inclusive os programas que criam 
sistemas de arquivos) operam diretamente em setores 
no inicializados de um disco ou partio, e caso 
exista um sistema de arquivos ele ser destrudo ou 
danificado seriamente. Muitos programas operam em 
um sistema de arquivos e no funcionam em uma 
partio que no contenha um (ou que contenha um de 
tipo errado).  

Antes de uma partio ou disco ser usado como um 
sistema de arquivos ele necessita se inicializado, 
e a estrutura bsica de dados necessita ser gravada 
no disco. Este processo  chamado criao de um 
sistema de arquivos.

Muitos sistemas de arquivos Unix tem uma estrutura 
geral similar, apesar dos detalhes exatos variarem 
um pouco. Os conceitos bsicos de superbloco, 
inode, bloco de dados, bloco de diretrios e bloco 
de indireo so similares. O superbloco contm as 
informaes sobre o sistema de arquivos como um 
todo, como por exemplo seu tamanho (a informao 
exata depende do sistema de arquivos). Um inode 
contm as informaes sobre um determinado arquivo, 
exceto seu nome, o qual est armazenado no 
diretrio, junto com o nmero do inode. Uma entrada 
de diretrio  formada pelo nome e pelo nmero do 
inode que representa o arquivo. O inode contm o 
nmero de diversos blocos de dados usados para 
armazenar as informaes do arquivo. H espao 
somente para uns poucos nmeros de blocos de dados 
no inode, e,  caso um nmero maior seja necessrio, 
mais espao para ponteiros ser liberado 
dinamicamente. Esta alocao dinmica  composta 
pelos blocos de indireo que, como o nome indica, 
contm endereos para outros blocos.         

Sistemas de arquivos Unix normalmente permitem a 
criao de espaos vazios em um arquivo (isso   
feito com o comando lseek; veja a pgina de manual 
para maiores informaes ou o Apndice Comandos e 
Programas Relacionados), o que significa que o 
sistema de arquivos simplesmente aloca um espao 
de zero bytes para uma determinada parte do 
arquivo, mas nenhum setor de disco  reservado (o 
que significa que o arquivo usar um pouco menos de 
espao em disco). Isso ocorre freqentemente para 
pequenos binrios, bibliotecas compartilhadas, 
algumas bases de dados e outros poucos casos 
especiais. Espaos so implementados atravs do 
armazenamento de valores especiais de endereos de 
blocos de dados no bloco de indireo ou no inode. 
Este endereo especial significa que no h blocos 
de dados realmente alocados para aquela parte do 
arquivo, ou seja h um buraco .   
 
Espaos vazios so razoavelmente teis. No sistema 
do autor, uma medio mostrou uma economia de pelo 
menos 4 Mb de espao em disco, de um total de 200 
Mb utilizado com o sistema (2%). Veja que este 
sistema contm relativamente poucos programas e 
bases de dados. A ferramenta de medio est 
descrita no Apndice A. 

Classificao de Sistemas de Arquivos

O Linux suporta diversos tipos de sistemas de 
arquivos. Dentre esses destacamos:

minix 
O mais antigo e presumivelmente o mais confivel, 
mas bastante limitado em facilidades (algumas datas 
no aparecem , mximo de 30 caracteres para nome de 
arquivos,etc...) e restries de armazenamento (no 
mximo 64 Mb por sistema de arquivos).
 
xia 
Uma verso modificada do sistema de arquivos minix, 
o qual aumenta os limite de nomes de arquivos e de 
sistemas de arquivos, mas no introduz novas 
facilidades. No  muito popular, mas comenta-se 
que funcione muito bem.

ext2 
O mais poderoso e popular sistema de arquivos 
nativo do Linux. Desenhado para ser facilmente 
compatvel com os avanos das novas verses, sem a 
necessidade de refazimento dos sistemas de arquivos 
j existentes.   

ext 
Uma verso antiga do ext2 que no  mais compatvel 
comn verses atuais.  raro v-las instalada em 
sistemas novos e mesmo os mais antigos tem sido 
convertidos para ext2. 

Adicionalmente h o suporte a diversos outros 
sistemas de arquivos, para simplificar a troca de 
informaes com outros sistemas operacionais. Estes 
sistemas de arquivos funcionam como se fossem 
nativos, exceto pela perda de algumas facilidades 
presentes no Unix, ou apresentam algumas 
particularidades.    

msdos 
Compatibilidade com MS-DOS (e OS/2 e Windows NT) 
atravs de sistemas de arquivos FAT.

umsdos 
sistemas de arquivos msdos estendidos para suportar 
nomes longos, donos, permisses, ligaes e 
arquivos de dispositivos do Linux. Isso permite que 
um sistema de arquivos msdos possa ser usado como 
se fosse um sistema Linux, removendo a necessidade 
de uma partio distinta para o Linux.

iso9660 
O sistema de arquivos padro do CD-ROM. A extenso 
Rock Ridge que permite nomes longos tambm  
suportada automaticamente.

nfs 
Sistemas de arquivos de redes que permitem o 
compartilhamento e o fcil acesso aos arquivos 
entre diversos computadores da rede.
 
hpfs 
O sistema de arquivos do OS/2.
 
sysv 
Sistema de arquivos do System V/386, Coherent e 
Xenix. 

A opo do sistema de arquivos a ser usado depende 
da situao. Caso compatibilidade ou outras razes 
tornam um dos sistemas de arquivos no nativos 
necessrios, ento este deve ser utilizado. Caso a 
opo seja livre, ento provavelmente a deciso 
mais acertada seja usar o ext2, uma vez que ele 
traz diversas facilidades sem sofrer perda de 
performance.  

H ainda o sistema de arquivos proc, normalmente 
acessvel atravs do diretrio /proc, o qual no  
um sistema de arquivos real, apesar de parecer um. 
O sistema de arquivos proc torna mais simples o 
acesso a determinadas estruturas do kernel, como 
por exemplo a lista de processos. Isso torna a 
estrutura de dados parecer um sistema de arquivos 
que pode ser manipulado com as ferramentas usuais. 
Por exemplo para obter uma lista de todos os 
processos pode-se usar o comando: 

$ ls -l /proc 
total 0 
dr-xr-xr-x 4 root root 0 Jan 31 20:37 1 
dr-xr-xr-x 4 liw users 0 Jan 31 20:37 63 
dr-xr-xr-x 4 liw users 0 Jan 31 20:37 94 
dr-xr-xr-x 4 liw users 0 Jan 31 20:37 95 
dr-xr-xr-x 4 root users 0 Jan 31 20:37 98 
dr-xr-xr-x 4 liw users 0 Jan 31 20:37 99 
-r--r--r-- 1 root root 0 Jan 31 20:37 devices 
-r--r--r-- 1 root root 0 Jan 31 20:37 dma 
-r--r--r-- 1 root root 0 Jan 31 20:37 filesystems 
-r--r--r-- 1 root root 0 Jan 31 20:37 interrupts 
-r-------- 1 root root 8654848 Jan 31 20:37 kcore 
-r--r--r-- 1 root root 0 Jan 31 11:50 kmsg 
-r--r--r-- 1 root root 0 Jan 31 20:37 ksyms 
-r--r--r-- 1 root root 0 Jan 31 11:51 loadavg 
-r--r--r-- 1 root root 0 Jan 31 20:37 meminfo 
-r--r--r-- 1 root root 0 Jan 31 20:37 modules 
dr-xr-xr-x 2 root root 0 Jan 31 20:37 net 
dr-xr-xr-x 4 root root 0 Jan 31 20:37 self 
-r--r--r-- 1 root root 0 Jan 31 20:37 stat 
-r--r--r-- 1 root root 0 Jan 31 20:37 uptime 
-r--r--r-- 1 root root 0 Jan 31 20:37 version 
$ 
(Podem haver alguns mais, porm o exemplo acima foi 
resumido por questes didticas).

Note-se que apesar de ser chamado como sistema de 
arquivos, o proc no acessa o disco rgido. Ele 
existe somente no kernel do sistema. Toda vez que 
algum tente acessar alguma parte do sistema de 
arquivos proc, o kernel torna esta parte visvel em 
algum lugar. Ento mesmo que parea existir um 
arquivo com diversos megabytes denominado 
/proc/kcore, ele no utiliza um nico byte do disco 
rgido. 
 
Qual sistema de arquivos deve ser usado?

Faz pouco sentido utilizar muitos sistemas de 
arquivos diferentes. Atualmente ext2fs  o mais 
popular , e provavelmente a deciso mais acertada. 
Dependendo da necessidade de recursos adicionais na 
manuteno das estruturas, velocidade, segurana, 
estabilidade, compatibilidade e diversas outras 
razes, pode ser desejvel utilizar outro tipo de 
sistema de arquivos. Esta necessidade deve ser 
analisada caso a caso.

Criando um Sistema de Arquivos

Sistemas de arquivos so criado, ou melhor 
inicializados, atravs do comando mkfs. Atualmente 
h um comando especfico para cada tipo de sistema 
de arquivos. mkfs  somente uma interface que 
executa o programa adequado ao tipo desejado. 

O tipo pode ser selecionado atravs da opo t 
tipo.

Os programas acionados pelo mkfs podem ter uma 
interface de linha de comando ligeiramente 
diferente. As opes comuns e mais importantes 
esto resumidas a seguir (veja a pgina de manual 
on-line para maiores informaes ou consulte o 
Apndice Comandos e Programas Relacionados).

-t tipo_sistema_arquivos
   seleciona o tipo do sistema de arquivos 
-c pesquisa blocos defeituosos e inicializa a lista                      
de blocos ruins 
-l nome_do_arquivo 
   L a lista de blocos ruins a partir do arquivo 
informado.
 
Para criar um sistema de arquivos do tipo ext2 em 
um disquete, basta executar o comando:

$ fdformat -n /dev/fd0H1440 
Double-sided, 80 trilhas, 18 set/trilha. Capacidade 
Total 1440 Kb. 
Formatando ... feito 
$ badblocks /dev/fd0H1440 1440 > blocos-def 
$ mkfs -t ext2 -l blocos-def /dev/fd0H1440 
mke2fs 0.5a, 5-Apr-94 for EXT2 FS 0.5, 94/03/10 
360 inodes, 1440 blocos 
72 blocos (5.00%) reservados para o superusurio 
Primeiro bloco de dados=1 
Tamanho do bloco=1024 (log=0) 
Tamanho de fragmento=1024 (log=0) 
1 grupo de blocos 
8192 blocos por grupo, 8192 fragmentos por grupo 
360 inodes por grupo 

Gravando tabela de inodes: Feito
Gravando estatsticas de superblocos e sistemas de 
arquivos: Feito 
$

Inicialmente o disquete foi formatado (a opo n 
inibe a checagem de blocos defeituosos). Aps o 
comando badblocks faz a checagem e redireciona as 
mensagens de sada para o arquivo blocos-def, e 
finalmente o sistema de arquivos  criado, com a 
lista de blocos defeituosos inicializada com o que 
quer que o comando badblocks tenha encontrado.

A opo c pode ser utilizada em conjunto com o 
comando mkfs, ao invs do comando badblocks e de um 
arquivo em separado, conforme o exemplo a seguir: 

$ mkfs -t ext2 -c /dev/fd0H1440 
mke2fs 0.5a, 5-Apr-94 for EXT2 FS 0.5, 94/03/10 
360 inodes, 1440 blocos 
72 blocos (5.00%) reservados para o superusurio 
Primeiro bloco de dados=1 
Tamanho do bloco=1024 (log=0) 
Tamanho de fragmento=1024 (log=0) 
1 grupo de blocos 
8192 blocos por grupo, 8192 fragmentos por grupo 
360 inodes por grupo

Pesquisando setores defeituosos (teste de leitura): 
feito 
Gravando tabela de inodes: Feito
Gravando estatsticas de superblocos e sistemas de 
arquivos: Feito 
$ 

A opo c  mais conveniente que o uso do comando 
badblocks em separado, porm este ltimo  
necessrio para uma verificao mais acurada, aps 
a criao do sistema de arquivos. 
 
O processo de preparar sistemas de arquivos em 
discos rgidos ou parties  o mesmo para 
disquetes, exceto pelo fato da formatao no ser 
necessria.

Montando e Desmontando Sistemas de Arquivos

Antes de um sistema de arquivos poder ser 
utilizado, ele necessita ser montado. O sistema 
operacional executa diversas verificaes para 
estar seguro de que tudo est funcionando bem. Uma 
vez que todos os arquivos em Unix esto em uma 
rvore de diretrios, a operao de montagem far 
com que o novo sistema de arquivos parea um 
subdiretrio existente em algum sistema de arquivos 
j montado.    
  
Por exemplo, a figura 4.3 mostra trs diferentes 
sistemas de arquivos, cada qual com o seus prprio 
diretrio raiz. Quando os dois ltimos so montados 
sob /home e /usr, respectivamente, no primeiro 
sistema de arquivos, temos somente uma nica rvore 
de diretrios e suas entradas, conforme a figura 
4.4.

 
Figura 4.3: Trs sistemas de arquivos distintos.

  
Figura 4.4: /home e /usr foram montados.

As montagens podem ser executadas, por exemplo, da 
seguinte forma: 

$ mount /dev/hda2 /home 
$ mount /dev/hda3 /usr 
$ 

O comando mount tem dois argumentos. O primeiro  o 
arquivo de dispositivo correspondente ao disco ou 
partio que contenha o sistema de arquivos. O 
segundo  o diretrio sob o qual ele ser montado. 
Aps esse comando o contedo dos dois sistemas de 
arquivos parecero simplesmente dois diretrios: 
/home e /usr respectivamente. Pode-se ento dizer 
que /dev/hda2 est montado em /home e similarmente 
/dev/hda3 est montado em /usr. Para examinar estes 
sistemas de arquivos, pode-se acessar estes 
diretrios exatamente da mesma forma que qualquer 
outro.  importante ressaltar a diferena entre os 
arquivos /dev/hda2 e o diretrio montado /home. 
Enquanto o primeiro d acesso ao dados brutos do 
disco, o diretrio permite o acesso aos arquivos 
contidos no mesmo disco. O diretrio montado  
chamado ponto de  montagem.

O Linux suporta diversos tipos de sistemas de 
arquivos. A montagem tenta verificar qual o tipo de 
sistema de arquivos est sendo montado. Pode-se 
utilizar opcionalmente a opo t 
tipo_sistema_arquivos para especificar o tipo 
diretamente na montagem. Isso pode ser til quando 
a verificao automtica no funcione corretamente. 
Por exemplo para montar um disquete MS-DOS, pode-se 
usar o seguinte comando:   

$ mount -t msdos /dev/fd0 /floppy 
$ 

O diretrio montado no necessita estar vazio, na 
verdade ele somente deve existir. Alguns arquivos 
porm podem estar inacessveis enquanto o sistema 
de arquivos  montado (qualquer arquivo que j 
tenha sido aberto estar disponvel. Arquivos que 
contm ligaes diretas com outros diretrios 
tambm podem ser acessados atravs daqueles nomes). 
Nenhum dano ser causado ao sistema de arquivos e 
isso pode, por vezes, ser bastante til. Por 
exemplo caso se deseje ter /tmp e /var/tmp como 
sinnimos, faz-se uma ligao simblica de /var/tmp 
para /tmp. Quando o sistema  inicializado, antes 
que o sistema de arquivos /usr seja montado, o 
diretrio /var/tmp residente no diretrio raiz  
usado em seu lugar. Quando /usr  montado, ele 
tornar o diretrio /var/tmp no raiz indisponvel. 
Caso este diretrio no existisse no raiz seria 
impossvel usar arquivos temporrios antes de 
montar /var.    

Caso no se pretenda gravar absolutamente nada no 
sistema de arquivos,pode-ese usar o parmetro r 
para montar o sistema de arquivos permitindo 
somente operaes de leitura. Isso far com que o  
kernel do sistema bloqueie qualquer tentativa de 
gravao naquele sistema de arquivos. Montagens de 
leitura somente so necessrias para mdias no 
gravveis como por exemplo CD-ROMs. 

O leitor mais atento perceber um pequeno problema 
logstico. Como o primeiro sistema de arquivos 
(chamado raiz, por conter o diretrio raiz (/))  
montado, uma vez que obviamente ele no pode ser 
montado a partir de outros sistemas de arquivos? 
Isso  feito de maneira automtica. O sistema de 
arquivos raiz  montado automaticamente durante a 
inicializao do sistema operacional e pode-se 
estar certo de que ele sempre estar disponvel, 
pois de outra forma o sistema no poder ser 
inicializado. O nome do sistema de arquivos que  
montado como /  compilado junto com o kernel do 
sistema ou configurado no LILO ou atravs do 
comando rdev. 

O sistema de arquivos raiz normalmente  montado 
com permisses somente de leitura. Os programas de 
lote iniciais executaro o comando fsck para 
verificar sua integridade e se por ventura h algum 
problema. Caso tudo corra bem, ele ser montado 
novamente, agora com permisses de gravao. O 
programa fsck no deve ser executado em sistemas de 
arquivos montados, pois quaisquer alteraes no 
sistema durante a sua execuo podem causar 
problemas. Uma vez que o sistema de arquivos raiz  
montado com permisses somente de leitura, fsck 
pode ser executado e regularizar qualquer 
anormalidade encontrada, uma vez que aps a 
remontagem com permisses de gravao, os eventuais 
ajustes sero efetuados automaticamente. 
 
Em muitos sistemas, h outros sistemas de arquivos 
que devem ser montados automaticamente durante a 
sua inicializao. Estes sistemas de arquivos devem 
ser especificados no arquivo /etc/fstab (veja a 
pgina de manual do fstab para maiores informaes 
sobre seu formato ou o  Apndice Comandos e 
Programas Relacionados). Os detalhes exatos de como 
cada sistema de arquivos ser montado depende de 
muitos fatores e pode ser efetuado de acordo com a 
necessidade de cada administrador. Aps o captulo 
de inicializao do sistema, pode-se obter mais 
informaes sobre o tema. 

Quando um sistema de arquivos no necessita mais 
estar montado, ele pode ser desmontado atravs do 
comando umount. Este comando necessita de somente 
um argumento: ou o arquivo de dispositivo ou o 
ponto de montagem. Por exemplo para desmontar os 
diretrios do exemplo anterior deve-se comandar:   

     $ umount /dev/hda2 
     $ umount /usr 
     $ 

Para maiores informaes sobre este comando, 
sugerimos a leitura da pgina de manual on-line ou  
o Apndice Comandos e Programas Relacionados.  
fundamental que um disquete sempre seja desmontado. 
No se deve simplesmente retirar o disquete da 
unidade, pois dados podem estar em memria e ainda 
no terem sido gravados. Isso somente ocorre aps a 
execuo do comando umount. Retir-lo antes pode 
danificar o contedo do disquete. Caso se esteja 
somente lendo do disquete isso pode no ser to 
crtico, mas caso se esteja gravando algum contedo 
o resultado pode ser catastrfico.

Montar e desmontar sistemas de arquivos requer 
privilgios de superusurio, isto , somente o 
usurio root pode faz-lo. A razo para isso  que 
se qualquer usurio pudesse montar um disquete como 
um sistema de arquivos, o nvel de segurana do 
sistema seria muito menor, pois esse diretrio 
poderia conter por exemplo um programa do tipo 
Cavalo de Tria  disfarado como um /bin/sh, ou 
como  muitos outros programas utilizados com 
frequncia. H muitas formas de resolver isto:

? Dar aos usurios a senha do superusurio. Esta  
obviamente a pior soluo, mas  a mais simples. 
Deve funcionar bem caso no haja outras 
necessidades de segurana no equipamento, no 
caso de mquinas fora da rede ou sistemas de uso 
pessoal. 

? Usar um programa como o sudo que permite aos 
usurios utilizar o comando mount. Ainda no  
uma soluo segura, mas no d privilgios de 
superusurio a todos os usurios.

? Indicar o uso das ferramentas mtools, um pacote 
de manipulao de sistemas de arquivos DOS, sem 
ter que mont-los. Isso funciona bem  para 
arquivos MS-DOS, mas ainda no  a soluo 
ideal. 

? Listar as unidade de disquetes e os pontos de 
montagem permitidos no arquivo /etc/fstab.


Esta ltima alternativa pode ser implementada 
adicionando-se um linha similar  seguinte no 
/etc/fstab:

     /dev/fd0 /a: msdos user,noauto 0 0 

As colunas so: arquivo do dispositivo a ser 
montado, diretrio de montagem, tipo do sistema de 
arquivos, opes, frequncia da realizao de 
cpias de segurana (usado pelo comando dump), e 
nmero de passagem do fsck (especifica a ordem em 
que o sistema de arquivos deve ser verificados aps 
a inicializao. 0 significa sem checagem). 
 
A opo noauto inibe a montagem automtica na 
inicializao do sistema (ou seja inibe a ao do 
comando mount a no arquivo fstab). A opo user 
permite que qualquer usurio possa montar o sistema 
de arquivos e, por razes de segurana, desabilita 
a execuo de programas (em modo normal ou atravs 
de setuid) e a interpretao de arquivos de 
dispositivos a partir do sistema de arquivos 
montado. Aps isso, para montar o disquete com um 
sistema de arquivos DOS, basta utilizar o comando:

     $ mount /a: 
     $ 

O disquete pode  (e deve, conforme exposto acima) 
ser desmontado com o comando umount correspondente. 

Caso seja necessrio prover acesso a diversos tipos 
de disquetes, pode-se ter diversos pontos de 
montagem. Os parmetros podem ser diferentes para 
cada um. Por exemplo para dar acesso a disquetes 
DOS e ext2, pode-se fazer o seguinte: 

/dev/fd0    /dos_a:    msdos   user,noauto  0  0
/dev/fd0    /ext2_a:   ext2    user,noauto  0  0

Para sistemas de arquivos DOS (no somente em 
disquetes), provavelmente queira-se restringir o 
acesso usando opes de mscaras de usurios, uid e 
gid, descritos na pgina de manual do comando 
mount. Caso estas precaues no sejam tomadas, 
qualquer usurio poder no mnimo ler todos os 
arquivos DOS daquele sistema de arquivos, o que no 
parece ser uma boa idia. 

Verificando a integridade de um sistema de arquivos 
com fsck

Sistemas de arquivos so estrutura complexas, e 
devem estar livres de erros para o perfeito 
funcionamento do sistema. A validao e correo de 
erros  de um sistema de arquivos podem ser 
realizadas atravs do comando fsck. Ele pode ser 
configurado para resolver qualquer tipo de problema 
que ele encontre e para alertar o usurio sobre 
erros incorrigveis. Felizmente os programas que 
implementam os sistemas de arquivos so muito bem 
desenvolvidos e  muito raro ter-se problemas desta 
natureza, porm ocorrncias causadas por falhas de 
energia, falhas de hardware ou erros de operao  
por exemplo, podem desligar o sistema de maneira 
imprpria.
 
Muitos sistemas esto configurados para executarem 
o fsck automaticamente no momento de sua 
inicializao, sendo que vrios problemas podem ser 
encontrados e corrigidos desta forma, antes da 
utilizao do sistema. O uso de sistemas de 
arquivos corrompidos tende a piorar o problema: se 
as estruturas de dados contm erros, utilizar o 
sistema de arquivos pode provocar uma perda ainda 
maior de dados. Ainda que o fsck possa demorar um 
pouco em grandes sistemas de arquivos e desde que 
problemas raramente ocorrem quando se desliga a 
mquina apropriadamente, alguns truques so usadas   
para evitar a checagem nestes casos. O primeiro  
baseado na existncia do arquivo /etc/fastboot; 
caso ele exista, nenhuma checagem  realizada. O 
segundo consiste em utilizar o e2fsck (a verso do 
fsck para sistemas de arquivos do tipo ext2). Os 
sistemas de arquivos ext2 tm uma marca especial no 
superbloco, a qual informa se o sistema foi 
desligado de maneira apropriada. Caso positivo, o 
programa no checar todo o sistema de arquivos. 
Ainda que o uso do fastboot dependa dos programas 
de inicializao do sistema, o e2fsck no ir 
validar o sistema de arquivos, desde que o sistema 
tenha sido desligado corretamente (veja a pgina de 
manual do e2fsck  para maiores informaes ou o 
Apndice Comandos e Programas Relacionados).

A checagem automtica funciona somente para os 
sistemas de arquivos que so montados 
automaticamente na inicializao do sistema. Para 
os demais, como por exemplo disquetes, o programa 
fsck deve ser executado manualmente.

Caso o fsck encontre problemas irreparveis, ser 
necessrio um conhecimento profundo de como os 
sistemas de arquivos funcionam e em especial do 
tipo de sistema corrompido, ou ento trazer sempre 
de forma atualizada as cpias de segurana do 
sistema. A segunda opo  mais simples de ser 
posta em prtica, j a primeira pode depender de 
pesquisas em grupos de notcias, listas de 
discusso e servios de suporte. O programa debugfs 
de Theodore T'so pode ajudar nesta tarefa. 
 
fsck deve ser executado somente em sistemas de 
arquivos desmontados e nunca naqueles que j 
estejam montados (exceto o sistema de arquivos 
raiz, montado com permisses somente de leitura, 
durante a inicializao do sistema). Isso se deve 
ao fato do fsck acessar diretamente os dados brutos 
do sistema, podendo inclusive modific-los sem que 
o sistema operacional perceba. Caso outro programa 
tente acessar ou alterar os dados durante a 
checagem, os resultados so imprevisveis.

Verificando erros em disco com  badblocks

 aconselhvel checar periodicamente o disco 
rgido. Isto poder ser feito atravs da execuo do 
programa badblocks. Ele gera uma lista com os 
nmeros dos blocos defeituosos encontrados. Esta 
lista pode servir de entrada, por exemplo, para o 
comando fsck, a fim de informar as estruturas de 
dados do sistema de arquivos que tenham problemas, 
a fim de que o sistema no armazene dados naqueles 
blocos. O seguinte exemplo mostra como isso pode 
ser feito:   

$ badblocks /dev/fd0H1440 1440 > bad-blocks 
$ fsck -t ext2 -l bad-blocks /dev/fd0H1440 
Parallelizing fsck version 0.5a (5-Apr-94) 
e2fsck 0.5a, 5-Apr-94 for EXT2 FS 0.5, 94/03/10 
Pass 1: Checking inodes, blocks, and sizes 
Pass 2: Checking directory structure 
Pass 3: Checking directory connectivity 
Pass 4: Check reference counts. 
Pass 5: Checking group summary information. 

/dev/fd0H1440: ***** FILE SYSTEM WAS MODIFIED 
***** 
/dev/fd0H1440: 11/360 files, 63/1440 blocks 
$
Caso algum bloco defeituoso j esteja em uso, 
e2fsck tentar mover o bloco para outro local. Caso 
o problema seja realmente grave  e no somente um 
erro superficial, o arquivo poder estar 
definitivamente corrompido.

Evitando Fragmentao

Quando um arquivo  gravado em disco, ele nem 
sempre pode ser gravado em blocos consecutivos. Um 
arquivo que no esteja armazenado em blocos 
consecutivos estar fragmentado.  Um arquivo com 
essa organizao leva mais tempo para ser lido, uma 
vez que as cabeas do disco rgido levaro mais 
tempo, j que tero que  movimentar-se mais.  
desejvel evitar a fragmentao, apesar de no ser 
exatamente um problema grave quando se utiliza um 
bom buffer de dados  de leitura avanada.

Os sistemas de arquivos ext2 tentam manter a 
fragmentao no mnimo, mantendo todos os blocos de 
um arquivo juntos, mesmo que eles no possam ser 
armazenados em setores consecutivos, pois ext2 
efetivamente sempre aloca o bloco livre mais 
prximo dos demais blocos do arquivo. Para ext2,   
muito raro preocupar-se com fragmentao. H um 
programa para desfragmentao de sistemas de 
arquivo do tipo ext2. Para maiores detalhes, 
consulte  ftp://sunsite.unc.edu/pub/Linux/system/ 
Filesystems/defrag-0.6.tar.gz. 

Para sistemas DOS h diversos programas de 
desfragmentao que movem os blocos dentro do 
sistema de arquivos, diminuindo o nvel de 
fragmentao. Para outros sistema de arquivos, a 
desfragmentao pode ser realizada atravs da 
realizao de cpias de segurana do sistema de 
arquivos, recriao do sistema e restaurao dos 
arquivos. Realizar uma cpia de segurana do 
sistema de arquivos antes de desfragment-lo  uma 
boa medida,  uma vez que muitas coisas ocorrem 
durante esse processo.


Outras ferramentas para sistemas de arquivos

Algumas ferramentas so ainda muito teis no 
gerenciamento de sistemas de arquivos.  O comando 
df apresenta o espao livre em disco para um ou 
mais sistemas de arquivos. du  mostra o espao 
ocupado por um diretrio e todos os seus arquivos, 
e pode ser usado para encontrar os grandes usurios 
de espao em disco. 

sync fora a gravao  de todos 
os blocos no gravados e que estejam em memria (no 
cache).  raro execut-lo manualmente , o programa 
residente encarregado de sua execuo faz isso 
automaticamente, mas pode ser til em problemas 
como a  morte  dos programas update ou bdflush, 
ou case se deseje desligar o equipamento 
imediatamente, sem esperar pela sua execuo. 

Outras Ferramentas para Sistemas de Arquivos Ext2

Em adio ao criador de sistemas de arquivos 
(mke2fs) e ao verificador (e2fsck) acessados 
diretamente ou atravs de uma interface, o sistema 
de arquivos ext2 tem algumas ferramentas que podem 
ser de grande utilidade.

Tune2fs ajusta os parmetros do sistema de 
arquivos. Alguns parmetros interessantes so:

? Um contador do nmero de vezes que o sistema de 
arquivos foi montado. E2fsck fora uma checagem 
toda vez que o sistema seja montado n vezes, 
mesmo que o indicador de normalidade esteja 
assinalado. Para um sistema que  usado em 
desenvolvimento ou testes,  sugerido reduzir 
este nmero.
? Um tempo mximo entre as checagens. e2fsck pode 
ser executado automaticamente caso o tempo 
mximo tenha transcorrido, mesmo que o indicador 
de normalidade esteja assinalado. Esta opo 
pode ser desabilitada, a critrio do 
administrador.
? Nmero de blocos reservado para o raiz. Ext2 
reserva alguns blocos para o sistema de arquivos 
raiz, que mesmo que ele esteja cheio, pode-se 
ter ainda algo em torno de 5% de espao 
adicional sem ter-se que apagar nenhum arquivo. 
Para disquetes esta facilidade no  
disponibilizada.

Veja a pgina de manual do tune2fs para maiores 
informaes sobre o assunto ou o Apndice Comandos 
e Programas Relacionados.

Dumpe2fs apresenta algumas informaes sobre um 
sistema de arquivos ext2, a maioria extrada a 
partir do superbloco. Algumas informaes so 
extremamente tcnicas e exigem um certo 
conhecimento de como o sistema de arquivos 
funciona, mas muitas das informaes so do alcance 
da maioria dos administradores.

Figura 4.5: exemplo da sada do programa  dumpe2fs 

Debugfs  um programa destinado  validao de um 
sistema de arquivos. Ele permite o acesso direto s 
estruturas  de dados armazenadas em disco e pode 
ser usado para reparar problemas em discos, que 
talvez nem mesmo o fsck possa corrigir 
automaticamente. Tambm  utilizado para recuperar 
arquivos apagados. Porm ele exige um alto nvel de 
conhecimento das tarefas que esto sendo 
executadas; uma falha no entendimento pode destruir 
todos os dados do disco. 

Dump e restore podem ser 
usados para gerao de cpias de segurana de um 
sistema de arquivos ext2. Elas so verses 
especficas para o ext2 de tradicionais ferramentas 
Unix. Veja o captulo 10 para maiores informaes 
sobre cpias de segurana.

Aqui aqui aqui 


Discos sem sistemas de arquivos

Nem todos os discos ou parties so usadas como 
sistemas de arquivos. Uma partio de troca (swap), 
por exemplo, no conter um sistema de arquivos. 
Muitos disquetes so usados como uma emulao de um 
dispositivo de fita, podendo o comando tar e outro 
gravar os dados em formato imagem diretamente no 
dispositivo, sem um sistema de arquivos. Os 
disquetes de inicializao do Linux no contm um 
sistema de arquivos, mas somente a imagem do 
kernel.

Evitar a utilizao de um sistema de arquivos tem a 
vantagem de tornar uma maior parte do disco 
utilizvel, uma vez que o sistema de arquivos 
sempre traz algum trabalho extra de manuteno. 
Isso tambm torna o disco mais compatvel com 
outros sistemas: por exemplo o formato de arquivo 
tar  o mesmo em todos os sistemas, enquanto que os 
sistemas de arquivos so diferentes na maioria. Um 
administrador rapidamente acostuma-se ao uso de 
discos sem sistemas de arquivos, caso necessrio. 
Disquetes inicializveis do Linux tambm no tm 
sistemas de arquivos, apesar de isso ser possvel.

Uma razo para usar discos de forma direta  a de 
fazer imagens deles. Por exemplo, se um disco tem 
parte do sistema de arquivos danificada,  uma boa 
idia fazer-se uma cpia antes de tentar consert-
lo, podendo o trabalho ser reiniciado caso as 
tentativas tenham danificado os dados restantes. 
Uma forma de fazer-se isso  atravs do comando dd:
 
$ dd if=/dev/fd0H1440 of=floppy-image 
2880+0 records in 
2880+0 records out 
$ dd if=floppy-image of=/dev/fd0H1440 
2880+0 records in 
2880+0 records out 
$ 

O primeiro dd gera uma imagem exata do disquete 
para o arquivo floppyimage, o segundo grava a 
imagem para o disquete (o usurio presumivelmente 
substituiu o disquete antes do segundo comando. De 
outra forma o procedimento torna-se intil).


Alocando Espao Em Disco

   Esquemas de particionamento


No  fcil particionar um disco na melhor maneira possvel. Pior, no h
uma forma correta universal de faz-lo, devido ao nmero de fatores
envolvidos. 

O modo tradicional sugere um pequeno sistema de arquivos raiz,
quem contm os diretrios /bin, /etc, /dev, /lib, /tmp e outros
necessrios para o sistema ser inicializado e para que ela permanea
ativo. Desta forma o sistema de arquivos raiz (na sua prpria partio e
no seu prprio disco) contm todo o necessrio para manter o sistema
ativo. A razo par a o raiz ter um tamanho reduzido  porque ele  pouco
usado, correndo-se assim um risco menor de ter-se arquivos ou blocos
corrompidos caso o sistema tenha algum problema. Aps criam-se parties
separadas para a rvore de diretrios sob /usr, para os dir etrios
pessoais (normalmente sob /home) e para a rea de troca (swap).
Separando-se a rea de diretrios pessoais em sua prpria partio torna
as cpias de segurana mais simples, uma vez que no  necessrio copiar
os programas (que esto normalmente e m /usr). Em um ambiente de rede 
possvel ainda compartilhar o /usr entre diversas mquinas (usando NFS por
exemplo), reduzindo-se assim o espao total de disco requerido entre todas
as mquinas, gerando economia de dezenas ou centenas de megabytes, depe
ndendo do nmero de mquinas. 

O problema de ter-se muitas parties  que
elas dividem o espao livre total do disco em pequenas parte menores,
sendo muito mais simples a manuteno de cpias de segurana. Hoje, que os
discos e sistemas operacionais so mais confiveis, e muitos prefe rem ter
somente uma partio com todos os arquivos. Para um disco pequeno, talvez
a melhor opo seja esta. Para discos grandes,  prefervel ter-se poucas
parties grandes, para os casos em que algo de anormal ocorra. Note-se
que pequenas ou grandes s o usadas aqui em um sentido relativo, j que
dependem das necessidades e dos equipamentos disponveis. 

Caso haja vrios discos disponveis  aconselhvel se ter o sistema de 
arquivos raiz (inclusive o /usr) em um e os diretrios pessoais em outro.  

 interessante ainda estar preparado para experimentar diferentes esquemas
de particionamento. Pode ser bastante trabalhoso instalar um sistema desde
seu incio diversas vezes, porm pode ser a nica forma de estar seguro do
resultado final mais adequado. 
     


Requisitos de Espao

A distribuio Linux que for instalada trar algumas indicaes do espao
necessrio para sua instalao. Programas instalados em separado
provavelmente faam a mesma coisa. Isso ajudar no planejamento da
utilizao do espao em disco, porm deve-se esta r preparado para o
futuro, reservado-se algum espao para extra para as demandas que
surgiro.  

A quantidade de espao necessria para os usurios dependem das
tarefas que eles executaro. Algumas pessoas fazem somente edio de
textos e necessitam de alguns megabytes, outros podem fazer processamento
de imagens e utilizarem gigabytes. 

Por oportuno ao comparar tamanhos de
arquivos em kilobytes e megabytes e espao em disco dado em megabytes, 
importante saber-se que so unidades diferentes. Alguns fabricantes de
discos deixam a entender que um kilobyte  igual a 1.000 bytes e um
megabyte igual a 1.  000 kilobytes, enquanto o resto do mundo usa 1.024 em
ambos os fatores. Em assim sendo um disco de aparentemente 345 Mb, tem na
verdade 330 Mb disponveis.

A alocao de espao em disco para a rea de troca (swap)  discutida na
seo 5.5. 


Exemplo de Alocao de Discos

Eu estou acostumado a um disco rgido de 109 Mb, porm tenho agora um
disco de 330 Mb, e apresentarei como este disco est particionado. 

O disco de 109 Mb foi particionado de diversas formas,  medida as
necessidades e o sistema operacional foram mudando. Apresentarei dois
cenrios bsicos. Primeiro, executando-se DOS em conjunto com Linux. Para
isso foram utilizados 20 Mb, para conter, no
 mnimo, o MS-DOS, um compilador C, um editor e algumas outras utilidades,
um programa em desenvolvimento , e algum espao em disco para no criar
"claustrofobia". Para o Linux foi reservado um espao de 10 Mb para a rea
de troca e os 79 Mb restantes, fo ram alocados em uma nica partio com
todos os arquivos do Linux. Foi experimentado o particionamento em raiz,
/usr e /home, mas como havia pouco espao disponvel em disco, uma nica
partio tornou-se a opo mais interessantes. 

Quando o DOS no era ma is
necessrio, o disco foi reparticionado, e foi criada uma rea de troca de
12 Mb, e novamente o espao restante foi alocado em uma nica partio. 

O disco de 330 Mb foi particionado em diversas parties, como por
exemplo: 


A partio de testes est designada 
para atividade que requerem uma 
partio prpria, como por exemplo, 
testar diferentes distribuies Linux 
ou comparar a velocidade de diferentes 
sistemas de arquivos. Quando  
necessrio algo adicional, pode-se 
utilizar a rea de troca (eu gosto de 
ter uma srie de janelas abertas).

Adicionando mais espao em disco para o 
Linux
Adicionar  mais espao ao Linux  
simples, ao menos aps o hardware ter 
sido adequadamente instalado (a 
instalao de hardware esta alm do 
escopo deste livro). Basta formatar, 
criar as parties e os sistemas de 
arquivos conforme descrito 
anteriormente, e adicionar as linhas 
adequadas ao /etc/fstab que os montar 
automaticamente.

Dicas para Economizar Espao em Disco
A melhor dica para economizar espao em disco  
evitar a instalao de programas desnecessrios. 
Muitas distribuies Linux tem opes de instalao 
de somente alguns componentes ou pacotes dos 
inmeros disponveis, e analisando as suas 
necessidades, perceber que no necessitar muitos 
deles (talvez a maioria). Isso ajudar a salvar 
muito espao em disco, j que muitos programas so 
muito grandes. Mesmo que voc necessite de um 
determinado programa, talvez somente alguns 
componentes j sejam suficientes. Por exemplo, 
alguma documentao on-line pode ser desnecessria, 
assim como alguns dos arquivos Elisp para o GNU 
Emacs, alguns fontes do X11, ou bibliotecas de 
programao.

Caso no seja possvel desinstalar algum pacote, 
deve-se tentar comprimi-los. Programas de 
compresso como gzip ou zip iro comprimir (e 
descomprimir) arquivos em grupo ou individuais. O 
sistema gzexe ir comprimir e descomprimir 
programas automaticamente para o usurio (programas 
sem uso so comprimidos, e descomprimidos quando 
utilizados). O programa experimental DouBle ir 
comprimir todos os arquivos do sistema de arquivos, 
automaticamente e de forma transparente para os 
usurios e programas que os utilizem (princpio 
similar ao  produto Stacker para MS-DOS, por 
exemplo).


mem/mem.tex

Gerenciamento de Memria

Minnet, jag har tappat mitt minne, 
r jag svensk eller finne 
kommer inte ihg...
(Bosse sterberg) 

Esta seo descreve como l Linux gerencia as 
funcionalidade de memria, isto , memria virtual 
e o cache de disco. Os aspectos necessrios para o 
administrador do sistema esto descritos neste 
captulo.

               O que  memria virtual?
               Criando uma rea de troca
               Usando a rea de troca
               Compartilhando rea de troca com 
outros sistemas operacionais
               Alocando rea de troca
               O cache 


O que  memria virtual?  O Linux suporta a funcionalidade de memria
virtual, isto , utilizar o disco como extenso da memria RAM, fazendo
com que o tamanho de memria disponvel cresa consideravelmente. O kernel
ir gravar o contedo de blocos de memria sem uso no disco rgido,
podendo aquela rea agora ser utilizada para outros propsitos. Quando o
contedo original faz-se necessrio, eles so lidos e colocados novamente
na memria. Isso  feito de maneira totalmente transparente para o
usurio, programas sendo executados sob Linux somente vem a quantidade
total de memria disponvel, sem perceber que partes dela residem no disco
de tempos em tempos. Obviamente, ler e gravar em disco  mais lento (na
ordem de 1.000 vezes mais lento) que utilizar memria real, tornando
portando os programas tambm mais lentos. A parte do disco que  usada
como memria virtual  chamada rea de troca (swap space). 


Linux pode usar tanto um arquivo normal de um sistema de arquivos ou uma
partio separada para a rea de troca. Uma partio dedicada  mais
rpida, porm  mais fcil mudar o tamanho de um arquivo de troca (no h
necessidade de reparticionar o disco inteiro, e possivelmente instalar o
sistema desde o incio). Quando se sabe a quantidade de espao de troca
necessria, o mais indicado  utilizar uma partio dedicada, mas em caso
de dvida, deve-se utilizar um arquivo de troca inicialmente, at que se
esteja seguro sobre a quantidade necessria. Aps ento  indicada a
criao de uma partio especfica.  Cabe salientar que o Linux permite a
utilizao simultnea de diversas parties e arquivos de troca. Isso
significa que caso seja necessrio ocasionalmente uma rea de troca maior,
pode-se criar um arquivo com esta finalidade, ao invs de gerar uma
partio com todo o espao necessrio. Nota sobre termos em sistemas
operacionais: cincia da computao normalmente faz distino entre trocas
(gravar todo o contedo de um processo em uma rea de troca) e paginao
(gravas partes fixas da memria, normalmente poucos kilobytes, de cada
vez). Paginao  normalmente mais eficiente e  o que o Linux faz, mas
por tradio a terminologia em Linux foi mantida como troca (swapping). 


Criando uma rea de Troca Uma rea de troca  um arquivo comum, sem nenhum
tratamento especial para o kernel. A nica coisa que importa para o kernel
 que no h espaos, e ele foi preparado para uso pelo utilitrio mkswap.
Ele deve residir em um disco local, ainda que possa estar em um sistema de
arquivos que foi montado via NFS devido  razes de implementao.  A
questo sobre ausncia de espaos  importante. A rea de troca reserva um
espao em disco para que o kernel possa rapidamente trocar uma pgina sem
ter que checar itens necessrios para gravar um arquivo, como alocao de
setores e outros. O kernel simplesmente utiliza qualquer setor que tenha
sido alocado para o arquivo. Como um espao vazio no arquivo significa que
no h setores de disco alocados (naquele local), no  interessante para
o kernel utiliz-lo.  Uma boa maneira de criar uma rea de troca sem
espaos vazios  utilizar o seguinte comando: 
 
$ dd if=/dev/zero of=/extra-swap 
bs=1024 count=1024
1024+0 records in 
1024+0 records out 
$ 

Onde /extra-swap  o nome do arquivo de troca e o tamanho  dados pelo
parmetro count=. O tamanho mais indicado deve ser mltiplo de 4, uma vez
que o kernel utiliza pginas de memria de 4 Kb de tamanho. Caso no seja
mltiplo alguns kilobytes no sero utilizados. 

Uma partio de troca tambm no tem nada de especial.  criada como
qualquer outra partio, a nica diferena  que ela  acessada de maneira
direta, isto  no contm nenhum sistema de arquivos.  aconselhvel
marcar a partio de troca como de tipo 82 (Troca  Linux), isso tornar
mais claro na lista das parties, mesmo que no seja necessrio para o
kernel. Aps criar a partio de troca ou um arquivo de troca, 
necessrio gravar uma assinatura no seu incio, que contm algumas
informaes administrativas utilizadas pelo kernel. O comando utilizado 
o mkswap, da seguinte forma:

$ mkswap /extra-swap 1024 Setting up swapspace, size = 1044480 bytes $
Note-se que o espao de troca ainda no est sendo utilizado; ele existe,
mas o kernel no o est utilizando para prover a memria virtual. Deve-se
ser extremamente cuidados com o comando mkswap, uma vez que ele no checa
se o arquivo ou a partio j est sendo utilizada para outra finalidade,
ou seja pode-se facilmente sobrescrever arquivos importantes ou mesmo
parties inteiras. Felizmente este comando somente  necessrio durante a
instalao do sistema. 

O gerenciador de memria do Linux limita o tamanho da rea de troca em
cerca de 127 Mb (por vrias razes tcnicas, o limite atual  em bytes, ou
exatamente 127.6875 Mb). Pode-se porm utilizar at 16 reas de trocas
simultaneamente, totalizando cerca de 2 Gb. 



Usando a rea de troca

Uma rea de troca  ativada atravs do comando swapon. Este comando diz ao
kernel que a rea de troca pode ser usada. O caminho para a rea de troca
 dado como um argumento. Para iniciar o processo de troca em um arquivo
temporrio pode-se usar o seguinte comando:  $ swapon /extra-swap $

reas de trocas podem ser usadas automaticamente ao serem listadas no
arquivo /etc/fstab: 
 
/dev/hda8 none swap sw 0 0 
/swapfile none swap sw 0 0 

Os programas de lotes executaro o comando swapon  a, inicializar o
processo de troca em todas as reas listadas no arquivo /etc/fstab. O
comando swapon pode ser usado ainda quando se deseje reas extras de
troca.  Pode-se monitorar o uso de rea das reas de troca atravs do
comando free. Ele apresentar o total de rea de troca disponvel:  $ free
total used free shared buffers Mem: 15152 14896 256 12404 2528 -/+
buffers: 12368 2784 Swap: 32452 6684 25768 $

O primeiro item da sada (Mem:) mostra a memria fsica. A coluna de total
no apresenta a memria fsica usada pelo kernel, a qual gira em torno de
um megabyte. A segunda coluna apresenta a memria utilizada. A coluna de
memria livre mostra a quantidade de memria sem uso. A coluna de memria
compartilhada mostra a memria utilizada por diversos processos. A coluna
de buffers apresenta o tamanho atual do cache de buffer de disco. A ltima
linha (Swap:) mostra informaes similares sobre a rea de troca.  As
mesmas informaes podem ser obtidas atravs do comando top ou atravs do
arquivo /proc/meminfo no sistema de arquivos proc.  um pouco difcil
obter informaes de uso de uma determinada rea de troca.  Uma rea de
troca pode ser desativada atravs do comando swap0ff. Normalmente isso no
 necessrio, exceto para reas temporrias. Qualquer pgina em uso na
rea ser devolvida  memria primeiro, e caso no haja memria fsica
disponvel para manter todas as pginas, Linux comear a dispens-las,
aps um perodo ela pode ser recuperada, mas neste meio tempo estar
indisponvel. Pode-se checar, com o comando free por exemplo, se h
memria livre suficiente para remover a rea de troca em uso.  Todas as
reas de troca que so usadas automaticamente atravs do comando swapon a
podem ser removidas pelo comando swapoff a, o qual verufica o contedo do
arquivo /etc/fstab para descobrir quais arquivos devem ser removidos. As
reas de troca manualmente ativadas permanecero em uso. Algumas vezes uma
grande quantidade de rea de troca pode ser usada, apesar de existir uma
grande quantidade de memria fsica livre. Isso pode ocorrer por exemplo
quando se em determinado momento h necessidade de efetuar uma troca,
porm logo aps um processo que ocupava muita memria fsica foi
concludo, liberando a memria fsica em uso. Os dados que foram gravados
na rea de troca no so automaticamente retornados para a memria fsica
at que isso seja necessrio, podendo a memria fsica ficar um longo
tempo sem uso. No h com o que se preocupar em relao a esta situao,
porm  bom saber que ela ocorre. 
 

Compartilhando rea de troca com outros sistema 
operacionais

Memria virtual  uma funcionalidade disponvel em diversos sistemas
operacionais. Uma vez que cada sistema somente a utiliza quando estiver
rodando, ou seja, nunca ao mesmo tempo, pois no  possvel executar mais
de um sistema ao mesmo tempo, uma idia mais eficiente seria compartilhar
uma nica rea de troca. Isso  possvel, mas requer um conhecimento
avanado. O Tips-HOWTO contm algumas orientaes sobre a forma de
implementar isto.



Alocando espao para rea de troca

Algumas pessoas diro que se deve alocar o dobro da memria fsica para a
rea de troca, mas esta  uma regra simplista. Para estimar isso
corretamente deve-se:  1. Estimar o total de memria necessria. Ou seja a
maior quantidade de memria necessria ao mesmo tempo, ou seja a soma dos
requisitos de memria de todos os programas que podem rodar
simultaneamente. Isso pode ser feito atravs ao se executar ao mesmo tempo
todos os programas que podem rodar ao mesmo tempo. Por exemplo, caso se
deseje executar o X, deve-se alocar ao redor de 8 Mb para ele, gcc usa
diversos megabytes (alguns arquivos necessitam grandes quantidades de
memria, at dezenas de megabytes, mas normalmente ao redor de 4 Mb deve
ser suficiente, e assim por diante. O kernel utiliza ao redor de 1 Mb, e o
ambiente de trabalho padro e outros pequenos utilitrios usam alguns
poucos kilobytes (digamos 1 Mb se somados). No h necessidade de ser
exato, estimativas aproximadas so suficientes, mas neste caso deve-se
sempre estimar pelo ponto mximo. Note-se que se h diversos usurios
utilizando o sistema ao mesmo tempo, eles iro consumir memria, ainda que
neste caso no se deve imaginar um consumo em dobro, pois as pginas de
cdigo e bibliotecas compartilhadas existem em somente uma instncia. Os
comandos free e ps so muito teis para estimar a memria necessria.  2.
Adicionar uma margem de segurana  estimativa do passo 1. Isso porque
certamente h outros programas que sero necessrios e provavelmente no
foram lembrados e para se ter uma certa margem de segurana. Alguns
megabytes devem atender ( melhor alocar uma rea de troca de sobra do que
uma rea muito pequena, mas no h necessidade de alocar o disco inteiro,
pois afinal a rea de troca  um espao perdido, pois no pode ser
utilizado para outras finalidades). Uma vez que nmeros pares so mais
indicados, pode-se arredondar o valor para o prximo megabytes.  3.
Baseado nos clculos acima, pode-se saber quanta memria ser necessria
ao total. Ento para alocar a rea de troca, basta somente subtrair o
tamanho da memria fsica do total de memria necessria e se obter o
tamanho necessrio para a rea de troca (em alguns sistemas Unix, 
necessrio alocar espao para uma imagem da memria fsica,. Ento o valor
encontrado no passo 2  o valor necessrio para a rea de troca).  4. Caso
a rea de troca seja muito maior que a memria fsica (algumas vezes
maior), ser necessrio possivelmente aumentar o total de memria fsica
instalada, pois de outra forma a performance ser sofrvel.

 aconselhvel ter ao menos alguma rea de troca, mesmo que os clculo
indiquem que nenhuma rea  necessria. Linux usa a rea de troca de forma
agressiva, ento  desejvel manter o mximo possvel de memria fsica
livre. Linux ir transferir para a rea de troca as pginas de memria que
no estejam sendo utilizadas, mesmo que a memria fsica no esteja sendo
requisitada para outra tarefa. Isso evita esperas quando a memria for
necessria  a troca pode ser feita mais cedo, quando o disco est
disponvel.  A rea de troca pode ser dividida em diversos discos. Isso
pode eventualmente aumentar a performance, dependendo da velocidade
relativa dos discos e do tipo de acesso aos discos. Pode-se experimentar
alguns esquemas, mas  importante salientar que as experincias podem ser
bastante complexas. No se deve crer que um esquema  superior ao outro
sem antes verificar a sua real aplicabilidade. 




Cache de buffer

A leitura do disco  muito lenta quando comparada com o acesso  memria
real. Adicionalmente,  comum ler-se a mesma parte do disco diversas vezes
durante um perodo de tempo relativamente curto. Por exemplo algum que
esteja lendo um email, o acessar novamente no editor de mensagens para
reenvi-lo ou respoder, e colocar o mail em uma pasta para arquivamento.
Ou deve se considerar quo frequentemente o comando ls  executado em um
sistema com diversos usurios. Ao ler as informaes do disco e
mantendo-os em memria at que no mais seja necessrio, pode agilizar
todos os acessos posteriores ao primeiro. Isso  chamado de buffering de
disco, e a memria usada para este fim  chamada de cache de buffer.  Uma
vez que a memria  infelizmente finita, digamos, um recurso escasso, o
cache de buffer pode no ser grande o suficiente, ou seja pode no conter
todos os dados que os usurios necessitam. Quando o cache est cheio, os
dados sem uso h mais tempo so descartados e a memria  liberada para
uso por dados novos.  Buffering de disco funciona tambm para gravao.
Por outro lado dados que so gravados so tambm lidos com muita
frequncia (por exemplo o cdigo fonte de um programa, salvo em um
arquivo, e aps lido pelo compilador). Ento colocar os dados gravados em
um cache  tambm uma boa idia. Por outro lado, colocar os dados a serem
gravados somente em memria, sem grav-los efetivamente em disco, agiliza
o programa que deveria grav-los. A gravao pode ento ser feita em
segundo plano, sem diminuir a velocidade de gravao dos outros programas. 
Muitos sistemas operacionais tm cache de buffer (apesar de s vezes
receber outro nome), mas nem todos funcionam dentro dos mesmos princpios.
Alguns so de gravao imediata: os dados so gravados no disco
imediatamente (e so mantidos no cache obviamente), outros so de gravao
posterior, isto  a gravao somente  feita aps intervalos de tempo.
Gravao posterior  mais eficiente, mas mais suscetvel a erros: caso uma
mquina tenha algum problema, ou a energia eltrica  cortada em um mau
momento, ou o disquete  removido sem ser desmontado, as mudanas
registradas no cache so perdidas. Isso pode significar que o sistema de
arquivos no funcionar bem, talvez devido a dados no gravados que
continham informaes crticas a manuteno do sistema.  Por causa disso,
nunca deve-se desligar um equipamento sem seguir os procedimentos
adequados ou remover um disquete da unidade sem que o dispositivo esteja
desmontado ou aps o que quer que o programa tenha realizado. O comando
sync esvazia o buffer, isto  fora a gravao de dados ainda no
atualizados, e pode ser utilizado quando se quer ter certeza que tudo est
em segurana e atualizados. Em sistemas Unix tradicionais, h um programa
chamado update que roda em segundo plano, no sendo normalmente necessrio
o uso do comando sync. Linux tem ainda um programa residente chamado
bdflush, o qual executa uma sincronizao imperfeita mais frequentemente
para evitar travamentos sbitos devido ao grande trfego de entrada e
sada gerado pelo comando sync. 

No Linux, o bdflush  ativado pelo update. No h razo para perocupar-se
sobre isso, mas se o bdflush finalizar por alguma razo, o kernel emitir
um aviso sobre a ocorrncia e ele dever ser reinicialidao (/sbin/update).
O cache no pem arquivos no buffer, mas sim blocos, que so as menores
partes de um disco (em Linux, normalmente com 1 Kb de tamanho). Dessa
forma diretrios, superblocos, outros sistemas de arquivos e discos sem
sistemas de arquivos so colocados em cache de buffer.

A efetividade do cache  definida basicamente pelo seu tamanho. Um cache
pequeno  quase intil:  ele manter to pouca informao que toda a
informao ser retirada do cache antes de ser usada novamente. O tamanho
correto depende do volume de dados que  lido e gravado simultaneamente. A
nica forma de saber  experimentando.  Caso o cache tenha um tamanho
fixo,  melhor no defini-lo com um tamanho muito grande, pois isso pode
diminuir demasiadamente a memria livre e causar um volume excessivo de
trocas (e consequentemente lento). Para tornar mais eficiente o uso da
memria real, Linux automaticamente usa toda a memria livre como cache de
buffer, mas tambm a diminui quando os programas necessitam de mais
memria. Em Linux no h o que fazer para utilizar o cache, tudo acontece
automaticamente. Exceto por seguir os procedimentos de desligamento e
remoo de disquetes, no h com o que se preocupar. 
 

Iniciando e Desligando

Inicie-me
Ah...voc tem que faz-lo...voc tem que faz-lo
Nunca, nunca, nunca pare
Inicie-o
Ah...inicie-o, nunca, nunca, nunca
Voc far um homem adulto chorar,
Voc far um homem adulto chorar
(Rolling Stones)
       
Esta seo explica como um sistema Linux pode ser inicializado e
desligado, e como isto pode ser feito adequadamente. Caso os procedimentos
adequados no sejam seguidos, os arquivos podem se corrompidos ou
perdidos. 

           O processo de inicializao em maiores 
detalhes
           Reinicializando
           Mais informaes sobre o encerramento do 
sistema
           Modo monousurio
           Disquetes de emergncia    




Viso Geral da Inicializao e Encerramentos do 
Sistema

O ato de ligar o computador e carregar o sistema operacional  chamado
inicializao (booting - calar). O nome vem da imagem do computador
puxando a si prprio, mas o ato em si mesmo  um pouco mais realista. 
Durante a arrancada, o computador carrega inicialmente uma pequena poro
de cdigo chamada carregador da inicializao, o qual carrega e inicia o
sistema operacional. O carregador da inicializao  normalmente
armazenado em uma localizao fixa no disco rgido ou disquete. A razo
para estes dois passos  que o sistema operacional  grande e complicado,
mas a primeira parte a ser carregada tem que ser muito pequena (poucas
centenas de bytes), evitando-se a necessidade de fabricao de firmwares
muito complicados. Diferentes computadores tm carregadores diferentes.
Para PCs, o computador (a BIOS) l o primeiro setor (chamado setor de
inicializao) do disquete e disco rgido. O carregador de inicializao
est neste setor. Ele carrega o sistema operacional, onde quer que ele
esteja no disco (ou em qualquer outro local onde ele esteja).  Aps a
carga do Linux, o hardware  inicializado e os arquivos de controles de
dispositivos so inicializados, e  ento executado o processo init, o
qual inicia os demais processos que permitem o acesso aos usurios e que
eles possam executar outros programas. Os detalhes desta fase sero
discutidas a seguir.  Para desligar o sistema, inicialmente todos os
processos recebem o aviso para desligarem-se (isso faz com que os arquivos
sejam fechados e todos os procedimentos para que tudo fique em ordem sejam
tomados), aps, os sistemas de arquivos e reas de troca so desmontados e
finalmente uma mensagem  apresentada na console, de que a alimentao
eltrica pode ser desligada. Caso o procedimento correto no seja seguido,
coisas muito desagradveis podem ocorrer e s vezes ocorrem, como por
exemplo a perda de todos os dados no cache de buffer de disco, sendo que o
sistema de arquivos em disco pode ficar incosistente e at mesmo
inutilizado. 




O processo de inicializao em maiores detalhes

Pode-se iniciar o Linux a partir de um disquete ou do disco rgido. A
seo de instalao do guia Instalao e Comeando em Linux descreve como
instalar o Linux e inici-lo da forma que se queira. Quando um PC 
inicializado, a BIOS executar diversos testes para checar se tudo est em
perfeita ordem, buscando a seguir a inicializao atual. Ela escolher o
disco rgido (tipicamente o primeiro dispositivo de disquete, se houver um
instalado; a ordem porm pode ser configurada) e ler o primeiro setor.
Este  chamado de setor de inicializao, e no caso de discos rgidos 
chamado de registro mestre de inicializao, uma vez que um disco rgido
pode conter diversas parties, cada qual com o seu prprio setor de
inicializao. O setor de inicializao contm um pequeno programa,
pequeno o suficiente para caber em um setor, o qual tem a funo de ler o
sistema operacional instalado e inicializ-lo. Quando a inicializao 
realizada a partir de um disquete, o setor de inicializao contm um
determinado cdigo que apenas l algumas centenas de blocos (dependendo do
tamanho do kernel) em uma determinada rea da memria. Em um disquete de
carga do Linux, no h sistema de arquivos, o kernel est armazenado em
setores consecutivos, uma vez que isso simplifica o processo de
inicializao.  possvel, porm, inicializar a partir de um disco que
contenha um sistema de arquivos, utilizando-se o LILO, o carregador Linux.
Ao inicializar a partir de um disco rgido, o cdigo do registro mestre de
inicializao examinar a tabela de parties (tambm localizada no
registro mestre), identificar a partio ativa (a partio indicada como
inicializvel), ler o setor de inicializao daquela partio e iniciar
o programa gravado naquele setor. O cdigo no setor de inicializao faz
exatamente o que o setor do disquete faz: ler o kernel de uma partio e
o executar. Os detalhes variam, uma vez que no  muito til ter uma
partio separada somente para manter uma imagem do kernel, uma vez que o
cdigo no setor de inicializao no pode simplesmente ler o disco
seqencialmente , e sim tem que encontrar os setores aonde quer que o
sistema de arquivos o tenha colocado. H diversas solues para o
problemas, mas o mais utilizado  utilizar o LILO (os detalhes sobre como
fazer isso so irrelevantes, para maiores informaes verifique a
documentao do LILO). Quando o sistema  iniciado utilizado o LILO, ele
normalmente segue adiante e l a inicializao padro.  possvel
configurar o LILO para iniciar um dos possveis kernels, ou mesmo iniciar
outros sistemas diferentes do Linux, sendo possvel us-lo para escolher
toda vez que o sistema for ligado, qual sistema ou kernel utilizar. Para
tanto pode-se pressionar alt, shift ou ctrl durante a inicializao do
sistema (quando o LILO  carregado) e sero apresentadas as opes
disponveis, ao invs da inicializao automtica com o sistema definido
como padro.  Alternativamente, o LILO pode ser configurado para sempre
perguntar qual sistema deve ser carregado, e aps um tempo mximo
configurvel de espera carregar o sistema definido como padro.  Como o
LILO  possvel ainda enviar linhas de comando ao kernel do sistema,
imediatamente aps o nome do sistema operacional. 

Note-se que h outros gerenciadores de inicializao, alm do LILO, como
por exemplo o loadlin. Informaes sobre estes sistemas podem ser
adicionadas em futuras verses deste manual. 

O sistema pode ser inicializado a partir de disquetes ou de discos
rgidos, porm a segunda alternativa tende a ser a melhor, uma vez que
evita os problemas inerentes aos disquetes, alm de ser mais rpido. Ainda
assim pode haver um certo nvel de problemas ao instalar-se a partir de um
disco rgido, fazendo com que muitos usurios utilizem disquetes para uma
primeira inicializao do sistema, executem a sua instalao no disco
rgido, assim como a do LILO, e somente a partir da passem a utilizar o
disco rgido como unidade de incio do sistema. 

Aps a carga do kernel do Linux em memria, independente da forma, e o
sistema estando efetivamente em execuo, ocorrem os seguintes eventos: 

? kernel do Linux  instalado inicialmente em um formato comprimido, sendo
ento descompactado de forma automtica, atravs de um pequeno programa
que est localizado no incio da imagem do kernel. 

? Caso se esteja utilizando uma placa de vdeo Super VGA, Linux faz o seu
reconhecimento e pode adotar alguns procedimentos especiais (como utilizar
100 colunas por 40 linhas), perguntando que modo se deseja utilizar.
Durante a compilao do kernel,  possvel pr-definir um modo de vdeo, e
essa pergunta nunca ser apresentada. Isso pode ser feito tambm atravs
do LILO ou do comando rdev. 

? Aps, o kernel verifica os demais hardwares (discos rgidos, disquetes,
placas de rede, etc...) e configura os arquivos de controle de
dispositivos mais adequados. AO encontrar os arquivos de controle diversas
mensagens so apresentadas, como por exemplo: 

LILO boot:
Loading linux.
Console: colour EGA+ 80x25, 8 
virtual consoles
Serial driver version 3.94 with 
no serial options enabled
tty00 at 0x03f8 (irq = 4) is a 
16450
tty01 at 0x02f8 (irq = 3) is a 
16450
lp_init: lp1 exists (0), using 
polling driver
Memory: 7332k/8192k available 
(300k kernel code, 384k reserved, 
176k data)
Floppy drive(s): fd0 is 1.44M, 
fd1 is 1.2M
Loopback device init
Warning WD8013 board not found at 
i/o = 280.
Math coprocessor using irq13 
error reporting.
Partition check:
  hda: hda1 hda2 hda3
VFS: Mounted root (ext 
filesystem).
Linux version 0.99.pl9-1 
(root@haven) 05/01/93 14:12:20

O texto exato difere de equipamento para equipamento, dependendo do
hardware disponvel, assim como da verso do Linux e de como ele esteja
configurado.  ? kernel tentar ento montar o sistema de arquivos raiz. A
origem deste sistema pode ser configurada em tempo de compilao, ou a
qualquer tempo atravs do LILO ou do rdev. O tipo de sistema de arquivos 
detectado automaticamente. Caso a sua montagem falhe, por exemplo devido
ao esquecimento de incluso do sistema de arquivos raiz no kernel, este
dar uma mensagem de erro fatal (panic) e abortar a inicializao do
sistema. O sistema de arquivos raiz  normalmente montado com parmetros
de acesso limitados a somente leitura (o que pode ser configurado de
acordo com a necessidade do administrador).   possvel validar o sistema
de arquivos enquanto ele  montado, porm no  uma boa idia para
sistemas de arquivos com acesso somente de leitura.  ? Aps o kernel
executar o programa init (localizado em /sbin/init) em modo de execuo
secundrio (e ele sempre ter o nmero de processo igual a 1). init
executa a ativao de diversos servios. O que ele far exatamente depende
de como ele est configurado. No mnimo ele iniciar alguns programas
residentes essenciais.  ? init ento passar o sistema para o modo
multiusurio e iniciar o programa getty, permitindo o uso de consoles
virtuais e linhas seriais. getty  o programa que permite que os usurios
acesse o sistema e pode tambm iniciar outros programas, dependendo de
como esteja configurado. ? Aps estes passos o sistema estar ativo e
pronto para uso. 





































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































Este procedimento, avisar a todos os usurios que 
o sistema ser desligado em dez minutos, e que eles 
podero perder seus dados. O aviso  apresentado em 
todo o terminal que estiver conectado, inclusive 
terminais X

     Broadcast message from root (ttyp0) Wed Oct 28 
01:03:25 1998... 

     Iremos instalar um novo disco rgido.
     O sistema estar ativo em 1 hora
     The system is going DOWN for system halt in 10 
minutes !! 


O procedimento  automaticamente repetido algumas 
vezes antes do desligamento, e a intervalos cada 
vez menores,  medida que o tempo passe.

Quando o desligamento do sistema tem incio, todos 
os sistemas de arquivos (exceto o raiz) so 
desmontados, os processos de usurios (casa haja 
algum ainda utilizando o sistema) so finalizados, 
programas residentes so encerrados, e finalmente o 
sistemas de arquivos raiz  desmontado. Quando isso 
ocorre o processo init apresenta a mensagem de 
autorizao do desligamento da mquina. Agora, e 
jamais antes disso, pode-se desligar o equipamento.

Algumas vezes, apesar disso ser muito raro em bons 
sistemas,  impossvel desligar o sistema de forma 
adequada. Por exemplo, caso ocorra um erro fatal 
com o kernel, pode ser impossvel emitir qualquer 
novo comando, tornando o desligamento correto 
invivel, e tudo o que se pode fazer  esperar que 
nenhum dano maior ocorra e ento desligar a 
mquina. Caso os problemas sejam menos srios 
(digamos que algum quebrou o seu teclado com um 
machado (), e o kernel est rodando normalmente,  
aconselhvel aguardar alguns minutos para que os 
dados sejam atualizados, esvaziando assim o cache 
de disco, e somente aps desligar o equipamento.

Alguns usurios gostam de utilizar o comando sync 
trs vezes, aguardando pelo final do E/S, e somente 
aps desligar o equipamento. Caso no haja 
programas sendo executados, esse procedimento 
equivale ao shutdown. Ainda assim nenhum sistema de 
arquivos  desmontado o que pode gerar problemas 
com o marcador de sistema de arquivos do tipo 
ext2fs. Em assim sendo este mtodo no  
recomendado.

(A razo dos trs comandos sync remonta aos 
primeiros tempos do UNIX, onde os comandos eram 
digitados separadamente, o que dava tempo 
suficiente para que as operaes de E/S fossem 
finalizadas). 



Modo monousurio

O comando shutdown tambm pode ser usado para 
colocar o sistema em modos monousurio, o qual 
ningum, alm do superusurio (root), pode acessar, 
e assim mesmo somente na console. Isso  muito til 
para tarefas de administrao que no podem ser 
executadas caso o sistema esteja sendo executado 
normalmente. Este modo de operao  melhor 
discutido mais adiante neste livro.  



Disquetes de Emergncia

Nem sempre pode ser possvel inicializar o sistema 
a partir do disco rgido. Por exemplo um erro grave 
na configurao do LILO, pode tornar o sistema 
incapaz de ser iniciado. Para essas situaes,  
necessrio ter uma alternativa de inicializao que 
funcione sempre (desde que o hardware tambm 
funcione). Para PCs tpicos, isso pode significar 
inicializar o sistema a partir da unidade de 
disquetes. 

Muitas distribuies de Linux, inclusive o 
Conectiva Red Hat Linux, permite a criao de 
disquetes de emergncia durante a instalao.  uma 
excelente idia cri-los, ainda que algumas vezes 
ele possa conter somente o kernel do sistema, e  
presuma que os programas sero utilizados a partir 
dos discos de instalao da distribuio, para 
corrigir o que quer que seja. Algumas vezes isso 
pode no ser suficiente, como por exemplo, quando 
se deseje restaurar alguns arquivos a partir de 
cpias de segurana feitos atravs de softwares no 
presentes nos discos de instalao. 

Pode ser necessrio ento criar-se um disquete raiz 
personalizado. O HOWTO de Disco de Inicializao 
desenvolvido por Graham Chapman contm as 
instrues de como fazer isso. Mas deve-se atentar 
para manter-se os disquetes de emergncia e raiz 
atualizados.

No se pode utilizar a unidade de disquetes 
utilizada para montar o disquete raiz para qualquer 
outra finalidade. Isso pode ser incoveniente caso 
se tenha somente uma unidade de disquetes. Ainda 
assim, caso haja memria suficiente, pode-se 
configurar o disquete raiz para carregar o seu 
contedo para a memria (o disco de inicializao 
do kernel necessita ser especialmente configurado 
para isso). Uma vez que o disquete tenha sido 
carregado em memria, a unidade estar liberada 
para montar outros discos.



Init

Uuno on numero yksi 

Este captulo descreve o processo init, o qual  o 
primeiro processo de nvel de usurio que  
iniciado pelo kernel. init tem diversas tarefas 
importantes, como iniciar o getty (aps o qual os 
usurio podem acessar o sistema), implementar os 
nveis de execuo, e tomar conta dos processos 
rfos. Este captulo explica como o nit  
configurado e como fazer uso dos diferentes nveis 
de execuo.

      
          init vem em primeiro lugar
          configurando o init: o arquivo 
/etc/inittab
          nveis de execuo
          configuraes especiais no /etc/inittab
          iniciando em modo monousurio



init vem em primeiro lugar

init  um dos programas absolutamente essenciais 
para a operao de um sistema Linux, mas que o 
usurio pode ainda ignorar. Uma boa distribuio 
Linux conter a configurao de um init que 
funcionar com a maioria dos sistemas, e no haver 
necessidade de fazer absolutamente nada. 
Usualmente, o administrador somente ir preocupar-
se com o init caso necessite lidar com terminais 
seriais, modems configurados para atendimento (e 
no para chamadas) ou caso deseje mudar o nvel de 
execuo padro do sistema.

Quando o kernel se auto inicializa ( carregado em 
memria, comea a rodar, inicia todos os arquivos 
de controles de dispositivos e estrutura de dados), 
ele finaliza as suas tarefas na inicializao do 
sistema ao iniciar o programa de nvel de usurio 
init. E init  sempre o primeiro processo do 
sistema (o seu nmero de processo  sempre igual a 
1).  

O kernel procura pelo init em algumas localizaes 
que vem sendo usadas historicamente para isso, 
porm a localizao correta em um sistema Linux  o 
/sbin/init. Caso o kernel consiga encontr-lo, ele 
executar o programa /bin/sh e caso ocorra algum 
problema, a inicializao do sistema  abortada.

Quando o init comea, ele finaliza o processo de 
inicializao ao executar uma srie de tarefas 
administrativas, como a checagem dos sistemas de 
arquivos, limpeza do /tmp, incio de vrios 
servios e do getty para cada terminal e console 
virtual atravs dos quais os usurios sero 
autorizados a acessar o sistema. 

Aps o sistema ter sido adequadamente inicializado, 
o init reinicia um getty para cada terminal aps a 
sada do usurio do sistema (permitindo que o 
prximo usurio possa acessar o sistema). Alm 
disso, init adota tambm todos os processos rfos: 
quando um processo inicia um processo filho e  
finalizado antes de seu filho, imediatamente o 
processo restante torna-se filho do init. Isso  
importante por vrias razes tcnicas, mas  
importante conhecer para entender as listas de 
processos e a rvore de processos. 

H poucas variantes disponveis do init. Muitas 
distribuies Linux usam o sysvinit (escrita por 
Miquel van Smoorenburg), a qual  baseada no 
desenho do init do System V. AS verses BSD tem um 
init diferente. As diferenas bsicas residem nos 
nveis de execuo presentes somente no System V. 
Essas diferena no  essencial e ns examinaremos 
somente o sysvinit.  



configurando o init: o arquivo /etc/inittab


Quando  inicializado, o processo init l o arquivo 
de configurao /etc/inittab. Enquanto o sistema 
estiver no ar, ele ser lido novamente, caso seja 
enviado um sinal HUP, tornando desnecessrio 
inicializar todo o sistema para que as mudanas do 
init faam efeito.

O arquivo /etc/inittab  um pouco complicado, porm 
comearemos pelos casos mais simples, ou seja 
configurando as linhas do getty. Linhas do arquivo 
/etc/inittab consistem de quatro campo delimitados 
por dois pontos:

     id:nvel_de_execuo:ao:processo 


Os campos so descritos a seguir. Em adio o 
/etc/inittab podem conter algumas linhas vazias, e 
linhas que comecem com # sero consideradas 
comentrios.

id 
Identifica a linha no arquivo. Para linhas 
referentes ao getty especifica o terminal em que 
eles so executados (os caracteres aps o /dev/tty 
no nome do arquivo de dispositivo). Para outras 
linhas no tem efeito (exceto pelas restries de 
tamanho), e devem ser nicas, ou sejam no pode 
haver mais de uma linha com o mesmo nmero.

nvel_de_execuo
Os nveis de execuo que devem ser considerados 
para a linha. Os nveis de execuo so definidos 
atravs de dgitos sem delimitadores e so melhor 
descritos na prxima seo.

ao
Define  ao que deve ser executara pela linha. Por 
exemplo, respawn para executar novamente o comando 
do prximo campo, quando ele existir ou once para 
execut-lo somente uma nica vez.  

processo
O comando a ser executado
 
Para iniciar o getty no primeiro terminal virtual 
(/dev/tty1), em todos os modos de execuo 
multiusurio (de 2 a 5), deve-se informar a 
seguinte linha.

     1:2345:respawn:/sbin/getty 9600 tty1 


O primeiro campo diz que a linha deve ser executada 
para /dev/tty1; o segundo que ele aplica-se aos 
nveis de execuo de 2 a 5; o terceiro que o 
comando deve ser executado diversas vezes, ou seja 
reinicializado diversas vezes (ou seja quando um 
usurio desconectar-se de um terminal, o processo 
getty ser executado novamente para que outro 
usurio possa conectar-se). O ltimo campo executa 
o processo getty no primeiro terminal virtual. 

Caso deseje-se adicionar terminais ou modems para 
recebimento de chamadas ao sistema, deve-se 
adicionar mais linhas ao arquivo /etc/inittab, uma 
para cada terminal ou modem. Para maiores detalhes 
veja as pginas de manual init (8), inittab (5) and 
getty (8).

Caso o comando falhe ao ser executado, e o init 
esteja configurado para reinicializ-lo, isso 
certamente consumir uma grande quantidade de 
recursos pois o processo de iniciar o comando se 
repetir indefinidamene. Para prevenir esse tipo de 
problema, init verificar a frequncia de 
reinicializao do comando e caso esta seja muito 
grande, o init aguardar automaticamente por cinco 
minutos antes de inici-lo novamente.      



Nveis de Execuo

Nvel de execuo  o estado do init e de todo o 
sistema que define que servios estaro 
operacionais. Eles so identificados por nmeros, 
de acordo com a tabela a seguir. No h nenhum 
consenso de como utilizar os nveis definidos pelo 
usurio  (de 2 a 5). Alguns administradores de 
sistema utilizam os nveis de execuo para definir 
quais subsistemas sero executados, por exemplo se 
o X estar disponvel ou as funcionalidades de rede 
e assim por diante. Outros tem todos os subsistemas 
sendo ativados e sendo finalizados individualmente, 
sem mudar o nvel de execuo, j que este pode ser 
um pouco complexo para controlar seus sistemas. 
Cada administrador deve definir qual o mtodo mais 
adequado s suas necessidades, porm seguir a forma 
definida pela distribuio em uso deve ser o meio 
mais simples. 

0 - Parar o sistema
1 - Monousurio (para tarefas de administrao do 
sistema)
2-5 - Operao normal (definida pelo usurio)
6 - Reinicializar

Tabela de Nveis de Execuo

Nveis de execuo so configurados no /etc/inittab 
por linhas como as seguintes:

l2:2:wait:/etc/init.d/rc 2 

O primeiro campo  uma etiqueta arbitrria; o 
segundo significa que ele se aplica ao nvel de 
execuo 2. O terceiro significa que o init deve 
executar o comando contido no quarto campo quando o 
nvel de execuo for informado, e que o init deve 
aguardar que ele seja concludo. O /etc/init.d/rc 
executa todos comandos necessrios para iniciar e 
parar os servios previstos para este nvel. 

O comando no quarto campo executa todo o trabalho 
duro de configurar um nvel de execuo. Ele inicia 
os servios que ainda no estejam sendo executados 
e finaliza os servios que no devem rodar neste 
nvel. Exatamente qual o comando a ser utilizado ou 
como o nvel est configurado depende de cada 
distribuio Linux.

Quando o init  iniciado, ele procura por uma linha 
no /etc/inittab que especifique o nvel de execuo 
padro:

     id:2:initdefault: 


Pode-se informar ao init para iniciar o sistema em 
um nvel de execuo fora do padro, informando ao 
kernel um comando com argumentos de inicializao 
em nvel monousurio ou de emergncia. Isso permite 
escolher o nvel 1, descrito na prxima seo.  

Enquanto o sistema est sento executado o comando 
telinit pode mudar o modo de execuo, o que faz 
com que o init execute o comando apropriado 
definido no /etc/inittab.



Configuraes especiais no /etc/initttab


O arquivo /etc/inittab tem algumas funcionalidades 
especiais que permitem aes diferenciadas em 
situaes especiais. Estas funcionalidades so 
definidas atravs de palavras chaves utilizadas no 
terceiro campo. Alguns exemplos:

powerwait 
permite que o init desligue o sistema, na falta de 
energia eltrica. Assume que o sistema est 
utilizando uma unidade de alimentao extra (no-
break) e que o software da unidade informar sobre 
a falta de enrgia.

ctrlaltdel 
permite o init reinicializar o sistema, quando as 
teclas control-alt-del do teclado forem 
pressionadas simultaneamente. Veja que o 
administrador pode configurar C-A-D ou qualquer 
outra combinao para funcionarem desta forma, 
aplicvel por exemplo, nos casos em que o sistema 
esteja em uma localizao pblica.


sysinit 
comando que deve ser executado quando o sistema for 
inicializado. Por exemplo, limpar o contedo de 
/tmp.

Esta lista no  completa. Veja a pgina de manual 
on-line do inittab (5) para todas as possibilidades 
e detalhes de como utiliz-las.


iniciando em modo monousurio

Um nvel de execuo extremamente importante  o 
modo monousurio (nvel 1), no qual somente o 
administrador do sistema utiliza a mquina e o 
menor nmero possvel de servios (como nmero de 
acessos ao sistema) estaro disponveis. Este modo 
de execuo  necessrio para algumas pequenas 
tarefas administrativas, tais como na execuo do 
fsck na partio /usr, o que requer que a partio 
esteja desmontada, o que no pode ocorrer a menos 
que todos os servios do sistemas estejam 
finalizados.   

Um sistema em execuo pode ser alterado para o 
nvel de execuo monousurio atravs do comando 
telinit. Durante a inicializao do sistema a 
palavra single ou emergency na linha de comando do 
kernel faz com que o init seja informado do nvel 
de execuo (a linha de comando do kernel pode 
variar de sistema para sistema).

Inicializando em modo monousurio pode ser 
necessrio para executar-se o comando fsck 
manualmente, antes de que qualquer montagem ou 
processo acesse a partio /usr (qualquer atividade 
em um sistema de arquivos inconsistente somente 
pode trazer mais problemas, devendo o fsck ser 
executado o mais rapidamente possvel).

Os programas de lote de inicializao do init 
automaticamente entraro em modo monousurio caso o 
comando fsck executado de forma automtica 
apresente algum problema durante a inicializao do 
sistema. Esta  uma tentativa de prevenir que o 
sistema utilize um sistema de arquivos danificado e 
que o fsck no possa corrigir automaticamente. Tais 
casos so relativamente raros e usualmente envolvem 
um disco rgido com problemas ou uma verso 
experimental do kernel, porm  desejvel que se 
esteja preparado. 

Como medida de segurana, um sistema adequadamente 
configurado pedir a senha do superusurio (root) 
antes de iniciar um ambiente de trabalho 
monousurio. De outra forma seria simples 
simplesmente informar uma linha ao LILO e ganhar 
acesso ao sistema como superusurio. Caso o 
problemas esteja no arquivo /etc/passwd, o melhor e 
ter-se  mo um disquete de inicializao.  



Entrando e saindo do sistema

Este captulo necessita de um comentrio. 
Sugestes, algum?

Esta seo descreve o que acontece quando um 
usurio acessa ou sai de um sistema. As vrias 
interaes entre os processos executados em segundo 
plano, arquivos de histricos, arquivos de 
configurao, etc... so descritos em detalhes.

          Acesso via terminais
          Acesso via rede
          O que o acesso ao sistema faz
          X e xdm
          Controle de acessos
          Ativao do ambiente de trabalho (shell)

       



Acesso via terminais

A figura a seguir mostra como acontece o acesso via 
terminal. Primeiramente o init assegura-se de que 
h um programa getty para aquele terminal ou 
console. O programa getty  fica aguardando que o 
usurio informe que ele est pronto para acessar o 
sistema (normalmente atravs da digitao de 
qualquer de qualquer coisa). Ao detectar um 
usurio, getty apresenta uma mensagem de boas 
vindas (armazenada em /etc/issue) e solicita a 
identificao do usurio e finalmente executa o 
programa login. Este recebe o nome do usurio como 
parmetro e solicita ao usurio a sua senha. Caso a 
senha esteja correta, o programa login iniciar o 
ambiente de trabalho (shell) que est configurado 
para o usurio. Caso a senha no confira ele 
simplesmente encerra o processo (talvez aps dar ao 
usurio outra chance de informar seus dados). O 
processo init percebe que o processo foi concludo 
e inicia um novo getty para o terminal.    


 

  
Figura 8.1: Acesso via terminal: a interao do 
init, getty, login e shell. 

Note-se que o nico processo novo  criado pelo 
init (usando a chamada de sistema fork); getty e 
login somente substituem o programa que estava 
sendo executado pelo processo (atravs da chamada 
de sistema exec).


Um programa em separado, para detectar usurios  
necessrio para linhas seriais, desde que pode (e 
tradicionalmente ) mais complicado detectar quando 
um terminal se torna ativo. getty  adota ainda a 
velocidade e outros parmetros de comunicao, os 
quais so importantes para receber as requisies 
de conexo, onde esses parmetros pode variar de 
conexo para conexo.

H ainda diversas verses do getty e init em uso, 
todas com pontos favorveis e desfavorveis.  
aconselhvel aprender sobre as verses do sistema 
em uso, e tambm sobre outras verses (pode-se usar 
o Mapa de Softwares Linux para pesquisas). Caso no 
se tenha recebimento de chamadas, provavelmente 
getty no ser to importante, porm o init  ainda 
muito importante.



Acessos Via Rede 

Dois computadores na mesma rede esto normalmente 
conectados atravs de um nico cabo fsico. Quando 
ele comunicam-se atravs da rede, os programas em 
cada computador que interagem na comunicao esto 
interligados por uma conexo virtual, algo como um 
cabo imaginrio. At aonde os programas e a conexo 
virtual interessam, eles tem o monoplio de seu 
prprio cabo. Uma vez que o cabo no  real, 
somente imaginrio, o sistema operacionadl de cada 
computador pode Ter diversas conexes virtuais 
compartilhando o mesmo cabo fsico. Desta forma 
usando somente um nico cabo, diversos programas 
podem comunicar-se sem ter que preocupar-se com as 
outras conexes.  posssvel ainda ter-se diversos 
computadores no mesmo cabo; as conexes virtuais 
existentem entre dois computadores, e os demais 
ignoram aquelas conexeas das quais eles no fazem 
parte.  

Esta  uma descrio resumida da realidade, porm 
deve ser boa o suficiente para o entendimento do 
porque acesso via rede so bastante diferentes de 
acessos normais. As conexes virtuais so 
estabelecidas quando h dois programas em 
diferentes computadores que desejam comunicar-se. 
Desde que, a princpio, qualquer computador pode 
comunicar-se com qualquer outro, h um grande 
nmero de potenciais comunicaes virtuais. Devido 
a isso, no  muito prtico iniciar um processo 
getty para cada acesso em potencial. 

H somente um nico processo denominado inted 
(correspondente ai getty) que administra todos os 
acessos de rede. Quando  detectada um pedido de 
acesso via rede (isto , a deteco de uma 
requisio de abertura de nova conexo virtual com 
algum outro computador),  iniciado um novo 
processo que administra aquela conexo. O processo 
original  mantida e continua atendendo a novos 
pedidos de acesso.

Para tornar as coisas um pouco mais complexas, h 
diversos protocolos de acesso via rede. Os dois 
mais utilizados so telnet e rlogin. Em adio aos 
acessos h diversos outros tipos de conexes 
virtuais que podem ser realizadas (como FTP, 
Gopher, HTTP, e outros servios de rede).  
desnecessria a manuteno de processos separados 
para diferentes tipos de conexes. Ento ao invs 
disso, h somente um processo quepode reconhecer o 
tipo de conexo e iniciar o tipo correto de 
programa para atender o servio solicitado. Para 
maiores informaes sobre o inetd consulte o Guia 
de Administrao de Redes Linux.   



Como funciona o acesso ao sistema

O programa de acesso ao sistema preocupa-se com a 
autenticao do usurio (assegurando que o nome do 
usurio e a senha conferem), e por configurar um 
ambiente inicial para o usurio atravs das 
configuraes de permisses para a linha serial e 
incio do ambiente de trabalho (shell).

Parte da configurao inicial  a apresentao do 
contedo do arquivo /etc/motd (mensagens do dia) e 
da checagem do correio eletrnico. Isso pode ser 
desabilitado atravs da criao de um arquivo 
chamado .hushlogin no diretrio pessoal do usurio. 

Caso o arquivo /etc/nologin exista, os acessos 
estaro desabilitados. Este arquivo  criado 
tipicamente atravs do comando shutdown e comandos 
relacionados. O login verifica a existncia desse 
arquivos e ir recusar qualquer acesso, caso ele 
exista. Caso ele exista, o processo login 
apresentar o seu contedo no terminal antes de ser 
finalizado.

As falhas de logins so registradas em um arquivos 
de histrico do sistema (via syslog). Ele ainda 
armazena todos os acessos realizados pelo 
superusurio (root). Ambos podem ser teis na 
deteco de intrusos.

Os usurio conectados em determinado momento esto 
listado no arquivo /var/usr/utmp. Este arquivo  
vlido somente at a prxima inicializao do 
sistema, pois a cada evento desta natureza  
reinicalizado. Ele lista cada usurio e terminal 
(ou conexo de rede) que esteja sendo utilizada, em 
conjunto com algumas outras informaes adicionais. 
O comando w - who - e outros similares lem o 
contedo de utmp a fim de verificar quem est 
conectado.

Todos os acessos bem sucedidos so gravados em 
/var/log/wtmp. Este arquivo  incrementado sem 
limites, devendo-se ser limpo periodicamente, por 
exemplo atravs de uma tarefa semanal programada no 
cron. O comando last mostra o contedo de wtmp.

Tanto utmp quanto wtmp esto em formato binrio 
(vide a pgina de manual on-line de utmp); o que 
torna incoveniente o seu acesso sem o uso de 
programas especiais.



X e xdm

X implementa acessos via xdm. Maiores informaes 
podem ser obtidas na pgina de manual on-line dos 
comandos xterm e xdm.


Controle de acesso

A base de dados de usurios est normalmente 
localizado no arquivo /etc/passwd. Alguns sistemas 
utilizam a opo shadows, a qual move as senhas 
para o arquivo /etc/shadow. Localizaes que tenham 
muitos computadores que compartilhem contas de 
acesso podem usar NIS ou outros mtodos de 
armazenamento da base de dados de usurios, podendo 
copiar automaticamente a base de dados de uma 
localizao central para todos os computadores da 
rede. 

A base de dados de usurios no contm somente as 
senhas, mas contm tambm informaes adicionais 
sobre os usurios, como os seus nomes reais, 
diretrios pessoais e ambientes de trabalho no 
acesso ao sistema. Estas informaes so pblicas, 
logo qualquer usurio pode l-las, sendo que a 
senha dos usurios ''e armazenada encriptada no 
sistema. Isso produz o incoveniente de que qualquer 
usurio que tenha acesso ao sistema e algum 
conhecimento tcnico, possa usar mtodos 
criptogrficos para descobrir as senhas dos demais, 
sem o uso de tentativas de acessos no autorizados. 
A opo shadow tenta evitar isso, movendo as senhas 
para outro arquivo, o qual somente pode ser 
acessado pelo superusurios (root), sendo que as 
senhas ainda permanecem cifradas. Cabe ressalatar 
que a instalao dsta opo em sistemas que no tem 
suporte a esta funcionalidade pode ser um tanto 
difcil.  

 importante assegurar-se e orientar os usurios 
para que todas as existentes sejam complexas o 
suficiente para que no sejam facilmente quebradas. 
Os programas de quebra de senha tentam adivinhar a 
senha do usurio atravs de procedimentos comuns de 
criao de senhas (datas, nomes comuns, etc...). 
Uma vez que um programa de quebra possa ser rodado 
por um invasor, deve ser executado tambm pelo 
administrador,  para verificar o nvel de segurana 
das senhas utilizadas no sistema. Boas senhas podem 
ser fornecidas pelo programa passwd,pois exigiro 
muito mais esforo computacional para quebr-las. 

A base da dados dos grupos  mantida no /etc/group, 
e para sistemas com a opo shadow ativa,  mantida 
em /etc/shadow.group.

O superusurio no pode normalmente conectar-se via 
rede, somente nos terminais listados em 
/etc/securetty. Isso obriga ao acesso fsico a um 
desses terminais.  possvel ainda conectar-se via 
qualquer terminal como um outro usurio, e utilizar 
o comando su para tornar-se o superusurio (root).



Ativao do ambiente de trabalho (shell)

Quando um ambiente de trabalho (shell) interativo  
iniciado, automaticamente so executados um ou mais 
arquivos pr-definidos. Diferentes ambientes podem 
executar diferentes arquivos. Para maiores 
informaes, deve ser examinada a documentao de 
cada ambiente. 

Muitos ambientes executam inicialmente um arquivo 
global, por exemplo o Bourne shell (/bin/sh) e seus 
derivados executam o /etc/profile, e adicionalmente  
executam o arquivo .profile no diretrio pessoal do 
usurio. O arquivo /etc/profile permite que o 
administrador do sistema possa definir algum  item 
de ambiente comum a todos os usurios, 
especialmente a varivel PATH para incluso de 
diretrios de programas e comandos em adio aos 
diretrios padres. Por outro lado o arquivo 
.profile permite que o usurio possa customizar o 
ambiente de acordo com as suas prprias 
necessidades, e se necessrio alterar as opes 
padro de ambiente.




Gerenciando contas de usurios


As semelhanas entre os administradores de sistemas 
e os traficantes de drogas: ambos medem as coisas 
em K's e ambos tm usurios (velha e surrada piada 
de informticos).
 
Este captulo explica como criar novas contas de 
usurios, como modificar suas propriedades e como 
remev-las. Diferentes sistemas Linux tem 
diferentes ferramentas para execuo destas 
tarefas.

    O que  uma conta?
          Criando um usurio
                /etc/passwd e outros arquivos
               Escolhendo um  nmero de usurio e 
identificao de grupo
                Ambiente inicial: /etc/skel
                Criando um usurio manualmente
           Alterando as caractersticas de um 
usurio
           Removendo um usurio
           Desabilitando um usurio temporariamente




O que  uma conta?


Quando o computador  usado por muitas pessoas  
usualmente necessrio diferenciar os usurios, como 
por exemplo, permitir que os arquivos pessoais 
permaneam privativos aos seus dosnos. Isto  
importante mesmo que o computador seja usado 
somente por um usurio por vez, o que ocorre em 
muitos microcomputadores. Alm disso, cada usurio 
tem um nome nico que  utilizado na sua 
identificao ao acessar o sistema. 

H mais coisa relacionadas a um usurios do que 
somente seu nome. Uma conta compreende todos os 
arquivos, recursos e informaes pertencentes a um 
usurio. O termo aproxima-se da sua utilizao na 
rea bancria, e como em uma conta em um banco que 
tem alguma disponibilidade associada, uma conta em 
Linux tem uma srie de recursos associados, que 
podem ser gastos em diferentes velocidades  medida 
que se utilize o sistema. Por exemplo, o espao em 
disco pode Ter uma limitao de uso em megabytes ao 
dia, e o processamento pode ter um preo por 
segundo.



Criando um usurio

O kernel do sistema trata usurios como nmeros. 
Cada usurio  identificado como um nmero inteiro 
nico, denomidado identificao do usurio (user id 
ou uid), poruqe nmeros so mais simples e rpidos 
de serem processados do que os nomes dos usurios. 
Um banco de dados separado do kernel relaciona cada 
usurio a um nome textual, o nome do usurio 
(username), a uma identificao do usurio. O 
arquivo contm ainda outras informaes.

Para criar um usurio,  necessrio informar 
algumas informaes adicionais sobre o usurio para 
incluso na base de dados e criar um diretrio 
pessoal para ele. Pode ser necessrio ainda 
auxiliar o usurio e configurar algumas varveis de 
ambiente iniciais.

Muitas distribuies Linux vm com um programa para 
criao de usurios. H diversos programas 
disponveis. Dois programas muito utilizados so o 
adduse e useradd, que podem ter inclusive uma 
interface grfica. Independente do programa o 
resultado  muito similar para todos eles. Todavia 
este manual descreve como faz-lo manualmente. 
Mesmo que os detalhes possam parecer um pouco 
intrincados, esses programas fazem tudo parecer 
mais trivial.


/etc/passwd e outros arquivos

A base de dados de usurios bsica est em formato 
texto e est localizada em /etc/passwd (chamada 
arquivos de senhas), a qual contm todos os nomes 
vlidos de usurios e as informaes associadas a 
estes. O arquivo contm um nome de usurio pode 
linhas e est dividido em sete colunas delimitadas 
por dois pontos:

   1.Nome do usurio. 
   2.Senha em formato encriptado. 
   3.Identificao numrica do usurio 
   4.Identificao numrica do grupo 
   5.Nome completo ou outra descrio da conta. 
   6.Diretrio pessoal. 
   7.Ambiente de trabalho (programa que ser 
executado no acesso ao sistema (shell)). 

O formato  explicado em mais detalhes nas pginas 
de manual do sistema em passwd (5).


Qualquer usurio de sistema pode ler o arquivo 
passwd, podendo conhecer por exemplo, o nome de 
outros usurios do sistema. Isso significa que a 
senha (segundo campo) tambm est disponvel para 
qualquer usurio. O arquivo de senhas encripta as 
senhas, que em teoria estaro seguras. Ainda assim 
a criptografia pode ser quebrada, especialmente se 
a senha for muito simples (por exemplo uma senha 
muito curta ou pertencente ao dicionrio). Logo no 
 aconselhvel manter as senhas no arquivo passwd. 

Muitos sistemas Linux tem a opo de shadow para 
senhas. Este pode ser um meio alternativo de 
armazenamento: as senhas criptografas so 
armazenadas em um arquivo em separado, o 
/etc/shadow, o qual pode ser lido somente pelo 
superusurio (root). O arquivo /etc/passwd contm 
somente uma marca especial no campo se senha. 
Qualquer programa que necessite verificar a senha 
do usurio tem a identificao do dono do programa 
alterada, podendo ento acessar o arquivo de senhas 
shadow. Programas normais que necessitem somente 
usar os demais campos do arquivo passwd , no 
precisam ter acesso s senhas dos usurios.



Escolhendo um  nmero de usurio e identificao de 
grupo

Em muitos sistemas no faz diferena qual a 
identificao do usurio ou do grupo utilizadas, 
mas caso se esteja utilizando um sistema de 
arquivos em rede (NFS), ser necessrio Ter o mesmo 
uid e gid em todos os sistemas. Isso deve-se ao 
fato do NFS identificar os usurios com uids 
numricas. caso no se esteja utilizando NFS, pode-
se permitir que o programa de criao de contas 
escolha um nmero de forma automtica.

Caso se esteja utilizando NFS, ter que ser criado 
um mecanismo de sincronismo de informaes de 
contas. Uma alteranativa  utiliza o sistema NIS.


Deve-se evitar a reutilizao de uids numricas e 
nomes de usurios,porque os novos usurios poderiam 
ter acesso aos arquivos dos antigos donos da conta.


Ambiente inicial: /etc/skel
                

Quando um diretrio pessoal  criado, ele  
inicializado com arquivos oriundos do diretrio 
/etc/skel. O administrador do sistema pode criar 
arquivos em /etc/skel que podem prover um excelente 
padro de ambiente para os usurios. Por exemplo, 
ele pode criar um arquivo /etc/skel/.profile que 
inicializa a varivel de ambiente EDITOR com algum 
editor que seja amigvel para novos usurios.

 importante tentar mante o /etc/skel o menor 
possvel, uma vez que poder ser extremamente 
trabalhoso ter que atualizar todos os  arquivos dos 
usurios j existentes. Por exemplo, se o nome do 
editor mudar, todos os usurios com a varivel 
inicializada em seus arquivos .profile tero que 
ser alteradas. Pode-se tentar fazer isso 
automaticamente, mas a possibilidade de gerar algum 
problema para alguns usurios  muito grande.  

Sempre que possvel,  melhor colocar alguma 
configurao genrica em arquivos de configurao 
global, como por exemplo o /etc/profile. Assim  
possvel realizar atualizaes sem alterar 
diretamente as configuraes dos usurios.



Criando um usurio manualmente

Para criar um usurio manualmente, devem ser 
seguidos os seguntes passos:

Editar o arquivo /etc/passwd com o utilitrio vipw 
(vide a pgina de manual on-line para maiores 
informaes) e adicionar uma nova linha para a nova 
conta. Atentar para a sintaxe do arquivo. No 
editar diretamente com outro editor, pois o vipw 
trava o arquivo, no permitindo a sua atualizao 
ao mesmo tempo por outros aplicativos. Deve-se 
informar '*' no campo senha, assim o acesso no 
ser possvel.
De formar similar editar o arquivo /etc/group com o 
utilitrio vigr, caso seja necessrio criar tambm 
um novo grupo.
Criar um diretrio pessoal com o comando mkdir.
Copiar os arquivos do diretrio /etc/skel para o 
novo diretrio pessoal criado.
Ajustar as permisses e donos atravs dos comandos 
chown e chmod. A opo -R pode ser muito til. As 
permisses corretas podem variar de um local para 
outros, mas normalmente os seguintes comandos devem 
atender:
          
    cd /home/nome_do_usurio 
          chown -R nome_do_usurio.grupo . 
          chmod -R go=u,go-w . 
          chmod go= .
 
6. Ajustar a senha atravs do comando passwd (1).


Aps a configurao da senha, a conta estar apta a 
funcionar. No se deve configur-la at que todo os 
demais passos tenham sido executados, de outra 
maneira o usurio poder ter acesso ao sistemas, 
enquanto os arquivos esto sendo copiados. 

Algumas vezes pode ser necessrio criar contas 
annimas que no so utilizadas por qualquer 
usurio. Por exemplo para configurar um servidor 
FTP annimo (permitindo que qualquer usurio possa 
fazer a cpia de arquivos a partir do servidor, sem 
a obrigatoriedade de ter-se uma conta criada para o 
usurio) deve-se criar uma conta chamada ftp. Neste 
casos no  necessrio configurar uma senha (ltimo 
passo acima). Ao contrrio,  melhor no faz-
lo,pois nimgumpoder usar a conta, a menos que 
antes se torne o superusurio, uma vez que o root 
pode transformar-sem em qualquer usurio (comando 
su).



Alterando as caractersticas de um usurio

H poucos comandos para alterar as vrias 
caractersticas de uma conta (ou seja, os campos 
relevantes do arquivo /etc/passwd):

chfn - altera o nome completo do usurio 
chsh - altera o ambiente de trabalho inicial 
(shell) do usurio 
passwd - altera a senha

O superusurio pode usar ester comando para alterar 
as propriedades de qualquer conta. Usurio normais 
podem somente alterar as propriedades de sua 
prpria conta. Algumas vezes  necessrio 
desabilitar estes comandos (com chmod) para 
usurios normais, por exemplo em ambientes com 
muitos usurios iniciantes.

Outras tarefas necessrias devero ser executadas 
manualmente. Por exemplo para alterar o nome do 
usurio  necessrio editar o arquivo /etc/passwd 
diretamente (com vipw). Da mesma forma, para 
adicionar ou remover o usurios de grupos,  
necessrio editar o arquivo /etc/group (com vigr). 
Tal procedimento tende a ser raro, devendo porm 
ser realizado com extrema ateno, pois a troca do 
nome de um usurio poder fazer com que ele, por 
exemplo, no receba mais mensagens, e assim por 
diante.


Romovendo um usurio


Para rremover um usurio, deve-se inicialmente 
remover todos os seus arquivos, caixas de correio, 
nomes alternativos para mail, trabalhos de 
impresso, trabalhos programados via cron e at, e 
todas as referncias que existirem ao usurio. 
Aps, pode-se remover as linhas relevantes dos 
arquivos /etc/passwd e /etc/group (deve-se retirar 
quaisquer referncias ao usurio em todos os grupos 
que ele tenha sido adicionado).  indicado antes de 
iniciar este processo desabilitar o usurio, 
previnindo assim o o uso da conta enquanto ela est 
sendo removida.

Lembre-se que usurios podem ter arquivos fora do 
diretrio pessoal. O comando find pode encontr-
los, atravs da seguinte sntaxe: 

     find / -user username 

Note-se que se h um disco rgido muito grande, o 
comando acima pode levar um tempo maior para a sua 
execuo. Caso se tenha discos montados em rede, 
tem-se que tomar certas precaues em no carregar 
toda a rede no servidor.  

Algumas distribuibuies Linux vm com comandos 
especiais para esta tarefa; verifique o comando 
deluser ou userdel. No Conectiva Linux pode ser 
utilizado o comando XXXXXX. Ainda que esses 
comandos possam ser teis, algumas vezes eles no 
fazem todo o trabalho necessrio.



Desabilitando tem

Desabilitando um usurio temporariamente

Algumas vezes  necessrio desabilitar 
temporariamente uma conta, sem necessariamente 
remov-la. Por exemplo, o usurio pode no ter pago 
suas dvidas, ou o administrador do sistema pode 
suspeitar que a senha daquela conta tenha sido 
violada.

A melhor forma de fazer isso  alterar o ambiente 
de trabaho da conta para um programa especial que 
somente apresente uma mensagem. Desta forma, toda 
vez que se tente acessar o sistema utilizando esta 
conta, ocorrer um falha, e a mensagem pode 
indicar, por exemplo, que o administrador do 
sistema seja contactado.

Pode ainda ser possvel alterar o nome do usurio 
ou a senha para algum outro valor, mas ento o 
usurio no saber o que est ocorrendo, podendo 
gerar uma certa confuso.

Uma forma simples de criar programas especiais  
gravar scripts:


     #!/usr/bin/tail +2
     Esta conta foi fechada devido a questes de 
segurana.
     Por favor chame a 332-1234 e aguarde a chegada 
do homens de preto.      

Os primeiros dois caracteres (`#!') dizem ao kernel 
que o restante da linha  um comando que deve ser 
executado. O comando tail, neste caso, imprime na 
sada padro as duas ltimas linhas.

Caso o usurio hboy seja suspeito de um furo de 
segurana, o administrador do sistema pode fazer 
algo como:  

     # chsh -s /usr/local/lib/no-login/security 
hboy 
     # su - tester 
     Esta conta foi fechada devido a questes de 
segurana.
     Por favor chame a 332-1234 e aguarde a chegada 
do homens de preto.      
     # 

O propsito do comando su  testar se a mudana de 
ambiente de trabalho no apresentou problemas.

Scripts como estes, utilizando tail, devem ser 
mantidos em diretrios separados, assim os seus 
nomes no interferiro com os comandos normais de 
usurios.



Cpias de Segurana

Hardware  indeterminadamente confivel,
Software  indeterminadamente confivel,
Pessoas so indeterminadamente confiveis,   
Natureza  determinadamente confivel. 


Este captulo explilca porue, como e quando fazer 
cpias de segurana, e como restaurar itens das 
cpias realizadas.
 

O que  importante copiar?
          Selecionando o dispositivo de backup
          Selecionando a ferramenta de backup
          Cpias simples
                Cpias de segurana com tar
                Restaurando arquivos com tar
          Cpias em diversos nveis
          O que copiar
          Arquivos comprimidos


