Pular para o conteúdo principal

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