Разработчик (и) | Apple Computer |
---|---|
Полное имя | Иерархический файл Система |
введена | 17 сентября 1985 г.; 35 лет назад (17 сентября 1985 г.) с System 2.1 |
Идентификатор раздела | Apple_HFS(Apple Partition Map ). 0xAF(MBR ) HFS и HFS + |
Структуры | |
Содержимое каталога | B-дерево |
Размещение файлов | Bitmap |
Плохие блоки | B-tree |
Ограничения | |
Максимальный размер тома | 2 TiB (2 × 1024 байта) |
Максимальный размер файла | 2 GiB (2 × 1024 байта) |
Максимальное количество файлов | 65535 |
Макс. Длина имени файла | 31 символ |
Допустимые символы в именах файлов | Все 8-битные значения, кроме двоеточия ":". Не рекомендуется использовать пустые значения и непечатаемые символы. |
Особенности | |
Даты записано | Создание, изменение, резервное копирование |
Диапазон дат | 1 января 1904 г. - 6 февраля 2040 г. |
Разрешение даты | 1s |
Вилки | Только 2 (данные и ресурс) |
Атрибуты | Цвет (3 бита, все остальные флаги 1 бит), заблокирован, настраиваемый значок, пакет, невидимый, псевдоним, система, канцелярские принадлежности, инициирован, нет ресурсов INIT, общий, рабочий стол |
Разрешения файловой системы | AppleShare |
Прозрачное сжатие | Да (сторонний), Укладчик |
Прозрачное шифрование | No |
Другое | |
Поддерживаемые операционные системы | Классическая Mac OS, macOS, Linux, Microsoft Windows (через драйверы MacDrive или Boot Camp IFS ) |
Иерархическая файловая система (HFS ) - это проприетарная файловая система, разработанная Apple Inc. для использования в компьютерных системах под управлением Mac OS. Первоначально разработанный для использования на гибких дисках и жестких дисках, его также можно найти на носителях только для чтения, таких как CD-ROM. HFS также называется Стандарт Mac OS (или «Стандарт HFS»), а его преемник, HFS Plus, также называется Mac OS Extended (или «HFS Extended»).
С выпуском Mac OS X 10.6 Apple отказалась от поддержки форматирования или записи дисков HFS и образов, которые по-прежнему поддерживаются как только для чтения томов. Начиная с 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 ряд конструктивных особенностей, которые не были доступны в других файловых системах того времени (например, DOS FAT ). Файлы могут иметь несколько ответвлений (обычно вилка данных и ресурсов ), что позволяет хранить основные данные файла отдельно от ресурсов, таких как значки, которые, возможно, потребуется локализовать. Для ссылок на файлы использовались уникальные идентификаторы файлов, а не имена файлов, а имена файлов могли быть длиной 255 символов (хотя Finder поддерживал только 31 символ).
Однако MFS была оптимизирована для использования на очень маленьких и медленных носителях, а именно на гибких дисках, поэтому HFS была введена для преодоления некоторых проблем производительности, возникших с появлением более крупных носители, в частности, жесткие диски. Главной проблемой было время, необходимое для отображения содержимого папки. В MFS вся информация о файлах и каталогах хранилась в одном файле, который системе приходилось искать, чтобы создать список файлов, хранящихся в определенной папке. Это хорошо работало с системой с несколькими сотнями килобайт памяти и, возможно, сотней файлов, но по мере того, как системы разрастались до мегабайт и тысяч файлов, производительность быстро снижалась.
Решением было заменить структуру каталогов MFS на более подходящую для больших файловых систем. HFS заменила плоскую структуру таблицы файлом каталога, в котором используется структура B-tree, поиск в которой можно осуществлять очень быстро независимо от размера. HFS также переработала различные структуры, чтобы иметь возможность хранить более крупные числа, почти повсеместно 16-битные целые числа заменены 32-битными. Как ни странно, одним из немногих мест, где этого «увеличения размера» не произошло, был сам файловый каталог, который ограничивает HFS в общей сложности 65 535 файлами на каждом логическом диске.
Хотя HFS является проприетарным форматом файловой системы, он хорошо документирован; обычно существуют решения для доступа к дискам в формате HFS из большинства современных операционных систем.
Apple представила HFS по необходимости с первым предложением 20 МБ жесткого диска для Macintosh в сентябре 1985 г., когда он был загружен в оперативную память с дискеты MFS при загрузке с помощью файла исправления («Жесткий диск 20»). Однако HFS не получила широкого распространения до тех пор, пока она не была включена в 128K ROM, который дебютировал с Macintosh Plus в январе 1986 года вместе с большим дисководом на 800 КБ для Macintosh, который также использовал HFS. Внедрение HFS было первым достижением Apple, оставившим позади модель компьютера Macintosh: оригинальный 128K Macintosh, в котором не хватало памяти для загрузки кода HFS, и он был незамедлительно снят с производства.
В 1998 году Apple представила HFS Plus для решения проблемы неэффективного распределения дискового пространства в HFS и для добавления других улучшений. HFS по-прежнему поддерживается текущими версиями Mac OS, но начиная с Mac OS X, том HFS нельзя использовать для загрузки, а начиная с Mac OS X 10.6 (Snow Leopard) тома HFS доступны только для чтения и не могут быть созданы или обновлены. В macOS Sierra (10.12) в примечаниях к выпуску Apple указано, что «Стандартная файловая система HFS больше не поддерживается». Однако поддержка HFS Standard только для чтения все еще присутствует в Sierra и работает так же, как и в предыдущих версиях.
Том хранения по своей природе разделен на логические блоки по 512 байт. Иерархическая файловая система группирует эти логические блоки в блоки распределения, которые могут содержать один или несколько логических блоков, в зависимости от общего размера тома. HFS использует 16-битное значение для адресации блоков распределения, ограничивая количество блоков распределения 65 535 (2-1).
Пять структур составляют том HFS:
Файл каталога, в котором хранятся все записи файлов и каталогов в единой структуре данных, приводит к проблемам с производительностью, когда система допускает многозадачность, поскольку только одна программа может писать в эту структуру за один раз, что означает, что многие программы могут ожидать в очереди из-за того, что одна программа «забивает» систему. Это также серьезная проблема надежности, поскольку повреждение этого файла может привести к разрушению всей файловой системы. Это контрастирует с другими файловыми системами, которые хранят записи файлов и каталогов в отдельных структурах (например, файловая система DOS FAT или файловая система Unix ), где распределение структуры по диску означает, что повреждение одного каталога обычно нефатальный, и данные могут быть, возможно, реконструированы с данными, хранящимися в неповрежденных частях.
Кроме того, ограничение в 65 535 блоков распределения привело к файлам, имеющим «минимальный» размер, эквивалентный 1/65 535 размера диска. Таким образом, на любом томе, независимо от его размера, можно было хранить не более 65 535 файлов. Более того, любому файлу будет выделено больше места, чем это действительно необходимо, вплоть до размера блока распределения. Когда диски были маленькими, это не имело большого значения, потому что размер отдельного блока распределения был тривиальным, но когда диски начали приближаться к отметке 1 ГБ, наименьший объем пространства, который мог занимать любой файл (один блок распределения), стал чрезмерно большим., тратя впустую значительное количество дискового пространства. Например, на диске размером 1 ГБ размер блока распределения в HFS составляет 16 КБ, поэтому даже 1-байтовый файл займет 16 КБ дискового пространства. Эта ситуация была меньшей проблемой для пользователей, имеющих большие файлы (например, изображения, базы данных или аудио), поскольку эти большие файлы занимали меньше места в процентном отношении к их размеру. С другой стороны, пользователи с большим количеством небольших файлов могут потерять много места из-за большого размера блока распределения. Это сделало разделение дисков на более мелкие логические тома очень привлекательным для пользователей Mac, потому что небольшие документы, хранящиеся на меньшем томе, занимали бы гораздо меньше места, чем если бы они находились на большом разделе. Та же проблема существовала в файловой системе FAT16.
HFS сохраняет регистр файла, который был создан или переименован, но не чувствителен к регистру при работе.
Согласно сайту bombich.com, HFS больше не поддерживается в Catalina и будущих выпусках macOS.