HFS Plus

HFS+
Разработчик Apple
Файловая система Hierarchical File System Plus
Дата представления 19 января 1998 (Mac OS 8.1)
Метка тома Apple_HFS (Apple Partition Map)
0xAF (MBR)
Apple_HFSX (Apple Partition Map) для HFSX
48465300-0000-11AA-
AA11-00306543ECAC
(GPT)
Структура
Содержимое папок B-дерево
Размещение файлов B-дерево
Сбойные сектора B-дерево
Ограничения
Максимальный размер файла 16 EiB
Максимум файлов Неограничено
Максимальная длина имени файла 255 символов (255 закодированных UTF-16 символов, нормализованных до модифицированного Apple формата Unicode Normalization Format D)
Максимальный размер тома 16 EiB
Допустимые символы в названиях Unicode, любые символы, включая NUL. OS API может использовать некоторые символы для совместимости
Возможности
Свойства access, attributes modified, backed up, contents modified, created
Диапазон дат 1 января 1904 - 6 февраля 2158
Точность хранения даты
Потоки метаданных Есть
Атрибуты цвет (3 бита, остальные флаги по одному биту), заблокировано, другая иконка, бандл, невидимый, псевдоним, системный, стационарный, инициализирован, нет ресурсов INIT, общий, рабочий стол
Права доступа права Unix, ACL (начиная с Mac OS X Server 10.4)
Фоновая компрессия Да (на Mac OS X v10.6 или выше)
Фоновое шифрование Да (на Mac OS X v10.7 или выше), для версий выше 10.3 и ниже 10.7 можно использовать тома .dmg, зашифрованные AES
Поддерживается ОС Mac OS 8, Mac OS 9, macOS

HFS Plus или HFS+ или Mac OS Extended — файловая система, разработанная Apple Inc. для замены ранее использовавшейся HFS, основной файловой системы на компьютерах Macintosh. Ещё с этой файловой системой может работать плеер iPod. HFS+ можно рассматривать как усовершенствованную версию HFS для расширения возможностей Mac OS. Во время разработки эта система называлась Sequoia.

HFS+ является улучшенной версией HFS с поддержкой файлов большого размера (32-битная адресация вместо старой 16-битной) и использует кодировку UTF-16 для имён файлов и папок. HFS+ поддерживает имена длиной до 255 символов формата UTF-16 и многопоточные файлы подобно NTFS (однако почти все программы используют только поток данных (англ. data fork) и поток с ресурсами (англ. resource fork)). HFS+ также использует 32-битную таблицу привязки файла к месту на диске (англ. allocation mapping table) вместо 16-битной в HFS. При объёме диска в 1 ГБ размер кластера (блока) составлял 16 КБ — даже файл из 1 байта занимал все 16 КБ.

Подобно своей предшественнице, HFS+ использует древовидную структуру, называемую B*-дерево для хранения большей части метаданных.

История

HFS+ была представлена 19 января 1998 г. вместе с Mac OS 8.1, но впервые её представили в качестве тестовой файловой системы для так и не вышедшей OS Copland (1994—1996 гг.). Начиная с 11 ноября 2002 г., с выпуском обновления 10.2.2, Apple Inc. сделала возможным журналирование для повышения надёжности хранения информации. Оно было легко доступно с серверной версией Mac OS X, но только через интерфейс командной строки с настольных клиентов. Начиная с macOS X Panther журналирование стало включённым по умолчанию, а том с журналом получил название HFSJ.

В Mac OS 10.3 появилась файловая система HFSX, позволяющая, в отличие от HFS+, работать в режиме с учётом регистра имен.

Описание

Том в HFS+ поделён на секторы (в HFS назывались логическими блоками), обычно равные 512 байтам. Один или более секторов составляют кластер, общее число кластеров зависит от объёма диска. 32-битная адресация позволяет получить доступ к 4 294 967 296 (232) кластерам против старых 65 536 (216)

Первоначально тома HFS+ включались внутри стандартной файловой системы HFS в транслятор — так называемый HFS Wrapper (после перехода на процессоры Intel эту практику Apple прекратила). Этот подход преследовал две цели. Во-первых, это позволяло старым компьютерам Macintosh без поддержки HFS+ загружаться с такого раздела, во-вторых, это позволяло упростить переход на новую файловую систему путём создания простейшего загрузочного тома HFS, на котором есть доступный только для чтения файл Where_have_all_my_files_gone? (с англ. — «Куда пропали все мои файлы?»). Файл содержит информацию для пользователей Mac OS без поддержки HFS+ о том, что этот логический диск требует операционную систему с поддержкой HFS+. Заголовок HFS-тома содержит сигнатуру и смещение до вложенного HFS+-тома. Секторы, используемые HFS+, помечены в HFS как дефектные блоки (англ. bad blocks).