HFS Plus

редактировать
Журнальная файловая система, разработанная Apple
HFS +
Разработчик (-ы) Apple Inc.
Полная nameHierarchical 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, что улучшает использование пространства на больших дисках.

Содержание
  • 1 История
  • 2 Дизайн
  • 3 Критика
  • 4 Другие операционные системы
    • 4.1 Linux
    • 4.2 Windows
    • 4.3 Кросс-платформенность
  • 5 См. Также
  • 6 Ссылки
  • 7 Внешние ссылки
История

Под кодовым названием 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 состоит из девяти структур:

  1. Секторы 0 и 1 тома являются загрузочными блоками HFS . Они идентичны загрузочным блокам в томе HFS. Они являются частью оболочки HFS.
  2. Сектор 2 содержит заголовок тома, который эквивалентен блоку главного каталога в томе HFS. Заголовок тома хранит широкий спектр данных о самом томе, например размер блоков распределения, временную метку, указывающую, когда том был создан, или расположение других структур тома, таких как файл каталога или файл переполнения экстента. Заголовок тома всегда находится в одном месте.
  3. Файл распределения, который отслеживает, какие блоки распределения свободны, а какие используются. Это похоже на растровое изображение тома в HFS, в котором каждый блок распределения представлен одним битом. Ноль означает, что блок свободен, а единица означает, что блок используется. Основное отличие от растрового изображения тома HFS заключается в том, что файл распределения хранится как обычный файл, он не занимает специального зарезервированного пространства рядом с началом тома. Файл распределения также может изменять размер, и его необязательно хранить непрерывно внутри тома.
  4. Файл каталога - это B-дерево, которое содержит записи для всех файлов и каталогов, хранящихся в громкость. Файл каталога HFS Plus очень похож на файл каталога HFS, основные отличия заключаются в том, что записи имеют больший размер, чтобы можно было использовать больше полей, и чтобы эти поля были больше (например, чтобы разрешить более длинные 255 символов имена файлов Unicode в HFS Plus). Размер записи в файле каталога HFS составляет 512 байт, размер записи в файле каталога HFS Plus - 4 КБ в классической Mac OS и 8 КБ в macOS. Поля в HFS имеют фиксированный размер, в HFS Plus размер может варьироваться в зависимости от фактического размера данных, которые они хранят.
  5. Файл переполнения экстентов - это еще одно B-дерево, которое записывает блоки распределения, выделенные для каждый файл как экстенты. Каждая запись файла в файле каталога может содержать восемь экстентов для каждой вилки файла; после их использования дополнительные экстенты записываются в файл переполнения экстентов. Плохие блоки также записываются как экстенты в файле переполнения экстентов. Размер записи экстента по умолчанию в классической Mac OS составляет 1 КБ, а в macOS - 4 КБ.
  6. Файл атрибутов - это новое B-дерево в HFS Plus, которое не имеет соответствующей структуры в HFS. Файл атрибутов может хранить три различных типа записей по 4 КБ: записи атрибутов встроенных данных, записи атрибутов данных вилки и записи атрибутов расширения. Записи встроенных атрибутов данных хранят небольшие атрибуты, которые могут уместиться в самой записи. Записи атрибутов данных вилки содержат ссылки максимум на восемь экстентов, которые могут содержать более крупные атрибуты. Атрибуты расширения используются для расширения записи атрибута данных вилки, когда ее восемь записей экстентов уже используются.
  7. Файл запуска разработан для систем, отличных от Mac OS, в которых отсутствует поддержка HFS или HFS Plus. Он аналогичен загрузочным блокам тома HFS.
  8. Предпоследний сектор содержит заголовок альтернативного тома, который эквивалентен блоку альтернативного главного каталога HFS. Обратите внимание, что это предпоследний сектор диска, а не том; если диск больше, чем том, AVH будет вне диапазона файловой системы.
  9. Последний сектор в томе зарезервирован для использования Apple. Он используется в процессе производства компьютеров.
Критика

HFS Plus не хватает некоторых функций, которые считаются основными для современных файловых систем, таких как ZFS и NTFS. Данные контрольные суммы являются наиболее часто упоминаемой недостающей функцией. Кроме того, ядро ​​файловой системы использует строки Unicode NFD без учета регистра, что привело к тому, что Линус Торвальдс сказал, что «HFS +, вероятно, худшая файловая система из когда-либо существовавших».

Помимо контрольной суммы, функции современных файловых систем, которых нет в HFS +, включают:

  • наносекундные временные метки
  • одновременный доступ (то есть более одного процесса могут обращаться к файловой системе одновременно)
  • моментальные снимки
  • Поддержка дат после 6 февраля 2040 года
  • поддержка разреженных файлов
  • лучшая реализация жестких ссылок (в других файловых системах это обычно несколько записей каталога, указывающих на одни и те же блоки данных; жесткие ссылки в macOS реализованы в виде небольших файлов, которые хранятся в специальном скрытом каталоге)

HFS Plus не был разработан для Unix-подобных систем, поэтому такие функции, как разрешения файловой системы и жесткие ссылки пришлось модифицировать, когда Apple перешла на Mac OS X.

Другие операционные системы

Linux

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.

Windows

По состоянию на май 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.

См. Также
Ссылки
Внешние ссылки
  • hfsexplorer - Проводник с открытым исходным кодом для MS-Windows®, написанный на Java, с поддержкой HFS, HFS + и HFSX
  • Apple «устаревший» Technote 1150 - HFS Plus Volume Format
  • Apple «устаревший» Technote 1189 - Technote Monster Disk Driver
  • hfsdebug - Отладчик для томов HFS Plus от Амита Сингха
  • hfsprogs - Инструменты поддержки пользовательского пространства для файловых систем HFS + в системах Linux (адаптировано из собственных инструментов Apple).
  • iBored - редактор и программа просмотра дисков с поддержкой HFS Plus
  • MacDrive - коммерческий продукт для чтения, записи и создания томов HFS и HFS + в Windows
  • HFSleuth - бесплатный инструмент командной строки, позволяющий проверять тома HFS + / HFSX и образы дисков (DMG) для macOS и Linux
  • Mac OS X 10.7 Lion: обзор Ars Technica - критика этой файловой системы

.

Последняя правка сделана 2021-05-22 08:32:26
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте