discos rígidos são organizados em clusters de 512 ou 4k bytes de dados. Cada um desses clusters é referido como um bloco.
No nível mais baixo, um SO vai emitir comandos como ler do bloco 4 ou escrever no bloco 11. A especificação SATA define exatamente como esses comandos funcionam e quais comandos devem estar disponíveis. Esses comandos de baixo nível são resumidos em comandos de alto nível com os quais os sistemas de arquivos fazem interface.
Um sistema de arquivos fornece um mapeamento de arquivos para blocos de disco. Um sistema de arquivos muito básico (como o MS-DOS FS) iniciaria com uma tabela de partição (no bloco 0, o "superbloco") que permite definir discos lógicos na parte superior de um disco físico. Cada disco lógico então iniciaria com uma única entrada que define um diretório. Cada uma dessas entradas de diretório conteria uma lista de arquivos e quais pontos de bloqueio para esses arquivos.
Para cada um dos arquivos, o primeiro bloco seria uma estrutura de metadados que define o que é o arquivo (arquivo, diretório, link ou outra coisa), o tamanho, as permissões de acesso e lista de blocos onde os dados do arquivo residem.