Формат APFS
APFS (Apple File System) — это проприетарная файловая система, разработанная компанией Apple Inc. для использования в операционных системах macOS, iOS, tvOS и watchOS. Она пришла на смену файловой системе HFS+ (Mac OS Extended) и оптимизирована для работы с твердотельными накопителями (SSD) и флеш-памятью, обеспечивая повышенную производительность, безопасность и надежность хранения данных.
История
Разработка APFS была начата компанией Apple в 2014 году. Основной целью создания новой файловой системы было преодоление ограничений HFS+, которая была разработана в 1985 году и не учитывала особенности современных устройств хранения, таких как SSD и флеш-накопители. HFS+ также не поддерживала ряд современных функций, таких как шифрование на уровне файлов, снимки состояния (snapshots) и эффективное клонирование данных.
Первый публичный анонс APFS состоялся на Всемирной конференции разработчиков Apple (WWDC) в июне 2016 года. В сентябре 2016 года система была выпущена в составе бета-версии macOS Sierra 10.12.4 для разработчиков. Официальный релиз APFS для macOS произошел 27 марта 2017 года с выходом обновления macOS Sierra 10.12.4. Начиная с macOS High Sierra (10.13), APFS стала файловой системой по умолчанию для всех Mac с твердотельными накопителями. Для компьютеров Mac с традиционными жесткими дисками (HDD) и гибридными накопителями (Fusion Drive) APFS также стала доступна, но не устанавливалась по умолчанию в ранних версиях.
В мобильных устройствах Apple APFS была внедрена в составе iOS 10.3, выпущенной 27 марта 2017 года. Это стало первым массовым развертыванием новой файловой системы на миллионах устройств.
Основные характеристики
Клонирование файлов и папок
APFS поддерживает механизм клонирования (cloning), который позволяет создавать копии файлов или папок без немедленного дублирования данных на диске. При клонировании создается новая запись в каталоге, указывающая на те же физические блоки данных, что и оригинал. Изменения вносятся только в те блоки, которые были модифицированы в одной из копий (копирование при записи, copy-on-write). Это позволяет экономить дисковое пространство и ускорять операции копирования, особенно при работе с большими файлами.
Снимки состояния (Snapshots)
APFS поддерживает создание снимков состояния файловой системы — моментальных копий томов на определенный момент времени. Снимки являются доступными только для чтения и могут использоваться для резервного копирования, восстановления данных или отката изменений. Система Time Machine в macOS начиная с версии High Sierra использует снимки APFS для создания локальных резервных копий.
Шифрование
APFS предоставляет встроенную поддержку шифрования данных. Доступны три режима:
- Без шифрования.
- Шифрование одного ключа (Single-key encryption) — весь том шифруется одним ключом.
- Шифрование с несколькими ключами (Multi-key encryption) — отдельные файлы и метаданные могут шифроваться разными ключами, что повышает безопасность.
Шифрование в APFS реализовано на уровне файловой системы, а не на уровне блочного устройства, что позволяет шифровать только определенные файлы или каталоги.
Пространство, занимаемое файлами (Space Sharing)
APFS использует концепцию контейнера (container), который может содержать несколько томов (volumes). В отличие от традиционных схем разметки диска, где каждому тому выделяется фиксированное пространство, тома в контейнере APFS динамически делят общее дисковое пространство. Это позволяет добавлять или удалять тома без переразметки диска, а также эффективно распределять свободное место между томами.
Устойчивость к сбоям (Crash Protection)
APFS использует механизм копирования при записи (copy-on-write) для метаданных и, в некоторых случаях, для данных. Это означает, что при записи новых данных старые блоки не перезаписываются немедленно. В случае сбоя системы (например, отключения питания) файловая система может откатить незавершенные операции, сохраняя целостность данных. Дополнительно APFS использует контрольные суммы (checksums) для метаданных, что позволяет обнаруживать повреждения данных.
Поддержка разреженных файлов (Sparse Files)
APFS поддерживает разреженные файлы, которые содержат «дыры» — области, не занимающие физического места на диске. Это позволяет создавать файлы, размер которых превышает фактически используемое дисковое пространство, что полезно для образов виртуальных машин или баз данных.
Структура и архитектура
Контейнеры и тома
Основной единицей хранения в APFS является контейнер (container). Контейнер занимает раздел диска или весь диск. Внутри контейнера могут быть созданы один или несколько томов (volumes). Каждый том ведет себя как независимая файловая система, но все тома разделяют общее пространство контейнера. Тома могут быть смонтированы, отформатированы или удалены независимо друг от друга.
Объекты и идентификаторы
APFS использует объектно-ориентированную архитектуру. Все элементы файловой системы (файлы, каталоги, метаданные) представлены в виде объектов. Каждый объект имеет уникальный 64-битный идентификатор (OID — Object ID). Связи между объектами (например, каталог содержит файл) хранятся в виде записей в B-деревьях (B-trees).
B-деревья
APFS использует B-деревья для хранения каталогов, атрибутов файлов и других метаданных. B-деревья обеспечивают эффективный поиск, вставку и удаление записей. В APFS применяются несколько типов B-деревьев:
- Каталоговое B-дерево (Catalog B-tree) — хранит иерархию файлов и каталогов.
- Атрибутное B-дерево (Attributes B-tree) — хранит расширенные атрибуты файлов.
- B-дерево пространства (Space Manager B-tree) — управляет распределением свободного места в контейнере.
Физическая структура
APFS использует схему адресации на основе блоков фиксированного размера (обычно 4096 байт). Метаданные хранятся в специальных областях, называемых «узлами» (nodes). Каждый узел содержит заголовок и набор записей. Для повышения производительности и надежности APFS может использовать несколько копий критических метаданных.
Применение
APFS является стандартной файловой системой для всех современных устройств Apple:
- macOS (начиная с High Sierra 10.13) — используется на всех Mac с SSD и HDD.
- iOS (начиная с iOS 10.3) — используется на всех iPhone, iPad и iPod touch.
- tvOS (начиная с tvOS 10.2) — используется на Apple TV.
- watchOS (начиная с watchOS 3.0) — используется на Apple Watch.
APFS также используется в качестве файловой системы для внешних накопителей, отформатированных в macOS. Однако совместимость с другими операционными системами ограничена: Windows и Linux не имеют встроенной поддержки APFS (требуется стороннее программное обеспечение).
Критика и ограничения
Несмотря на преимущества, APFS имеет ряд недостатков и ограничений:
- Отсутствие встроенной поддержки в Windows и Linux — это создает проблемы при обмене данными между устройствами разных платформ.
- Проблемы с производительностью на HDD — APFS оптимизирована для SSD, и на традиционных жестких дисках (особенно в гибридных конфигурациях Fusion Drive) наблюдались случаи снижения производительности и увеличения фрагментации.
- Сложность восстановления данных — из-за объектно-ориентированной архитектуры и механизма копирования при записи восстановление данных с поврежденных томов APFS может быть сложнее, чем с HFS+.
- Отсутствие поддержки сжатия на уровне файловой системы — в отличие от некоторых других файловых систем (например, NTFS), APFS не имеет встроенного механизма сжатия данных.
- Ограниченная поддержка разреженных файлов — хотя APFS поддерживает разреженные файлы, их реализация имеет некоторые ограничения по сравнению с другими системами.
Сравнение с другими файловыми системами
| Характеристика | APFS | HFS+ | NTFS | ext4 |
|---|---|---|---|---|
| Разработчик | Apple | Apple | Microsoft | Linux Foundation |
| Год выпуска | 2016 | 1998 | 1993 | 2008 |
| Максимальный размер файла | 8 ЭБ | 8 ЭБ | 16 ЭБ | 16 ТБ |
| Максимальный размер тома | 8 ЭБ | 8 ЭБ | 256 ТБ | 1 ЭБ |
| Шифрование | Встроенное (на уровне файлов) | Только через FileVault | EFS (на уровне файлов) | ecryptfs, LUKS |
| Клонирование | Да | Нет | Нет | Нет |
| Снимки состояния | Да | Нет | Да (VSS) | Да (LVM) |
| Копирование при записи | Да (метаданные и данные) | Нет | Нет | Да (метаданные) |
| Контрольные суммы | Да (метаданные) | Нет | Нет | Да (метаданные и данные) |
| Поддержка в Windows | Нет (требуется стороннее ПО) | Да (через Boot Camp) | Да | Нет |
| Поддержка в Linux | Ограниченная (через FUSE) | Да | Да | Да |
Источники
- Apple Inc. (2017). "Apple File System Guide". Apple Developer Documentation.
- Apple Inc. (2016). "WWDC 2016: What's New in Apple File System". WWDC Session Video.
- "APFS: The New Apple File System". Ars Technica, 2017.
- "APFS Overview". Apple Support, 2017.
- "File System Forensic Analysis of APFS". Digital Investigation, 2018.
- "APFS: A Technical Overview". The Mac Observer, 2017.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →