Capítulo 2.4 - Sistema de Arquivos Virtual (VFS)
Objetivos de Aprendizagem
Ao final deste capítulo, você será capaz de:
- Compreender o papel do VFS
- Explicar como o VFS unifica diferentes sistemas de arquivos
- Entender inodes e estruturas de dados
- Identificar os diferentes tipos de sistemas de arquivos
O que é o VFS?
O VFS (Virtual File System) é uma camada de abstração no Kernel Linux que fornece uma interface unificada para acessar diferentes tipos de sistemas de arquivos, sejam eles locais (ext4, xfs) ou de rede (NFS, CIFS).
Papéis do VFS
1. Interface Unificada
O VFS fornece uma interface única para:
- Abrir, ler, escrever, fechar arquivos
- Criar, remover, renomear arquivos
- Gerenciar diretórios
- Gerenciar permissões
2. Abstração
As aplicações não precisam saber:
- O tipo de sistema de arquivos
- A localização (local ou rede)
- Os detalhes de implementação
3. Performance
O VFS mantém caches:
- Inode cache: Metadados dos arquivos
- Dentry cache: Nomes de arquivos e caminhos
- Buffer cache: Dados dos arquivos
Inodes
Um inode (index node) é uma estrutura de dados que armazena os metadados de um arquivo:
Informações armazenadas:
- Tipo de arquivo (arquivo, diretório, link, etc.)
- Permissões (proprietário, grupo, outros)
- Tamanho do arquivo
- Timestamps (criação, modificação, acesso)
- Ponteiros para os blocos de dados
- Número de links
Tipos de Sistemas de Arquivos
Sistemas de Arquivos Locais
ext4 (Fourth Extended File System):
- Padrão na maioria das distribuições
- Journalizado (resistente a falhas)
- Suporte a arquivos de até 16TB
xfs:
- Desempenho para arquivos grandes
- Usado em ambientes corporativos
- Bom para bancos de dados
btrfs:
- Funcionalidades avançadas (snapshots, compressão)
- Copy-on-write
- Em desenvolvimento ativo
Sistemas de Arquivos de Rede
NFS (Network File System):
- Compartilhamento de arquivos em rede
- Padrão Unix/Linux
CIFS/SMB:
- Compatível com Windows
- Compartilhamento de arquivos entre plataformas
Sistemas de Arquivos Especiais
tmpfs:
- Em memória (RAM)
- Rápido, porém temporário
/tmp,/dev/shm
procfs:
- Interface para o kernel
/proc
sysfs:
- Informações do sistema
/sys
Estrutura de Diretórios
O VFS mantém uma hierarquia unificada:
/
├── bin/ # Binários essenciais
├── etc/ # Configuração
├── home/ # Usuários
├── proc/ # Interface kernel (procfs)
├── sys/ # Interface do sistema (sysfs)
├── tmp/ # Temporário (tmpfs)
├── var/ # Dados variáveis
└── ...
Comandos Úteis
# Ver sistemas de arquivos montados
mount
df -h
# Ver os inodes
ls -li
stat arquivo
# Ver o uso de inodes
df -i
# Ver os tipos de sistemas de arquivos
mount | grep -E '^/dev'
Resumo
Neste capítulo, você aprendeu:
VFS: Interface unificada para todos os sistemas de arquivos
Inodes: Metadados dos arquivos
Caches: Inode, Dentry, Buffer para performance
Tipos FS: Locais (ext4, xfs), rede (NFS), especiais (tmpfs, procfs)
Hierarquia: Estrutura unificada com / como raiz
Próximos Passos
Capítulo 2.5: Gerenciamento de Processos
Capítulo 2.6: Processo Init e systemd
Capítulo criado em: Dezembro 2024