Введение

Иерархическая файловая система (HFS) – это проприетарная файловая система, разработанная Apple Inc. для использования в компьютерных системах, работающих под управлением Mac OS. Изначально разработанная для использования на дискетах и жестких дисках, она также может встречаться на носителях, предназначенных только для чтения, таких как CD-ROM. HFS также называют Mac OS Standard (или HFS Standard), а её преемник, HFS Plus, – Mac OS Extended (или HFS Extended). С выходом Mac OS X 10.6 компания Apple прекратила поддержку форматирования и записи дисков и образов HFS, которые оставались поддерживаемыми как тома только для чтения до macOS 10.15. Начиная с macOS 10.15, диски HFS больше не могут быть прочитаны.

История

Apple представила HFS в сентябре 1985 года специально для поддержки первого жесткого диска Apple для Macintosh, заменив Macintosh File System (MFS) – оригинальную файловую систему, представленную более полутора лет назад вместе с первым компьютером Macintosh. HFS во многом опиралась на первую операционную систему Apple с иерархической файловой системой, SOS для неудачной Apple III, которая также послужила основой для иерархических файловых систем на Apple IIe и Apple Lisa. HFS была разработана Патриком Дирксом и Биллом Бруффи. Она имела ряд конструктивных особенностей, общих с MFS, которые отсутствовали в других файловых системах того времени (например, FAT в DOS). Файлы могли иметь несколько вилок (обычно вилку данных и вилку ресурсов), что позволяло хранить основные данные файла отдельно от ресурсов, таких как значки, которые могли потребовать локализации. Файлы идентифицировались уникальными идентификаторами, а не именами файлов, при этом имена файлов могли содержать до 31 символа. Однако MFS была оптимизирована для использования на очень маленьких и медленных носителях, а именно на дискетах, поэтому HFS была представлена для решения некоторых проблем с производительностью, возникших с появлением более крупных носителей, в частности жестких дисков. Основной проблемой было время, необходимое для отображения содержимого папки. В MFS вся информация о списках файлов и каталогов хранилась в одном файле, который системе приходилось искать для создания списка файлов, хранящихся в определенной папке. Это хорошо работало с системами, имеющими несколько сотен килобайт памяти и, возможно, сотню файлов, но по мере роста систем до мегабайт и тысяч файлов производительность быстро снижалась. Решением стала замена структуры каталогов MFS на более подходящую для больших файловых систем. HFS заменила плоскую табличную структуру на Каталоговый файл, использующий структуру B-дерева, которую можно было очень быстро искать независимо от размера. HFS также переработала различные структуры, чтобы они могли хранить большие числа, почти повсеместно заменив 16-битные целые числа на 32-битные. Любопытно, что одним из немногих мест, где это "увеличение" не произошло, был сам файловый каталог, который ограничивает HFS общим числом 65 535 файлов на каждом логическом диске. Хотя HFS является проприетарным форматом файловой системы, она хорошо документирована; обычно существуют решения для доступа к дискам, отформатированным в HFS, из большинства современных операционных систем. Apple представила HFS по необходимости вместе с первым 20 МБ жестким диском для Macintosh в сентябре 1985 года, где он загружался в оперативную память с MFS-дискеты при загрузке с помощью патч-файла ("Hard Disk 20"). Однако HFS не получила широкого распространения, пока не была включена в 128K ROM, представленную вместе с Macintosh Plus в январе 1986 года, а также с более крупным 800 КБ дисководом для Macintosh, который также использовал HFS. Введение HFS стало первым шагом Apple к тому, чтобы оставить модель компьютера Macintosh позади: оригинальный 128K Macintosh, которому не хватало достаточной памяти для загрузки кода HFS и который был быстро снят с производства. В 1998 году Apple представила HFS Plus для решения проблемы неэффективного распределения дискового пространства в HFS и для добавления других улучшений. HFS Plus по-прежнему поддерживается текущими версиями Mac OS, но начиная с Mac OS X, тома HFS нельзя использовать для загрузки, а начиная с Mac OS X 10.6 (Snow Leopard), тома HFS доступны только для чтения и не могут быть созданы или обновлены. В macOS Sierra (10.12) в примечаниях к выпуску Apple указано, что "Файловая система HFS Standard больше не поддерживается". Однако поддержка HFS Standard в режиме только для чтения продолжала работать до выпуска macOS 10.15, что положило конец официальной поддержке классической HFS Standard после 35 лет.