Файлові системи macOS

basic concepts of varios file systems of macOS

Як зазначено в статті про основи файлової системи, операційна система є одним із ключових факторів, що впливають на вибір формату сховища. А коли йдеться про macOS, вибір варіантів обмежений закритістю екосистеми Apple. Усі сучасні комп'ютери Mac під керуванням macOS 10.14 і новіших версій за замовчуванням використовують APFS, яка також застосовується до решти продуктів з лінійки Apple – пристроїв на базі iOS, iPadOS, tvOS і watchOS. У той же час HFS+, попередній стандарт де-факто, все ще підтримується заради збереження сумісності з більш старими комп'ютерами. У цій статті ви можете ознайомитися з цими двома ФС та їх підходами до організації даних.

Будь ласка, зверніть увагу: Хоча macOS дозволяє форматувати знімні носії у FAT/FAT32 або exFAT і надає підтримку читання та запису для цих файлових систем, вони описані в іншій статті з огляду на їх пряме відношення до Microsoft Windows.

Зміст:

APFS

APFS (англ. Apple File System, Файлова система Apple) була представлена в 2017 році разом із macOS High Sierra 10.13 і розроблена виключно для використання на продуктах Apple, включаючи Mac, iPhone, iPad, Apple Watch і Apple TV.

Це формат нового покоління орієнтований на ефективну роботу з флеш-пам'яттю та твердотільними накопичувачами. І це не дивно, оскільки переважна більшість сучасних пристроїв Apple використовують твердотільні накопичувачі як основне сховище даних. Крім того, APFS вирішує фундаментальні проблеми HFS+, своєї попередниці на вищезгаданих пристроях, і пропонує багато функцій, що стосуються цілісності даних і економії простору для зберігання.

Ця файлова система використовує техніку Копіювання при записуванні (Copy-on-Write (CoW)), що мінімізує ризик її пошкодження. До APFS зміни записувалися безпосередньо в блоки зберігання, зайняті існуючими об'єктами. А APFS, навпаки, ніколи не перезаписує їх на місці, а створює їхні копії та вносить необхідні зміни в нове місце у сховищі, гарантуючи їх захист від можливих збоїв.

APFS використовує Контейнер (Container) як основний елемент для зберігання даних. Один Контейнер може містити кілька томів (файлових систем), які спільно використовують доступний у ньому простір для зберігання. Інформація про кількість блоків у Контейнері, розмір блоку тощо зберігається в Суперблоці контейнера (Container Superblock), який також діє як точка входу в кожен том. Розподіл блоків у всьому Контейнері відстежується за допомогою єдиної загальної Бітової мапи (Bitmap).

У той же час томи мають власні Суперблоки томів (Volume Superblocks) і незалежні структури для зберігання даних і метаданих. Керування файлами та папками у них здійснюється за допомогою бінарних деревних структур пошуку, які називаються B-деревами файлів і папок. Вузли таких дерев містять ключі та значення.

Вміст будь-якого файлу представлено принаймні одним екстентом, який містить інформацію про його початок та довжину в блоках. Управління усіма екстентами тому здійснюється за допомогою спеціального B-дерева.

Менше з тим, незважаючи на оптимізовану структуру та інші очевидні переваги, APFS була розроблена саме для пристроїв на базі флеш-пам'яті й може бути не найкращою альтернативою для механічних жорстких дисків. Більше того, вона може спричинити їх надмірну фрагментацію та, таким чином, погіршити продуктивність. На додаток до цього, до тому APFS неможливо отримати доступ з попередніх версій macOS – macOS Sierra 10.12 або раніших, що може стати вагомою перешкодою за певних сценаріїв використання.

HFS+

HFS+ (англ. Hierarchical File System Plus, Ієрархічна файлова система плюс), також відома як Mac OS Extended, була випущена в 1998 році з Mac OS 8.1 і слугувала файловою системою за замовчуванням для комп'ютерів Mac, а також для продуктів iPod і Xserve, перш ніж її замінила APFS у macOS High Sierra 10.13. Спочатку це було лише розширення застарілого формату HFS, якому зараз майже сорок років.

HFS+ використовує механізм журналювання, щоб запобігти пошкодженню своїх структур. Усі зміни документуються в Області журналу (Journal area), що дає можливість швидко відновити їх у разі несподіваних подій, таких як збої в електроживленні.

Одна з основних структур HFS+ називається Заголовком тому (Volume Header) і розташовується на початку тому HFS+. Він містить загальні параметри ФС разом із розташуваннями інших важливих елементів. Більша частина іншої службової інформації міститься в спеціальних файлах, які можна знайти в різних частинах тому і які в основному представлені B-деревами.

Весь простір для зберігання в HFS+ розділений на однакові блоки розподілу. Стан кожного блоку розподілу фіксується в схожому на бітову мапу Файлі розподілу (Allocation File). Як правило, блоки виділяються безперервними групами, що сприяє зменшенню фрагментації файлів.

Файли можуть мати два набори даних, пов'язаних із ними. Фактичний вміст файлу називається потоком даних (data fork), а додаткова інформація про нього зберігається у потоці ресурсу (resource fork). Безперервна послідовність блоків, що належать потоку називається екстентом, який, у свою чергу, представлений початковою позицією та кількістю блоків у ньому.

Файл каталогу (Catalog File) має записи для кожного файлу та каталогу у файловій системі. Такі записи містять більшу частину метаданих, а також перші вісім екстентів кожного потоку. Інші екстенти, якщо наявні, зберігаються у Файлі переповнення екстентів (Extents Overflow File). І, нарешті, додаткові атрибути файлів та папок зберігаються у Файлі атрибутів (Attributes File).

HFS+ підтримує численні посилання на вміст одного файлу, відомі як жорсткі посилання. На відміну від звичайних файлів, жорсткі посилання не вимагають додаткового місця для зберігання – вони існують у Файлі каталогу (Catalog File) як вказівники на вихідний файл, який переміщується до прихованого кореневого каталогу.

Хоча HFS+ уже застаріла, вона має зворотну сумісність, дозволяючи зберегти доступ до комп'ютерів зі старішими версіями macOS. Тому навряд чи вона швидко вийде з ужитку.

Підказка: Подробиці щодо можливості відновлення даних з цих типів ФС можна знайти в статтях про особливості відновлення даних в залежності від операційної системи та шанси на відновлення даних. Якщо вас цікавить практична сторона питання, зверніться до посібника з відновлення даних у macOS.

Якщо ж ви хочете дізнатися більше про ФС інших популярних операційних систем, перегляньте наступні статті:

Останнє оновлення: 26 квітня 2023

Якщо вам сподобалася ця стаття, поділіться нею у соцмережах: