Разработчик (-ы) | Apple Inc. |
---|---|
Полная name | Hierarchical File System Plus |
Представлено | 19 января 1998 г.; 22 года назад (19 января 1998 г.) с Mac OS 8.1 |
Идентификатор раздела | Apple_HFS(Карта разделов Apple ) 0xAF(MBR ) HFS и HFS + Apple_HFSX(Apple Partition Map ), когда HFSX. 48465300-0000-11AA-. AA11-00306543ECAC( GPT ) |
Структуры | |
Содержимое каталога | B-дерево |
Размещение файлов | Bitmap |
Плохие блоки | B-tree |
Ограничения | |
Максимальный размер тома | 8 эксабайт |
Макс. Размер файла | 8 EiB |
Макс. Количество файлов | 4 294 967 295 (2-1) |
Макс. Длина имени файла | 255 символов (255 единиц кодирования UTF-16, нормализованные к модифицированному Apple варианту формата Unicode Normalization Format D) |
Допустимые символы в именах файлов | Unicode, любые символы, включая NUL. API ОС могут ограничить количество символов по устаревшим причинам |
Функции | |
Даты записи | доступ, изменение атрибутов, резервное копирование, изменение содержимого, создание |
Диапазон дат | 1 января 1904 г. - февраль 6, 2040 |
Разрешение даты | 1 с |
Форки | Да |
Атрибуты | Цвет (3 бита, все остальные флаги - 1 бит), заблокирован, настраиваемый значок, пакет, невидимый, псевдоним, система, канцелярские принадлежности, инициирован, нет ресурсов INIT, общий, рабочий стол |
разрешения файловой системы | разрешения Unix, NFSv4 ACL (Mac OS X v10.4 и далее) |
прозрачное сжатие | Частичное (decmpfs, в Mac OS X 10.6 и выше) |
Прозрачное шифрование | Да (в Mac OS X 10.7 и выше). Per- домашний каталог шифрование доступно с AES с использованием томов в формате HFS + .dmg в версиях OS X до 10.7, но позже Mac OS X 10.3 |
Другое | |
Поддерживаемые операционные системы | Mac OS 8.1, Mac OS 9, macOS / iOS / tvOS / watchOS / Darwin, Linux, Microsoft Windows (через Boot Camp IFS драйверы) |
HFS Plus или HFS + (также известный как Mac OS Extended или HFS Extended ) - это журналируемая файловая система, разработанная Apple Inc. Она заменила иерархическую файловую систему (HFS) в качестве основной файловой системы компьютеров Apple с выпуском 1998 года. Mac OS 8.1. HFS + продолжала оставаться основной файловой системой Mac OS X, пока сама не была заменена на Apple File System (APFS), выпущенную с macOS High Sierra в 2017 году. HFS + также является одним из форматов, используемых в цифровом музыкальном плеере iPod.
По сравнению со своим предшественником HFS, также называемым стандартом Mac OS или стандартом HFS, HFS Plus поддерживает файлы гораздо большего размера (адреса блоков имеют длину 32 бита вместо 16 бит) и использование Unicode (вместо Mac OS Roman или любого из нескольких других наборов символов) для именования элементов. Как и HFS, HFS Plus использует B-деревья для хранения большей части тома метаданных, но, в отличие от большинства других файловых систем, HFS Plus поддерживает жесткие ссылки на каталоги. HFS Plus допускает имена файлов длиной до 255 символов и n-разветвленные файлы, аналогичные NTFS, хотя до 2005 года почти ни одно системное программное обеспечение не использовало вилки, отличные от данных . вилка и вилка ресурса. HFS Plus также использует полную 32-битную таблицу сопоставления распределения вместо 16-битной HFS, что улучшает использование пространства на больших дисках.
Под кодовым названием Sequoia в разработке, HFS + была представлена 19 января 1998 г., выпуск Mac OS 8.1.
С выпуском В обновлении Mac OS X 10.2.2 от 11 ноября 2002 г. Apple добавила в HFS Plus дополнительные функции журналирования для повышения надежности данных. Эти функции были доступны через графический интерфейс с использованием приложения Disk Utility в Mac OS X Server, но доступны только через командную строку в стандартном настольном клиенте.
В Mac OS X v10.3, все тома HFS Plus на всех Mac были настроены на ведение журнала по умолчанию. В системе том HFS Plus с журналом идентифицируется как HFSJ.
Mac OS X 10.3 также представила другую версию HFS Plus под названием HFSX. Тома HFSX почти идентичны томам HFS Plus, за исключением того, что они никогда не окружены HFS Wrapper, что типично для томов HFS Plus, и они дополнительно поддерживают чувствительность к регистру для имен файлов и папок.. Тома HFSX можно распознать по двум записям в заголовке тома, значению HX в поле подписи и 5 в поле версии.
Mac OS X 10.3 также ознаменовала принятие Apple декомпозиции Unicode 3.2, заменяющей Unicode 2.1 разложение, использованное ранее. Это изменение вызвало проблемы у разработчиков, пишущих программное обеспечение для Mac OS X.
В Mac OS X 10.3 введен ряд методов, которые предназначены для предотвращения фрагментации файлов в HFS +.
В Mac OS X 10.4, Apple добавила поддержку встроенных записей данных атрибутов, что было частью реализации HFS Plus в Mac OS X, по крайней мере, с 10.0, но всегда помечено как «зарезервировано для использования в будущем». До выпуска Mac OS X Server 10.4 HFS Plus поддерживал только стандартные разрешения файловой системы UNIX ; однако в версии 10.4 была введена поддержка безопасности файлов на основе списка управления доступом , которая обеспечивает более богатый механизм для определения прав доступа к файлам, а также полностью совместима с моделями прав доступа к файлам на других платформах, таких как Microsoft Windows XP и Windows Server 2003.
В Mac OS X Leopard 10.5 жесткая привязка каталогов была добавлена как фундаментальная часть Time Machine.
В Mac OS X Snow Leopard 10.6 сжатие HFS + было добавлено с помощью Deflate (Zlib). В открытых источниках и некоторых других областях это называется AppleFSCompression или decmpfs. Сжатые данные могут храниться либо в расширенном атрибуте, либо в ответвлении ресурса. При использовании API сторонних производителей AppleFSCompression не всегда полностью прозрачен. OS X 10.9 представила два новых алгоритма: LZVN (libFastCompression) и LZFSE.
. В Mac OS X Lion 10.7 в операционную систему было добавлено шифрование логических томов (известное как FileVault 2 ). Это дополнение к операционной системе никоим образом не изменило логическую структуру файловой системы. Диспетчер логических томов Apple известен как Core Storage, и его шифрование на уровне тома может применяться к файловым системам, отличным от HFS Plus. При наличии соответствующего оборудования и шифрование, и дешифрование должны быть прозрачными.
Тома HFS Plus разделены на сектора (называемые логическими блоками в HFS), которые обычно имеют размер 512 байт. Затем эти секторы группируются в блоки распределения, которые могут содержать один или несколько секторов; количество блоков распределения зависит от общего размера тома. HFS Plus использует большее значение для адресации блоков распределения, чем HFS, 32 бита, а не 16 бит; это означает, что он может получить доступ к 4 294 967 296 (= 2) блокам распределения, а не к 65 536 (= 2) блокам распределения, доступным для HFS. Когда диски были маленькими, это не имело особых последствий, но по мере того, как стали доступны диски большей емкости, это означало, что наименьший объем пространства, который мог занимать любой файл (один блок распределения), становился чрезмерно большим, тратя значительное количество места. Например, на диске размером 1 ГБ размер блока распределения в HFS составляет 16 КБ, поэтому даже 1-байтовый файл займет 16 КБ дискового пространства. В результате система HFS Plus значительно улучшает использование пространства на дисках большего размера.
Имена файлов и папок в HFS Plus также имеют кодировку символов в UTF-16 и нормализованы до формы, почти такой же, как Форма нормализации Юникода D (NFD) (что означает, что предварительно составленные символы, такие как «å», раскладываются в имени файла HFS + и поэтому считаются двумя кодовыми единицами, а UTF-16 подразумевает, что символы из-за пределов базовой многоязычной плоскости также считаются двумя кодовыми единицами в HFS + имя файла). HFS Plus допускает длину имен файлов до 255 единиц кода UTF-16.
Раньше тома HFS Plus были встроены в стандартную файловую систему HFS. Это было прекращено переходом Tiger на Intel Mac, где файловая система HFS Plus не была встроена в оболочку. Обертка была разработана для двух целей; он позволял компьютерам Macintosh без поддержки HFS Plus в их ПЗУ загружать тома HFS Plus, а также был разработан, чтобы помочь пользователям перейти на HFS Plus, включив минимальный том HFS с файлом только для чтения с именем Where_have_all_my_files_gone ?, объясняя пользователям версии Mac OS 8.0 и более ранние версии без HFS Plus, для этого тома требуется система с поддержкой HFS Plus. Исходный том HFS содержит подпись и смещение встроенного тома HFS Plus в заголовке тома. Все блоки распределения в томе HFS, которые содержат встроенный том, отображаются из файла распределения HFS как плохие блоки.
Примечательно среди файловых систем, используемых для систем Unix, HFS Plus не поддерживает разреженные файлы.
Типичный том HFS Plus состоит из девяти структур:
HFS Plus не хватает некоторых функций, которые считаются основными для современных файловых систем, таких как ZFS и NTFS. Данные контрольные суммы являются наиболее часто упоминаемой недостающей функцией. Кроме того, ядро файловой системы использует строки Unicode NFD без учета регистра, что привело к тому, что Линус Торвальдс сказал, что «HFS +, вероятно, худшая файловая система из когда-либо существовавших».
Помимо контрольной суммы, функции современных файловых систем, которых нет в HFS +, включают:
HFS Plus не был разработан для Unix-подобных систем, поэтому такие функции, как разрешения файловой системы и жесткие ссылки пришлось модифицировать, когда Apple перешла на Mac OS X.
Linux Ядро включает модуль hfsplus для монтирования файловых систем HFS + для чтения-записи. HFS + fsck и mkfs были перенесены на Linux и являются частью пакета hfsprogs.
В 2009 году эти драйверы были диагностированы как повреждение дисков HFS + емкостью более 2 ТБ. Следовательно, дистрибутивы Linux, такие как Debian и Ubuntu, также перестали разрешать монтирование дисков HFS + или разделов размером более 2 ТБ. По состоянию на февраль 2011 года ведутся работы по снятию этого ограничения.
В текущем драйвере HFS + Linux необходимо отключить ведение журнала, чтобы безопасно записывать данные в раздел HFS +. Если раздел не используется программным обеспечением Apple Time Machine, ведение журнала можно отключить в macOS: используя Дисковую утилиту в OS X Yosemite, пользователь может удерживать Alt / Option и нажать «Отключить ведение журнала» на Меню «Файл», предварительно выбрав подключенный раздел.
Раздел HFS + с включенным журналированием может быть принудительно смонтирован с доступом для записи в Linux, но это не поддерживается и неразумно.
A Проект Google Summer of Code по реализации поддержки записи для журналируемого HFS + был принята Linux Foundation в 2011 году, но не была завершена на тот момент и все еще находится в стадии разработки. Прогресс и улучшения в драйвере HFS +, включая некоторые обновления поддержки журналирования, время от времени публикуются в списке рассылки linux-fsdevel.
По состоянию на июль 2011 года Paragon Software Group предоставила драйверы ядра, которые обеспечивают полный доступ для чтения и записи к журналируемым томам HFS +. Продукт представляет собой запатентованную реализацию HFS + на основе проприетарной библиотеки Paragon UFSD. Существуют как бесплатная, так и платная версии драйвера, и они включают утилиту для проверки и восстановления томов HFS +. Согласно онлайн-документации (бесплатная версия или платная версия), как бесплатная, так и платная версии в настоящее время поддерживают ядра Linux от 2.6.36 до 4.12.x. Ubuntu, Debian, Fedora, OpenSUSE и CentOS - единственные официально поддерживаемые дистрибутивы Linux.
По состоянию на май 2012 года Apple выпустила только драйверы HFS + только для чтения для Windows XP, Windows Vista и Windows 7 как часть программного обеспечения Boot Camp в Mac OS X 10.6. Это означает, что пользователи этих систем могут читать данные на диске HFS +, но не записывать на них. Microsoft создала драйвер HFS + для Xbox 360 в основном с целью чтения iPod в формате HFS +.
Бесплатное программное обеспечение с открытым исходным кодом - jHFSplus, основанное на HFSExplorer и jpfm - может использоваться для монтирования разделов hfs / hfs + как виртуальные папки только для чтения.
Существует бесплатный плагин для Total Commander, который может читать, среди прочего, файловые системы HFS и HFS +.
Можно использовать DiskInternals Linux Reader для извлечения / сохранения папок / файлов с жестких дисков / разделов HFS и HFS +.
Также доступен коммерческий продукт MacDrive для установки приводов HFS и HFS +, оптических дисков и других носителей в проводнике Windows, а также позволяет читать и записывать на том, а также восстанавливать и форматировать диски Mac.
Коммерческий продукт Paragon HFS + для Windows обеспечивает полное чтение и запись, а также управление дисками из всех версий Windows от Windows XP до Windows Server 2008.
A бесплатная (GPL ) альтернатива - HFSExplorer, написанный b y Эрик Ларссон. HFSExplorer - это приложение Java для просмотра и извлечения файлов с тома HFS + (Mac OS Extended) или HFSX (Mac OS Extended, с учетом регистра). Том может быть расположен либо на физическом диске, в различных форматах образа диска Apple и разреженного образа диска, либо в необработанном дампе файловой системы. Однако HFSExplorer - это решение только для чтения; он не может записывать тома в формате HFS.
.