O sistema de arquivos é o elemento que fornece ao programador uma série de interfaces, as quais permitem que os aplicativos que estão sendo codificados tenham acesso às funções de armazenamento e recuperação no disco rígido, independentemente do fabricante e do modelo do hardware que está sendo utilizado pelo computador. Os sistemas de arquivos são tradicionalmente implementados nos discos rígidos, que são os dispositivos de memória responsáveis por armazenar a maior parte dos arquivos e diretórios em um computador. A grande maioria dos discos pode ser segmentada em uma ou mais partições, de forma a permitir a configuração de múltiplos sistemas de arquivos em um mesmo disco.
Os sistemas de arquivos mais conhecidos são aqueles que integram os principais sistemas operacionais do mercado, a exemplo do File Allocation Table (FAT) e do New Technology File System (NTFS), que são utilizados pelos sistemas Windows, e das diferentes versões do Extended File System (EXT), que compõe a maior parte das distribuições Linux.
O sistema de arquivos File Allocation Table foi desenvolvido no final dos anos 1970, sendo que sua primeira versão foi o FAT12, sistema de arquivos voltado para discos flexíveis. Atualmente, existem mais três versões deste sistema, o FAT16 o FAT32 e o extFAT (ou FAT64). A arquitetura File Allocation Table foi desenvolvida originalmente para computadores aderentes a arquitetura IBM PC. Já o NTFS foi lançado no início da década de 1990, como o início da estratégia da Microsoft em investir no desenvolvimento de Sistemas Operacionais voltados ao ambiente dos data centers corporativos. No ano 2000 foi lançada uma inovadora versão do sistema, o NTFS5, que corrigiu uma série de problemas encontrados na versão anterior e adicionou diversas novas funcionalidades, como criptografia, quotas de disco e a utilização de “journals”. O NTFS5 trouxe, ainda, o suporte a arquivos esparsos.
O extended file system, por sua vez, se tornou conhecido por ser o sistema de arquivos padrão das mais conhecidas distribuições Linux. Dentre as suas diversas versões, certamente o Second Extended File System (EXT2) foi o que obteve maior sucesso, o que fez com que a terceira versão do extended file system tivesse um lapso temporal de quase oito anos, sendo lançada apenas em 2001. A versão mais recente do extended file system, o EXT4, chegou ao mercado no ano de 2008.
Com a existência de diversos sistemas de arquivos e com a possibilidade de que cada partição do disco possa conter uma implementação diferente do sistema de arquivos, surgiu a necessidade de que o SO pudesse prover acesso aos diferentes sistemas de arquivos em sistemas operacionais que implementam nativamente apenas um tipo específico de sistema de arquivos. Neste contexto é que foi proposto o Virtual File System, modelo que propõe a criação de uma camada acima dos sistemas de arquivos, que tem a atribuição de abstrair as peculiaridades de cada implementação dos sistemas de arquivos através do fornecimento de comandos padrão que são utilizados pelos processos em execução no sistema operacional.