HFS Plus

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 19:41, 6 декабря 2016.
HFS+
Полное название Hierarchical File System Plus
Содержимое каталога B-tree
Распределение файлов Bitmap
Сбойные блоки B-tree
Limits
Макс. размер томаexabyte [1]
Макс. размер файла 8 exabyte
Макс. количество файлов 4,294,967,295 (232-1)
Макс. длина имени файла 255 characters (255 UTF-16 encoding units, normalized to Apple-modified variant of Unicode Normalization Format D)
Разрешенные символы
в именах файлов
Unicode, any character, including NUL. OS APIs may limit some characters for legacy reasons
Features
Даты зарегистрирован access, attributes modified, backed up, contents modified, created
Диапазон дат January 1, 1904 – February 6, 2040
Дата резолюции 1 s
Вилка Yes
Признаки Color (3 bits, all other flags 1 bit), locked, custom icon, bundle, invisible, alias, system, stationery, inited, no INIT resources, shared, desktop
Разрешения файловой системы Unix permissions, NFSv4 ACLs (OS X v10.4 onward)
Прозрачное сжатие Yes (on OS X 10.6 and higher)[2]
Транспорантное шифрование Yes (on OS X 10.7 and up). Per-home directory encryption is available with AES[clarification needed] using HFS+ formatted .dmg volumes on OS X versions prior to 10.7 but later than OS X 10.3
Другие
Операционная система Mac OS 8.1, Mac OS 9, OS X, & Darwin, Linux, Microsoft Windows (through Boot Camp[3] http://support.app.com</ref> IFS drivers)

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 (однако почти все программы используют только поток данных и поток с ресурсами. HFS+ также использует 32-битную таблицу привязки файла к месту на диске вместо 16-битной в HFS. Старая адресация являлась серьёзным ограничением HFS, не позволявшим работать с томами объёмом более 65 536 блоков. При объёме диска в 1 ГБ размер кластера (блока) составлял 16 КБ — даже файл из 1 байта занимал все 16 КБ.

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

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

Чаще всего том в HFS+ объединяется с так называемым HFS Wrapper(транслятор), хотя это встречается очень редко. Wrapper был разработан для нескольких целей: во-первых, он позволяет Макинтошам без поддержки HFS+ в ПЗУ загружаться с таких томов. Во-вторых, это позволяет упростить переход на HFS+ путём создания простейшего загрузочного тома HFS, на котором есть доступный только для чтения.

Файл Where_have_all_my_files_gone? («Куда пропали все мои файлы?») содержит информацию для пользователей Mac OS без поддержки HFS+, о том, что этот логический диск требует операционную систему с поддержкой HFS+. Заголовок HFS тома содержит сигнатуру и смещение до вложенного HFS+ тома. Секторы, используемые HFS+, помечены в HFS как дефектные блоки (англ. bad blocks).

История

HFS + была введена с 19 января 1998 года выпуском Mac OS 8.1.

С выпуском Mac OS X 10.2.2 обновление 11 ноября 2002 года, Apple добавила дополнительные функции ведения журнала HFS Plus для повышения надежности данных. Эти функции были легко доступны в Mac OS X Server, но доступны только через командную строку в стандартном настольном клиенте.

С OS X v10.3, все тома HFS Plus на всех компьютерах Mac установлены быть журналируемыми по умолчанию. В рамках системы, так объем HFS Plus с журналом идентифицируется как HFSJ.

Mac OS X 10.3 также представила еще одну версию HFS Plus под названием HFSX. Объемы HFSX практически идентичны объемам HFS Plus, за исключением того, что они никогда не окружены Обертка HFS, что характерно для томов HFS Plus, и они необязательно, поддерживают чувствительность к регистру для имен файлов и папок. Объемы HFSX могут быть признаны две записи в заголовок тома, значение HX в поле подписи и 5 в поле версии.

Mac OS X 10.3 также отмечается принятие от Apple в Unicode 3.2 разложения, заменяющий 2.1 разложение Unicode, используемый ранее. Это изменение вызвало проблемы для разработчиков программного обеспечения для записи OS X.

В Mac OS X 10.4, Apple добавила поддержку для встроенных записей данных атрибутов, то, что было частью реализации OS X из HFS Plus, так как, по крайней мере 10,0, но всегда отмечен как "зарезервировано для будущего использования". пока релиз 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 + сжатие. В открытом источнике и в некоторых других областях, это называется AppleFSCompression. Сжатые данные могут храниться в любом расширенном атрибуте или вилки ресурсов. При использовании неяблока API, как AppleFSCompression не всегда полностью прозрачным. В OS X Lion 10.7, логическое шифрования тома (известный как FileVault 2) был добавлен в операционную систему. Это дополнение к операционной системе в коей мере не изменили логическую структуру файловой системы. менеджер логических томов компании Apple известна как кернохранилище и его шифрование на уровне тома могут обратиться к файлу, отличных от HFS Plus систем. При наличии соответствующих аппаратных средств, как шифрование и расшифровка должна быть прозрачной.[4]

Отличие HFS (Hierarchical File System) от HFS+

Для использования в Mac OS, Apple была разработана своя собственная файловая система HFS (Hierarchical File System). В настоящее время ей на смену пришла HFS+, которая используется в Mac OS, начиная с версии 8.1. Структура тома, использующего HFS+, близка к HFS, но в то же время содержит некоторые отличия.

Длина имени файла:

  • HFS:31
  • HFS+: 255

Кодировка имен файлов:

  • HFS: Mac Roman
  • HFS+: Unicode

Нода каталога:

  • HFS: 512 байт
  • HFS+: 4 Kбайт

Максимальный размер файла:

  • HFS: 2^31
  • HFS+: 2^63

Архитектура HFS Plus

Объемы HFS Plus разделены на секторы (так называемые логические блоки в HFS), которые, как правило размером 512 байт. Эти секторы затем группируются в блоки распределения, которые могут содержать один или несколько секторов; количество блоков распределения зависит от общего размера тома. HFS Plus использует большее значение для решения блоков распределения, чем HFS, 32 бита, а не 16 бит; это означает, что он может получить доступ к 4294967296 (= 232) блоки распределения, а не блоки распределения 65536 (= 216), доступных для HFS.

Раньше объемы HFS Plus были встроены внутри стандартной файловой системы HFS. Это было прекращено переходом Tiger на Intel Macs, где файловая система HFS Plus не был встроен внутри обертки. Оболочка была разработана для двух целей; это позволило компьютеры Macintosh без поддержки HFS Plus в их ROM для загрузки томов 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+ хранит на нем также и служебную информацию — метаданные. Среди них наиболее важны для работы файловой системы и наиболее интересны нам в деле поиска пропавших данных:

  • Секторы 0 и 1 объема являются загрузочные блоки HFS. Они идентичны загрузочных блоков в томе HFS. Они являются частью обертки HFS.
  • Volume header (заголовок тома). Содержит общую информацию о томе. Например, размер блока данных и информацию о расположении других блоков метаданных на диске.

Сектор 2 содержит эквивалент заголовок тома на мастер-директорию блока в томе HFS. Заголовок тома хранит широкий спектр данных о самом объеме, например, размер блоков распределения, метку времени, которая указывает, когда был создан объем или местонахождения других структур, таких как объем файла каталога или степень переполнением файла. Заголовок тома всегда находится в том же самом месте.

  • Allocation file (файл размещения или карта тома). Bitmap, в котором отмечен статус каждого блока на диске. (1 — занят, 0 — свободен).

Размещения файлов, которая отслеживает, какие блоки распределения свободны и которые находятся в использовании. Он аналогичен объему Bitmap в HFS, в котором каждый блок распределения представлен одним битом. Ноль означает, что блок свободен и один означает, что блок находится в использовании. Основное различие с объемом Bitmap HFS, является то, что распределение файлов хранится в виде обычного файла, она не занимает специальное зарезервированное пространство около начала тома. Размещения файлов можно также изменить размер и не должны храниться последовательно в пределах объема.

  • Catalog file (каталог). В нем хранится большая часть данных о размещении файлов и папок на диске.

Каталог файлов представляет собой B-дерево, которое содержит записи для всех файлов и каталогов, хранящихся в томе. Каталог файлов HFS Plus очень похож на файл каталога HFS, основные различия являются записи больше, чтобы позволить больше полей и, чтобы позволить эти поля, чтобы быть больше (например, чтобы позволить более длинные имена Unicode файлов 255-символов в HFS Plus, ). Запись в файл каталога HFS составляет 512 байт, запись в файл каталога HFS Plus равен 4 КБ в Mac OS и 8 КБ в OS X. Поля в HFS имеют фиксированный размер, в HFS Plus размер может варьироваться в зависимости от фактического размера данных, которые они хранят.

— Экстенты Переполнение Файл является еще одним B-дерево, которое записывает блоки распределения, которые выделяются для каждого файла в виде экстентов. Каждый файл записи в файл каталога может записывать восемь экстентов для каждой развилки файла; как только те, которые используются дополнительные экстенты записываются в файл Экстенты переполнением. Сбойные блоки также записываются как экстентов в файле Экстенты переполнением. По умолчанию размер записи в степени в Mac OS 1 KB и 4 КБ в OS X.

  • Attributes file (файл атрибутов). Используются для контроля доступа и т.п

Атрибуты файла представляет собой новый B-дерево в HFS Plus, которая не имеет соответствующую структуру в HFS. Атрибуты файла могут хранить три различных типа 4 КБ записей: Инлайн данных атрибутов записей, вилка данных атрибутов записей и атрибутов Extension записей. Инлайн данных атрибутов записи хранят небольшие атрибуты, которые могут соответствовать внутри самой записи. Вилка данных атрибутов записей содержат ссылки на максимум восьми экстентов, который может содержать большие атрибуты. Атрибуты расширения используются для расширения вилке данных атрибутов записи, когда его восемь записей экстентов уже используются. -Файл запуска предназначен для не-Mac OS систем, которые не имеют HFS или HFS Plus поддержку. Это похоже на загрузочные блоки из тома HFS. — Второй в последнем секторе содержит альтернативный эквивалент заголовок тома на альтернативный мастер-директорию Блока HFS. — Последний сектор в объеме зарезервировано для использования Apple. Он используется в процессе производства компьютеров.

HFS Plus в других операционных системах

Ядро Linux включает в себя модуль hfsplus для монтажа HFS + файловые системы для чтения и записи. HFS + Fsck и МКФС были перенесены на Linux и являются частью пакета hfsprogs.

В 2009 году эти водители были диагностированы быть развращает HFS + диски с емкостью, превышающей 2 ТБ. Следовательно, распределение Linux, такие как Debian и Ubuntu также заблокировал монтаж HFS + дисков или их разделов больше 2 ТБ. Как февраль 2011 года ведется работа, чтобы снять это ограничение.

В соответствии с действующим HFS + драйвера в Linux, ведение журнала должна быть отключена, чтобы записать данные безопасно на разделе с HFS +. При условии, что раздел не используется программным обеспечением Time Machine, Apple, ведение журнала можно отключить под OS X: С помощью Disk Utility в OS X Йосемити, пользователь может держать Alt / Option и нажмите кнопку "Отключить журналирование" в меню Файл , предварительно выбрал смонтированный раздел.

HFS + раздел с журнальной включен может быть принудительно установлен с записью-доступа под Linux, но это не поддерживается и неразумно.

Аккаунт Google Summer проекта Код для реализации записи-поддержку Journaled HFS + был принят Фондом Linux в 2011 году, но не была завершена в то время и до сих пор находится в стадии разработки. Прогресс и усовершенствования драйвера HFS +, в том числе некоторые обновления поддержкой журналирования, размещаются в списке Linux-fsdevel рассылки время от времени.

По состоянию на июль 2011 года, компания Paragon Software Group выпустила, драйверы ядра, которые направленны полностью на чтение и запись файловой системы HFS + томов. Продукт является запатентованная реализация HFS + на основе собственной библиотеки UFSD Paragon,. Есть платные и бесплатные издания водителя, и они включают в себя утилиту для проверки и ремонта HFS + томов. По данным интернет-документации (бесплатная версия или оплаченный издание ), как свободное издание и оплаченный издание в настоящее время поддерживают ядра Linux от 2.6.15 (на ветке ядра 2.6), а также 3.0.x 3.14 .x (на 3.x ветви ядра). Ядро 3.16+ пока не поддерживается.

По состоянию на май 2012 года, Apple выпустила только для чтения HFS + драйвера для Windows XP, Windows Vista и Windows 7 как часть программного обеспечения Boot Camp в OS X 10.6. Это означает, что пользователи этих систем могут считывать данные на диске HFS +, но не написать им. (Apple.com загрузки Bootcamp) Microsoft создала драйвер HFS + для Xbox 360 главным образом для чтения HFS + отформатированный плеерах. Свободный (GPL) альтернатива HFSExplorer написана Эриком Ларссоном. HFSExplorer представляет собой приложение для просмотра и извлечения файлов из тома HFS + (Mac OS Extended) или тома HFSX (Mac OS Extended, Чувствительный к регистру), расположенный либо на физический диск, на .dmg образ диска, или в качестве исходного дампа файловой системы. Однако HFSExplorer может читать только из, но не пишите, HFS отформатированных томов.

Программное обеспечение с открытым исходным кодом - jHFSplus, основанный на HFSExplorer и jpfm - могут быть использованы для монтажа HFS.

Бесплатная программа плагин для Total Commander существует, то, что может читать, среди прочего, HFS и HFS + файловые системы.

Бесплатная программа DiskInternals Linux Reader, может быть использован для извлечения / сохранения папок / файлов из HFS и HFS + жестких дисков / разделов.

Коммерческий продукт, MacDrive, также доступен для установки HFS и HFS + диски, оптические диски и другие средства массовой информации в проводнике Windows, и позволяет как чтение и запись на тома, а также ремонт и форматирование Mac дисков.

Коммерческий продукт, компании Paragon HFS + для Windows, позволяет в полной мере читать и писать и управление дисками из всех версий Windows, от Windows XP до Windows Server 2008.

Минусы файловой системы HFS Plus

Из-за возраста HFS Plus, несколько особенностей, которые в настоящее время считаются скрепок современных файловых систем, как ZFS или рефов нет в HFS Plus. Одной из таких функций, контрольных сумм данных, является наиболее обычно упоминавшееся отсутствует функция. Кроме того, ядро ​​файловой системы использует Case.

Нечувствительность Unicode строк, которые привели Линус Торвальдс заявить "HFS +, вероятно, худшее файловая система когда-либо».

Примеры современной файловой системы, не поддерживаемые на HFS +

  • одновременный доступ (пусть более одного процесса на доступ к тому времени, когда файловая система)
  • контрольных сумм
  • мгновенных снимков
  • более продолжительный срок (6 февраля 2040 для HFS +)
  • разреженный файл поддержки
  • реальные жесткие ссылки [5]

Первоначально HFS Plus не был разработан для OS X (или любой UNIX-подобной операционной системы), ни архитектуры Intel. В результате все чтения метаданные должны быть байт местами, потому что компьютеры Mac сегодня используют прямой порядок байтов то время как Macs в то время, когда HFS Plus был разработан используется тупоконечника.

Выводы

HFS+ была создана, чтобы наиболее эффективно использовать дисковое пространство для томов больших размеров и фрагментированных файлов.

Примечания

  1. OS X: Mac OS Extended format (HFS Plus) volume and file limits : Daily Digital Digest : — Режим доступа: http://support.apple.com
  2. 10.6: Compress files with HFS+ compression - Mac OS X Hints
  3. Boot Camp 3.0, Mac OS X 10.6: Frequently asked questions : Daily Digital Digest : — Режим доступа: http://www.3dnews.ru/185033
  4. HFS_Plus HFS Plus, материал из Википедии — свободной энциклопедии : — Режим доступа: https://ru.wikipedia.org
  5. Откапываем яблоданные: изучаем восстановление данных в MAC OS X : — Режим доступа: https://xakep.ru