Sistema De Arquivos
O Linux possui algumas camadas de abstração para o gerenciamento de arquivos. Permitindo a utilização de múltiplos sistemas de arquivos em múltiplos dispositivos de armazenamento.
Figura: Arquitetura do componente de sistemas de arquivos.
Sistemas de arquivo são modelos acerca da organização lógica dos arquivos, podendo não lidar com dispositivos de armazenamento (como o PROCFS, gerado durante o carregamento do sistema e que permite obter informações do kernel, o DEVFS, que interagir com dispositivos através de chamadas de sistema de E/S). Podemos citar alguns exemplos de sistemas de arquivos no Linux, temos EXT3, JFS, NFS, GmailFS e WikipediaFS, sendo os dois últimos implementados em espaço de usuário, através do FUSE (programa para desenvolver sistemas de arquivos). O superblock, o inode e o dentry são as estrutura básicas do sistema de arquivo. O superblock armazena informações como o tipo de sistema de arquivos, dispositivo, tamanho, lista de inodes e suas operações básicas como criação e remoção de inodes. O inode é um arquivo ou um diretório do sistema de arquivos, com as informações como permições, grupo, dono, leitura e escrita no arquivo. E quem vai estabelecer a relação entre nomes de arquivos e inodes. É possível atribuir vários nomes a um mesmo arquivo (hard link), separando os arquivos de seus nomes.
Figura: A estrutura do inode e suas operações.
A necessidade de guardar informações em objetos que pudessem ser acessados posteriormente de uma forma organizada vem de longe nos sistemas operacionais. Para isso foram criados os sistemas de arquivos. Nos sistemas de arquivos, de modo geral, os objetivos são organizar de forma hierárquica os arquivos (informações) do sistema. Todos os dados (arquivos e diretórios) são armazenados em sistemas de arquivos. Um sistema de arquivo pode ser visto como um padrão de como os arquivos serão gravados, armazenados, acessados, etc. Um sistema de