Os sistemas de arquivos estão presentes em todos os sistemas operacionais atuais como ferramenta para organização do armazenamento e recuperação das informações. Neste trabalho temos como o principal objetivo desmistificar o funcionamento dos sistemas de arquivos juntamente como o detalhamento do seu modo de operação básico. Falaremos também nas funcionalidades existentes em alguns dos sistemas de arquivos existentes no sistemas operacionais atuais tais como Fat32, NTFS, Ext{2,3,4}, ZFS e complementaremos o conteúdo com melhoria na forma de acesso, redundância e recuperação dos arquivos com a utilização da tecnologia RAID (Redundant Array of Independent/Inexpensive Disks ou Conjunto Redundante de Discos Independentes/Econômicos).
2. Roteiro
Porque dos sistemas de arquivos
Arquivos
Nomeclatura, estrutura e tipos
Acesso, atributos e operações
Implementações
Diretórios
Operações
Implementações
Arquivos compartilhados
Journaling
Sistemas Virtuais
Gerenciamento de espaço livre
Exemplos: Fat, NTFS, Ext e ZFS
RAID 1,0 e 10
3. Porque dos sistemas operacionais
Como persistir uma determinada informação
Como recuperar uma determinada informação
Como compartilhar informações entre os processos
Como controlar o acesso a uma informação
Como manipular alto número de informações
4. Nomeclatura
Definido como uma cadeia de caracteres
Tamanho limitado em alguns sistemas
Restrições para alguns caracteres
Extensões
Nem todos utilizam
Associação com aplicativos
Diferente manipulação
8. Atributos
Metadados ou informações sobre os arquivos
Flags
Segurança e controle de acesso
Carimbos de tempo
9. Operações com arquivos
Ações disponíveis pelo Sistema operacional para
manipular os arquivos
Create
Delete
Open
Close
Read
Write
Get Attributes
Set Attributes
Rename
10. Implementação
Diferentes formas de armazenar/recuperar as
informações em disco
Alocação contígua ou continua
Alocação por lista encadeada
Alocação por lista encadeada utilizando a memória
I-nodes
15. Diretórios
Estrutura pensada para gerenciar e organizar os
arquivos no sistema de arquivos
Nomeclatura
Operações
Tipos de organização
Diretório de nível único
Árvore hieráquica
16. Operações com arquivos
Ações disponíveis pelo Sistema operacional para
manipular os diretórios
Create
Delete
Opendir
Closedir
Readdir
Rename
20. Implementação dos diretórios
Diferentes formas de armazenar/recuperar as
informações sobre os diretórios
Recuperação dos atributos
Recuperação dos atributos em sistemas que usam I-
nodes
21. Arquivos compartilhados
Existem alguns problemas na implementação de
arquivos compartilhados referente a como os mesmos
estão ligados
Ligação simbólica(soft link)
Caracterizada pelo uso de um tipo especial de arquivo(link) e a
atribuição de um caminho para os dois ponteiros
Após a remoção, apenas o caminho para o arquivo é removido
Ligação estrita(hard link)
Caracterizada pelo apontamento físico para o mesmo arquivo e
o uso de contadores
Após a remoção o i-node não é removido, apenas
22. Journaling
Problema da remoção/atualização dos arquivos
Remover o arquivo > liberar as estruturas
Ações atômicas
Sistema criado para implementar uma melhor
tolerância a falhas
23. Sistema de arquivos virtuais
Solução encontrada para gerenciar diferentes
sistemas de arquivos em um determinado Sistema
operacional em execução
Acessar sistemas de arquivos de rede(NFS)
24. Gerenciamento de espaço livre
Lista encadeada
Um bloco de dados não fica livre pois contém
apontamento para os demais
Ex.: um bloco de 1Kb pode conter 255 ponteiros de 32
bits
Mapa de bits
Economia de espaço 1 bloco livre = 1 bit no mapa
25. Exemplos de sistemas de arquivos
Microsoft
FAT
8, 12, 16, 32 bits + cluster de setores + tabela de alocação
NTFS
32, 64 bits + cluster de setores + Journal + criptografia + permissões
Outros
Ext 2
I-nodes + VFS + pré-alocação
Ext 3
I-nodes + VFS + pré-alocação + Journal + compatibilidade
ReiserFS
Journal native + blocos de 512, 1024, 4096 e 8192 bytes
ZFS
128 bits + Journal + checksum além do bloco de dados + raiz única e snapshots
rápidos
26. RAID
RAID 1 – espelhamento/correção de erros
Mínimo dois discos
RAID 0 – segmentação
Mínimo dois discos
RAID 10 – 1 + 0
Mínimo quatro discos