Sistema de ficheiros (português europeu) ou sistema de arquivos (português brasileiro) (também conhecida por gestão de ficheiros) é a forma de organização de dados em algum meio de armazenamento de dados em massa frequentemente feito em discos magnéticos. Sabendo interpretar o sistema de arquivos de um determinado disco, o sistema operacional pode decodificar os dados armazenados e lê-los ou gravá-los.
Fazendo analogias, tal organização assemelha-se a uma biblioteca escolar. O bibliotecário organiza os livros conforme o seu gosto, cuja busca, convenientemente, procura deixar mais fácil, sem ocupar muitas prateleiras e assegurando a integridade deste. Ainda, certamente, organiza os livros segundo suas características (assunto, censura, etc.). Depois de organizados, ou durante a organização, o bibliotecário cria uma lista com todos os livros da biblioteca, com seus assuntos, localizações e códigos respectivos.
Aplicando a analogia à informática, o sistema operacional seria o bibliotecário da "biblioteca de dados" do computador, o disco de armazenamento. Exatamente igual à organização de uma biblioteca, o sistema operacional guarda os dados nos espaços vazios do disco, rotulando-os com um FCB (File Control Block, Bloco de Controle de Arquivo) e ainda criando uma lista com a posição deste dado, chamada de MFT (Master File Table, Tabela de Arquivos Mestre). Sabendo a posição do arquivo a ser aberto/gravado, o sistema operacional solicita a leitura desta, decodifica/codifica e realiza a abertura/gravação do dado.
Um sistema de ficheiro é assim: uma forma de criar uma estrutura lógica de acesso a dados numa partição. Sendo assim, também é importante referir que nunca poderá ter dois ou mais tipos de sistemas de ficheiros (formatos) numa mesma partição.
O MBR (Master Boot Record) é um arquivo de dados interligado com a BIOS cuja importância é o reconhecimento do sistema de arquivos, como também na inicialização do sistema operacional.
Para a maioria dos usuários, o sistema de arquivos é o aspecto mais visível de um sistema operacional. Ele fornece o mecanismo para o armazenamento online e o acesso relacionado tantos aos dados como aos programas do sistema operacional e de todos os usuários do sistema de computação. O sistema de arquivos consiste em duas partes distintas: uma coleção de arquivos, cada um deles armazenando dados relacionados, e uma estrutura de diretórios, que organiza e fornece informação sobre todos os arquivos do sistema. Alguns sistemas de arquivos têm uma terceira parte, as partições, utilizadas para separar física ou logicamente grandes coleções de diretórios.
Atributos de arquivos
Um arquivo possui certos outros atributos que variam de um sistema operacional para o outro, mas que normalmente são os seguintes:
Nome: o nome simbólico do arquivo é a única informação conservada em forma legível pelas pessoas.
Identificador: este rótulo único, usualmente um numero, identifica o arquivo dentro do sistema de arquivo; é o nome não legível pelas pessoas.
Tipos: esta informação é necessária para aqueles sistemas que suportam diferentes tipos.
Posição: esta informação é um ponteiro para um dispositivo e para a posição do arquivo naquele dispositivo.
Tamanho: o tamanho corrente o arquivo e possivelmente o tamanho maximo permitido estão incluídos neste atributo.
Proteção: a informação de controle de acesso determina quem pode ler o arquivo, gravá-lo, executá-lo e assim por diante.
Hora, data e identificação do usuário: esta informações pode ser conservadas em relação a data da criação, ultima modificação e ultima utilização do arquivo. Estes dados podem ser úteis para proteção, segurança e monitoramento de uso do arquivo.
A informação sobre todos os arquivos é conservada na estrutura do diretório que também reside em memória secundaria. A entrada de um diretório consiste no nome do arquivo com seu identificador único. O identificador, por sua vez, permite localizar os demais atributos do arquivo. O registro desta informação para cada arquivo pode ocupar mais que um kilobyte. Em um sistema com muitos arquivos o tamanho do próprio diretório pode ocupar megabytes. Como os diretórios, da mesma forma que os arquivos, devem ser não-volateis, precisam ser armazenados em dispositivos e conduzidos a memória gradativamente, conforme necessário. Conhecido por Carlos Pinto
Operações sobre arquivos
Um arquivo é um tipo abstrato de dados. Para definir apropriadamente um arquivo, precisamos considerar as operações que podem ser realizadas sobre arquivos. O sistema operacional pode oferecer chamadas de sistema para criar, gravar, ler, reposicionar, apagar e truncar arquivos. O sistema operacional deve fazer em relação a cada uma das seis operações de arquivos básicas.
Criando um arquivo: deve ser alocado espaço para o arquivo no sistema de arquivos. Deve ser criada uma entrada para o novo arquivo no diretório. A entrada do diretório registra o nome do arquivo e sua posição no sistema de arquivos, alem de outras informações possíveis.
Gravando um arquivo: para gravar um arquivo, emitimos uma chamada de sistema especificando tanto o nome do arquivo como a informação a ser gravada. Dado o nome do arquivo, o sistema percorre o diretório em busca da sua localização. O sistema deve manter um ponteiro de gravação para a posição do arquivo onde a nova gravação devera ser realizada. O ponteiro precisa ser atualizado sempre que ocorrer uma gravação.
Lendo um arquivo: para ler um arquivo, utilizamos uma chamada de sistema que especifica o nome do arquivo e onde na memória é o próximo bloco do arquivo devera ser alocado. O diretório é pesquisado em busca da entrada associada e o sistema precisa manter um ponteiro de leitura para a posição no arquivo a partir de onde devera ocorrer a próxima leitura. Após a leitura ter sido feita, o ponteiro de leitura é atualizado. Um determinado processo esta normalmente lendo ou gravando um dado arquivo, e aposição da operação em curso é guardada como um ponteiro para a posição corrente do arquivo, para cada processo. Tanto a operação de leitura como a de gravação, utiliza este mesmo ponteiro, economizando espaço e reduzindo a complexidade do sistema.
Reposicionando dentro de um arquivo: o diretório é percorrido em busca da entrada apropriada, e a posição corrente do arquivo é posicionada para um determinado valor. O reposicionamento dentro de um arquivo não precisa envolver um I/O real. Esta operação é também conhecida como busca de arquivo.
Apagando um arquivo: para apagar um arquivo, procuramos no diretório o arquivo pelo nome. após encontrar a entrada correta do diretório, liberamos todo o espaço do arquivo, de modo que este espaço possa ser reutilizado por outros arquivos, e apagamos a entrada do diretório.
Truncando um arquivo: o usuário pode desejar apagar o conteúdo de um arquivo, mas conservar seus atributos. Em lugar de obrigar o usuário a pagar completamente o arquivo e recriá-lo, esta função permite que todos os atributos - exceto o tamanho - sejam mantidos, reposicionando o arquivo com tamanho zero.
Sistemas operativos mais usuais e formato nativo de arquivos
Apple Macintosh
HFS
HFS+
UNIX (FreeBSD, OpenBSD, Linux, Solaris, etc.)
UFS
Ext2
Ext3
Ext4
SWAP
Reiser
HPFS
JFS
XFS
IBM (AIX, OS/2)
JFS (AIX Version 3.1 ou superior, OS/2 Warp)
HPFS - High Performance File System
MS-DOS/Microsoft Windows
FAT 12 - Microsoft BASIC Disk - MSDOS 4.0
FAT 16 ou FAT - DOS 4.0 ou superior / Windows 1.X ou superior (1.x, 2.x, 3.x, 95, 98, ME, 2000, XP,...)
FAT 32 - MS-DOS 7.1 e 8.0 / Windows 95 (versão OSR2!), ou superior (95 OSR2, 98, ME, NT, 2000, XP...)
ExFAT - FAT Estendido, também conhecido como FAT64, Windows XP ou superior ( Vista, 7...)
NTFS - Windows NT ou superior (NT, 2000, XP, 2003 Server,...)