Você está na página 1de 6

1 Aula 05 - Estrutura de diretrios

1.0 Histrico Quando do desenvolvimento do Linux, Linus Torvalds tinha a pretenso de evitar problemas encontrados durante seu uso do Minix. Dessa maneira, o sistema de arquivos adotado no Linux baseia-se numa camada virtual (VFS Virtual FileSystem), construda para suportar mltiplos sistemas de arquivos. Essa estrutura permitiu ao Linux um gerenciamento poderoso desse recurso. Um problema prtico existente no incio do desenvolvimento do Linux era referente ao uso do sistema de arquivos. Dessa maneira, administradores e distribuies nem sempre utilizavam o mesmo diretrio para colocar um dado arquivo. Isso gerava um esforo muito grande e adicional na administrao dos sistemas, dada a confuso criada. Em agosto de 1.993, Olaf Kirsh, um programador postou uma mensagem em um dos grupos de discusso sobre Linux, discutindo a possibilidade de criao de um padro para a estrutura de diretrios. Em fevereiro de 1.994, a primeira verso desse padro foi disponibilizado sob o nome de FSSTND (File System StaNDard). Duas outras verses foram disponibilizadas em 1.995, incluindose a FSSTND 1.2, a ltima verso disponibilizada. A maior limitao desse padro que ele aplicava-se somente ao Linux e dificultava o uso de ambientes mistos, com vrios sistemas operacionais. Esse problema levou a comunidade a avanar da FSSTND em direo a um novo padro. Assim, um esforo para criar um padro hierrquico do sistema de arquivos que pudesse suportar a outros sistemas baseados no UNIX foi iniciado em 1.995, com a ajuda de desenvolvedores do BSD. O nome do padro foi alterado para FileSystem Hierarcy Standard FHS, que poderia ser aplicado a qualquer sistema de arquivos. - que utilizasse uma estrutura hierrquica (rvores de diretrios); - que controlasse dados de arquivos de forma consistente; - que inclusse mecanismos de proteo de dados; Dessa maneira, o FHS inicialmente estabelece uma distino entre dados compartilhveis e no compartilhveis e entre dados estticos e variveis: - Dados compartilhveis so aqueles podem ser distribudos entre diferentes mquinas; no compartilhveis so aqueles especficos a um dado sistema. Por exemplo, os diretrios pessoais dos usurios so dados compartilhveis, mas arquivos de dispositivos no so.

2 - Dados estticos incluem binrios, bibliotecas e documentao, e tudo aquilo que no alterado sem interveno do administrador; dados variveis incluem tudo que pode ser modificado sem a interveno do administrador do sistema. O objetivo dessa distino fazer com que o FHS facilite o compartilhamento de informaes em um ambiente distribudo. Dessa maneira, dados no compartilhveis devem estar em rvores de diretrios prprias. Ainda, dados estticos podem ser montados somente por leitura, aumentando a segurana do sistema e at mesmo o uso de mdia esttica (CD-ROM) como parte estrutural do sistema de arquivos.

1.1 rvore de diretrios no Linux A Figura a seguir apresenta a rvore raiz de diretrios proposta no FHS. Itens em itlico no precisam existir na rvore, mas se existirem devem estar no diretrio raiz. Obviamente, cada entrada na rvore de diretrios descrita na Figura pode ter sob si uma subrvore prpria e, para algumas dessas entradas, freqentemente isso ocorre. Observe que algumas dessas entradas podem ser links para outros diretrios. Segue-se uma descrio mais detalhada dessas entradas (obs: os diretrios /usr e /var, por serem mais complexos, sero tratados em sees prprias):

/bin: O diretrio /bin contm aqueles comandos essenciais a qualquer usurio, quando nenhum outro sistema de arquivos encontra-se montado. Assim, requerido que ele contenha os seguintes comandos: cat, chgrp, chmod, chown, cp, date, dd, df, dmesg, echo, false, hostname, kill, ln, login, ls, mkdir, mknod, more, mount, mv, ps, pwd, rm, rmdir, sed, sh, stty, su, sync, true, umount e uname. Se forem instalados, os seguintes comandos tambm devem ser colocados em /bin: csh, ed, tar, cpio, gzip, gunzip, zcat, netstat, ping. Dada a importncias desses

3 comandos, recomenda-se ao leitor que consulte as respectivas pginas de manuais, em busca de mais informaes. /sbin: Os utilitrios essenciais usados na administrao do sistema so disponibilizados em /sbin. Assim, esse diretrio deve conter os aplicativos essenciais inicializao, restaurao e reparao do sistema, por exemplo: fdisk, fsck, shutdown, halt, reboot, getty, ifconfig, init, mkfs, mkswap, route, swapon, swapoff e update. Novamente, recomenda-se ao leitor a consulta s pginas de manuais desses comando, em busca de mais informaes. /boot: Esse diretrio deve conter todos os arquivos essenciais ao processo de boot, com excesso de arquivos de configurao. Opcionalmente, o kernel do sistema operacional deve ser colocado em /boot, estratgia mais adotada, ou no diretrio raiz. /dev: O diretrio /dev/ contm os arquivos especiais de dispositivos. A maioria dos dispositivos de hardware mapeado em um arquivo nos sistemas UNIX. Assim, por exemplo, o arquivo /dev/hda representa o disco rgido mestre (master) da primeira controlodora IDE. O arquivo /dev/hda1 representa, portanto, a primeira partio desse disco. O primeiro disco SCSI, por sua vez, mapeado no arquivo /dev/sda. /lib: Esse diretrio contm todas as bibliotecas dinmicas utilizadas para inicializar o sistemas e executar as aplicaes disponveis em bin e sbin. Os mdulos do kernel devem ser dispostos no subdiretrio /lib/modules. Em alguns casos, podem haver diretrios especficos de bibliotecas, por exemplo /lib64 para bibliotecas de 64 bits. /etc: no diretrio /etc/ que ficam os arquivos e diretrios utilizados para a configurao do sistema. Vrios desses arquivos e diretrios sero abordados em detalhes mais frente nesta apostila. um dos diretrios mais importantes ao se pensar em backups do sistema. /home: O diretrio /home contm as pastas de trabalho dos usurios. A organizao interna desse diretrio depende de cada sistema. Alguns

administradores, por exemplo, utilizam um subdiretrio prprio em /home para cada usurio. Outros, criam um subdiretrio para cada grupo, ficando os diretrios dos usurios em terceiro nvel. Essa ltima alternativa indicada quando h muitos usurios e vrios grupos em um sistema. /root: Esse o diretrio pessoal do usurio root. Se ele no existir, o sistema ir assumir o diretrio raiz / como sendo o diretrio pessoal.

4 /mnt: Esse diretrio utilizado para montar sistemas de arquivos temporrios, como disquetes (geralmente montados em /mnt/floppy) e CDROMs (geralmente montados em /mnt/cdrom). /opt: O diretrio /opt reservado para a instalao de pacotes adicionais de software. Esse deve ser o local preferido para a instalao de programas desenvolvidos localmente (facilitando atualizaes do sistema). Distribuies podem instalar software em /opt, mas no podem modificar ou apagar arquivos instalados pelo administrador sem o seu consentimento. /tmp: Como o nome sugere, o diretrio /tmp disponibilizado para uso de arquivos temporrios. Esses arquivos costumam ser apagados periodicamente, geralmente a cada dez dias.

1.2 - O diretrio /usr Depois do diretrio raiz, o diretrio /usr a maior seo utilizada no sistema de arquivos. Esse diretrio contm dados compartilhveis e podem ser montado apenas para leitura. Isso o torna altamente capacitado para compartilhamento em rede com sistemas compatveis com FHS. A Figura 3.2 apresenta a rvore de diretrios /usr proposta no FHS. Novamente, itens em itlico no precisam existir na rvore, mas se existirem devem estar nesse diretrio. Os diretrios /usr/bin e /usr/sbin tm objetivos semelhantes aos diretrios /bin e /sbin, respectivamente. A nica diferena que os comandos disponibilizados em /usr/bin e /usr/sbin so considerados como no essenciais inicializao, manuteno e recuperao do sistema. Isso ocorre porque, como o diretrio /usr pode ser montado via rede, ele no pode conter aplicativos e arquivos desse perfil.

O diretrio /usr/lib inclui arquivos objetos, bibliotecas e comandos binrios que no so disponibilizados para serem executados diretamente por usurios e shell scripts. As DLLs de

5 suporte aos aplicativos existentes em /usr/bin e /usr/sbin, que j no estiverem em /lib, so colocadas em /usr/lib. Os arquivos de cabealhos C/C++ so colocados no diretrio /usr/include ou um de seus subdiretrios. Cdigo-fonte de aplicativos no-locais utilizam o diretrio /usr/src como rvore raiz (incluindo o kernel). Em /usr/X11R6, encontram-se os arquivos relacionados ao sistema grfico do UNIX, o X Window System, em sua verso 11, release 6. Para facilitar o acesso do usurio, os seguintes links devem existir: /usr/bin/X11 -> /usr/X11R6/bin /usr/lib/X11 -> /usr/X11R6/lib/X11 /usr/include/X11 -> /usr/X11R6/include/X11 O objetivo da existncia desses links facilitar a transio entre releases do X11. Observe que os arquivos de configurao do X11 devem ficar no diretrio /etc/X11. O objetivo do diretrio /usr/share servir como um repositrio de dados readonly independentes de arquitetura. Assim, nesse diretrio ficam as pginas de manuais (em /usr/share/man), as pginas de informaes (em / usr/share/info). No subdiretrio /usr/share/locale, encontram-se os arquivos de localizao (internacionalizao do sistema). Alguns cones podem ser encontrados em /usr/share/pixmaps ou /usr/share/icons. O diretrio /usr/share/fonts um dos preferidos para instalao de fontes em diversos formatos (ex.: TrueType, Type 1 ou Type 3). A inteno do diretrio /usr/local funcionar como uma hierarquia para instalao localizada de software. O objetivo de utilizar /usr/local/bin para instalao de aplicativos locais evitar substituir ou atualizar, inadvertidamente, aplicativos em /usr/bin. Entre os subdiretrios de /usr/local, encontram-se: /usr/local/bin, /usr/local/sbin, /usr/local/man, /usr/local/share,

/usr/local/include e /usr/local/lib.

1.3 - O diretrio /var O diretrio /var contm os dados variveis do sistema, como cache de aplicaes, arquivos de spool e informaes de registros (logs). Ele foi pensado dessa maneira para que o diretrio /usr pudesse ser montado somente para leitura. Todo arquivo que necessita ser escrito durante operao do sistema, exclundo-se instalao e manuteno de software. Em servidores de rede, desejvel que /var esteja em uma partio separada. A Figura a seguir apresenta a rvore de diretrios /var proposta no FHS. Como atividade, deixada tarefa de descobrir para que servem esses diretrios.

1.4 Outros diretrios Em uma seo especfica ao Linux, o FHS apresenta detalhes desse padro aplicveis somente a esse sistema operacional. A observao mais pertinente a existncia do diretrio /proc. Esse diretrio um sistema de arquivos virtual que armazena informaes sobre o kernel os processos em execuo e o sistema como um todo. Assim, por exemplo, o arquivo /proc/kcore representa a memria do computador em questo. O arquivo /proc/partitions apresenta detalhes sobre as parties dos discos rgidos disponveis. As interrupes (IRQs) do sistema podem ser visualizadas em /proc/interrupts e informaes sobre os dispositivos PCI ou USB podem ser encontrados, respectivamente, em /proc/pci e /proc/bus/usb/devices. Dessa maneira, uma visita aos arquivos desse diretrio podem facilitar, e muito, a instalao de dispositivos de hardware em Linux. Ainda, caso o sistema de arquivos usado seja ext2 ou ext3, ento, para cada partio existente, ser criado um diretrio /lost+found. Esse diretrio, achados e perdidos, utilizado pelo fsck, um utilitrio de checagem do sistema de arquivos que ali aloca os blocos de arquivos perdidos, ou seja, i-nodes sem nomes de arquivos.

Você também pode gostar