linux
Arquitetura
O Linux é um núcleo monolítico: as funções do núcleo (escalonamento de processos, gerenciamento de memória, operações de entrada/saída, acesso ao sistema de arquivos) são executadas no espaço de núcleo. Uma característica do núcleo Linux é que algumas das funções (drivers de dispositivos, suporte à rede, sistema de arquivos, por exemplo) podem ser compiladas e executadas como módulos (em inglês: LKM - loadable kernel modules), que são bibliotecas compiladas separadamente da parte principal do núcleo e podem ser carregadas e descarregadas após o núcleo estar em execução.
Gerenciamento de Arquivos
O gerenciamento de arquivos no Linux baseia-se num esquema de vários níveis, onde a camada principal é o VFS (Virtual File System), que esconde da aplicação as características dos diversos sistemas de arquivo reconhecidos pelo Linux. Quando uma aplicação solicita uma operação sobre algum arquivo, essa solicitação é encaminhada para o VFS, que reenvia a solicitação para um dos SA registrados.
O VFS utiliza uma estrutura chamada superbloco para manter as informações referentes aos diversos sistemas de arquivos montados (tipo, ponto de montagem, dispositivo de bloco utilizado, arquivos abertos). Também utiliza index-node ou nós-i, semelhantes aos nós-i do Ext2, com as informações sobre os arquivos (permissões, blocos utilizados, dono, etc.).
Os sistemas de arquivos registrados no VFS podem ser classificados em 3 grupos: (i) dispositivos de blocos (Ext2, Ext3, Ext4, Reiserfs, XFS, VFAT); (ii) associados a rede (NFS, SMB); (iii) dispositivos especiais (procfs, tempfs). Todos esses sistemas podem ser carregados como módulos.
O Ext2 está deixando de ser o padrão de sistema de arquivos utilizado no Linux, particularmente por sua deficiência quando ocorre uma pane. Neste caso, o sistema operacional deve executar uma varredura completa para verificar o estado do sistema (fsck). Outros sistemas foram criados para resolver essa deficiência, utilizando um