HFS Plus
HFS Plus или HFS+ или Mac OS Extended — файловая система, разработанная Apple Inc. для замены ранее использовавшейся HFS, основной файловой системы на компьютерах Macintosh. Ещё с этой файловой системой может работать плеер iPod. HFS+ можно рассматривать как усовершенствованную версию HFS для расширения возможностей Mac OS. Во время разработки эта система называлась Sequoia.
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 |
Точность хранения даты | 1с |
Потоки метаданных | Есть |
Атрибуты | цвет (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, Mac OS X |
HFS+ является улучшенной версией HFS с поддержкой файлов большого размера (32-битная адресация вместо старой 16-битной) и использует кодировку UTF-16 для имён файлов и папок. HFS+ поддерживает имена длиной до 255 символов формата UTF-16 и многопоточные файлы подобно NTFS (однако почти все программы используют только поток данных (англ. data fork) и поток с ресурсами (англ. resource fork)). HFS+ также использует 32-битную таблицу привязки файла к месту на диске (англ. allocation mapping table) вместо 16-битной в HFS. Старая адресация являлась серьёзным ограничением HFS, не позволявшим работать с томами объёмом более 65 536 блоков (по аналогии: сравните FAT16 и FAT-32). При объёме диска в 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).