# Hierarchical File System

O Hierarchical File System (HFS+) é um sistema de arquivos proprietário desenvolvido pela Apple Inc. para uso em sistemas de computador que executam o Mac OS Clássico. Originalmente projetado para uso em disquetes e discos rígidos, ele também pode ser encontrado em mídia somente leitura, como CD-ROMs. O HFS também é conhecido como Mac OS Padrão (ou, erroneamente, "HFS Padrão"), enquanto o seu sucessor, HFS Plus, também é chamado Mac OS Expandido (ou, erroneamente, "HFS Expandido").
Com a introdução do Mac OS X 10.6, a Apple descontinuou o suporte para formatar ou gravar discos e imagens de disco HFS, que permanecem suportados como altos volumes somente leitura.

## História

O HFS foi introduzido pela Apple em setembro de 1985, especificamente para suportar o primeiro disco rígido da Apple para o Macintosh, substituindo o Macintosh File System (MFS), o sistema de arquivos original introduzido em um ano e meio antes no primeiro computador Macintosh. O HFS se baseou no primeiro sistema operacional hierárquico SOS da Apple para o Apple III, que também serviu de base para sistemas hierárquicos de arquivamento no Apple IIe e no Apple Lisa. O HFS foi desenvolvido por Patrick Dirks e Bill Bruffey. Ele compartilhava vários recursos de design com o MFS que não estavam disponíveis em outros sistemas de arquivos da época (como o FAT do DOS). Os arquivos podem ter várias bifurcações (normalmente dados e uma bifurcação de recursos), o que permite que os dados principais do arquivo sejam armazenados separadamente de recursos, como ícones que podem precisar ser localizados. Os arquivos eram referenciados com IDs de arquivos exclusivos, em vez de nomes de arquivos, e os nomes de arquivos podiam ter 255 caracteres (embora o Finder suportasse apenas um máximo de 31 caracteres).
No entanto, o MFS foi otimizado para ser usado em mídias muito pequenas e lentas, a saber, disquetes, então o HFS foi introduzido para superar alguns dos problemas de desempenho que surgiram com a introdução de mídias maiores, notavelmente discos rígidos. A principal preocupação era o tempo necessário para exibir o conteúdo de uma pasta. No MFS, todas as informações de listagem de arquivos e diretórios eram armazenadas em um único arquivo, que o sistema precisava pesquisar para criar uma lista dos arquivos armazenados em uma determinada pasta. Isso funcionou bem com um sistema com algumas centenas de kilobytes de armazenamento e talvez com uma centena de arquivos, mas à medida que os sistemas cresceram em megabytes e passaram a ter milhares de arquivos, o desempenho se degradou rapidamente.
A solução foi substituir a estrutura de diretórios do MFS por uma mais adequada para sistemas de arquivos maiores. O HFS substituiu a estrutura de tabela plana pelo Arquivo de Catálogo, que usa uma estrutura de árvore B que pode ser pesquisada muito rapidamente, independentemente do tamanho. O HFS também redesenhou várias estruturas para poder manter números maiores, com números inteiros de 16 bits sendo substituídos por 32 bits quase universalmente. Estranhamente, um dos poucos lugares em que esse "upsizing" não ocorreu foi o próprio diretório de arquivos, o que limita o HFS a um total de 65.535 arquivos em cada disco lógico.
Embora o HFS seja um formato de sistema de arquivos proprietário, ele é bem documentado; geralmente há soluções disponíveis para acessar discos formatados em HFS a partir dos sistemas operacionais mais modernos.
A Apple introduziu o HFS por necessidade com sua primeira oferta de disco rígido de 20 MB para o Macintosh em setembro de 1985, onde foi carregada na RAM a partir de um disquete MFS na inicialização usando um arquivo de patch ("Disco Rígido 20"). No entanto, o HFS não foi amplamente introduzido até que foi incluído na ROM de 128K que estreou com o Macintosh Plus em janeiro de 1986 junto com a maior unidade de disquete de 800 KB para o Macintosh que também usou o HFS. A introdução do HFS foi o primeiro avanço da Apple a deixar um modelo de computador Macintosh para trás: o Macintosh 128K original, que não tinha memória suficiente para carregar o código HFS, e foi imediatamente descontinuado.
Em 1998, a Apple introduziu o HFS Plus para endereçar a alocação ineficiente de espaço em disco no HFS e adicionar outras melhorias. O HFS ainda é suportado pelas versões atuais do Mac OS, mas a partir do Mac OS X, um volume HFS não pode ser usado para inicializar e, a partir do Mac OS X v10.6 (Snow Leopard), os volumes HFS são somente leitura e não podem ser criados ou atualizados. No macOS Sierra (10.12), as notas de lançamento da Apple afirmam que "O sistema de arquivos HFS Padrão não é mais suportado". No entanto, o suporte ao HFS Padrão em modo somente leitura ainda está presente no Sierra e funciona como nas versões anteriores.