Estrutura de arquivos
Arquivos são centrais para o UNIX de uma maneira não encontrada
em outros sistemas operacionais. Comandos são arquivos executáveis,
usualmente encontráveis em locais previsíveis na árvore de
diretórios. Privilégios do sistema e permissões são controlados
em grande parte através de arquivos. Dispositivos de I/O e arquivos de I/O não
são distinguidos nos níveis mais altos. Até mesmo a comunicação
entre processos ocorre através de entidades similares a arquivos.
O UNIX tem uma organização de diretórios hierárquica em formato
de árvore conhecida como filesystem. A base desta árvore é um
diretório chamado root directory. Em sistemas UNIX, todo espaço em disco
disponível é combinado em uma única árvore de diretório
abaixo do /, sendo que o local físico onde um arquivo reside não faz parte da
especificação do arquivo UNIX.
O acesso a arquivos é organizado através de propriedades e
proteções. Toda segurança do sistema depende, em grande parte, da combinação
entre a propriedade e proteções setadas em seus arquivos e suas contas de
usuários e grupos.
Enfatizando:
- Tudo em UNIX é um arquivo
- Unix tem uma organização hierárquica
de arquivos chamada de filesystem
- Acesso aos arquivos é organizado através
de propriedades e proteções
Mapeando arquivos para o disco
Um inodo é uma estrutura de dados em disco que descreve e armazena os
atributos do arquivo, incluindo sua localização:
Campos de um inode
- user e group
- tipo do arquivo
- tempo de criação, acesso e modificação (modo)
- número de links
- tamanho
- endereço no disco
Quando uma partição de disco é inicializada, um número
específico de inodes é criado. Este torna-se o número
máximo de arquivos de todos os tipos, incluindo diretórios, arquivos
especiais e links que podem existir no disco.
Tipos de arquivo
- Arquivos comuns
- Diretórios
- Especiais
- Links
Arquivos comuns são arquivos contendo dados, normalmente chamados de
arquivos. Estes podem ser arquivos de dados ASCII ou binários,
executáveis.
Diretórios são arquivos binários consistindo de uma lista de
outros arquivos que ele contém (possivelmente outros diretórios). As
entradas dos diretórios são pares filename-inode. Este é o
mecanismo que associa inodos e localização nos diretórios. Os
dados no disco não têm o menor conhecimento de sua
localização (lógica) no filesystem.
Arquivos especiais são os mecanismos utilizados para I/O de dispositivos no
UNIX. Eles residem no diretório /dev e seus subdiretórios. Há dois
tipos de arquivos especiais: arquivos especiais de caracteres e arquivos especiais de
blocos. Os primeiros correspondem a acesso a dispositivos baseado em caracteres, que
não é bufferizado. Os arquivos especiais de blocos correspondem a acesso
a dispositivos com I/O de blocos. Dados são transferidos em blocos.
Links são mecanismos que permitem vários filenames referirem a um
único arquivo no disco. Há dois tipos de links: hard e simbólico
ou soft. Um hard link associa dois ou mais filenames com o mesmo inodo. Hard links
compartilham o mesmo bloco de dados embora funcionando como entradas de
diretório independentes.
Link simbólicos são pointers files que apontam para outro filename
no filesystem.
Arquivos Especiais
Sockets são um tipo especial de arquivo utilizado para comunicação
entre processos. São parte da funcionalidade de interconectividade TCP/IP,
primeiramente disponível nos sistemas BSD, mas parte de qualquer versão moderna
hoje.
Um socket pode ser pensado como pontos finais de comunicação, unidos a
portas particulares do sistema, as quais processos estão conectados.
Named pipes são canais abertos pelo nome por aplicações. São
características do SV que migraram para todas as versões de UNIX. Named pipes
frequentemente residem no diretório /dev, e eles servem como outro mecanismo para
facilitar a comunicação entre processos.
Voltar
Avançar