APFS
APFS (Apple File System) — это проприетарная файловая система, разработанная компанией Apple Inc. для использования на её устройствах под управлением операционных систем macOS, iOS, tvOS и watchOS. Она была представлена в 2016 году на конференции Worldwide Developers Conference (WWDC) и пришла на смену файловой системе HFS+ (Hierarchical File System Plus), которая использовалась Apple с 1998 года. APFS оптимизирована для работы с твердотельными накопителями (SSD) и флеш-памятью, хотя поддерживает также и традиционные жёсткие диски (HDD). Ключевыми особенностями APFS являются высокая производительность, надёжность, встроенное шифрование, поддержка снимков состояния (snapshots) и эффективное управление пространством.
История
Разработка APFS началась в ответ на растущие ограничения HFS+, которая была создана в эпоху, когда основными носителями были механические жёсткие диски, а объёмы данных были значительно меньше. С появлением SSD, флеш-памяти и устройств с большими объёмами данных (например, фотографии, видео, приложения) HFS+ перестала отвечать современным требованиям по производительности, масштабируемости и безопасности. Apple решила создать новую файловую систему «с чистого листа», взяв за основу опыт работы с ZFS (Zettabyte File System) и другими современными разработками.
Первая публичная демонстрация APFS состоялась в июне 2016 года. В сентябре 2016 года Apple выпустила бета-версию для разработчиков. Официально APFS стала основной файловой системой для iOS и tvOS с выходом iOS 10.3 и tvOS 10.2 соответственно (март 2017 года). Для macOS она была представлена в качестве опциональной файловой системы при обновлении до macOS Sierra (10.12.4) в марте 2017 года, а начиная с macOS High Sierra (10.13) в сентябре 2017 года стала файловой системой по умолчанию при чистой установке. На watchOS APFS используется с версии watchOS 3.2.
Архитектура и ключевые особенности
APFS построена на принципах 64-битной адресации, что позволяет адресовать до 9 квинтиллионов (9 × 10^18) файлов в одном томе. Это значительно превосходит возможности HFS+, которая использует 32-битную адресацию. Архитектура APFS включает несколько ключевых технологий:
Контейнеры и тома
В APFS используется концепция контейнера (container) — логической области на диске, которая может содержать один или несколько томов (volumes). В отличие от HFS+, где каждый том (раздел) был независим и имел своё пространство, в APFS тома внутри одного контейнера динамически делят общее свободное пространство. Это позволяет гибко перераспределять место между томами без необходимости переразметки диска. Например, в macOS контейнер APFS может содержать том «Macintosh HD» (системный) и том «Macintosh HD — Data» (пользовательские данные), которые используют общий пул свободного пространства.
Клонирование (Cloning)
APFS поддерживает клонирование файлов и папок на уровне метаданных. При копировании файла в пределах одного тома APFS не создаёт физическую копию данных, а создаёт ссылку на те же самые блоки. Только при изменении одного из клонов (записи новых данных) система выделяет новое пространство для изменённых блоков (копирование при записи, copy-on-write). Это значительно ускоряет операции копирования и экономит дисковое пространство. Клонирование активно используется в macOS для быстрого дублирования файлов, создания резервных копий Time Machine и работы приложений.
Снимки состояния (Snapshots)
Снимок состояния — это моментальная копия файловой системы на определённый момент времени, доступная только для чтения. APFS позволяет создавать снимки тома без остановки работы системы. Снимки используются для резервного копирования (например, Time Machine в macOS High Sierra и новее), для создания точек восстановления системы и для отката изменений. Снимки не требуют дополнительного дискового пространства, пока данные не изменяются; они хранят только различия между текущим состоянием и состоянием на момент снимка.
Шифрование
APFS поддерживает встроенное шифрование на уровне томов. Доступны три режима:
- Без шифрования — данные хранятся в открытом виде.
- Одноуровневое шифрование — весь том шифруется одним ключом. Используется алгоритм AES-XTS (для данных) или AES-CBC (для метаданных).
- Многоуровневое шифрование — разные файлы могут шифроваться разными ключами, что позволяет, например, хранить системные файлы на одном ключе, а пользовательские — на другом. Этот режим используется для защиты данных на устройствах с Touch ID или Face ID, где ключ пользователя привязан к биометрическим данным.
Шифрование прозрачно для пользователя: файлы автоматически расшифровываются при чтении и шифруются при записи. В macOS шифрование настраивается через FileVault, а в iOS — через настройки защиты данных.
Копирование при записи (Copy-on-Write)
APFS использует механизм copy-on-write для всех операций записи. Это означает, что при изменении данных система не перезаписывает существующие блоки, а сначала записывает новые данные в свободное место, а затем обновляет указатели метаданных. Это предотвращает повреждение данных при сбоях (например, при внезапном отключении питания), так как старые данные остаются нетронутыми до завершения записи. Однако этот механизм может приводить к фрагментации данных, особенно на механических жёстких дисках.
Быстрое изменение размера тома
APFS позволяет динамически увеличивать и уменьшать размер тома внутри контейнера без переформатирования. Это упрощает управление дисковым пространством, особенно в многотомных конфигурациях.
Производительность и надёжность
APFS была оптимизирована для современных носителей. На SSD она демонстрирует значительно более высокую производительность по сравнению с HFS+, особенно в операциях с большим количеством мелких файлов (например, при обновлении приложений или работе с фотографиями). В тестах Apple скорость операций копирования и удаления файлов на APFS может быть в несколько раз выше, чем на HFS+.
Надёжность APFS обеспечивается несколькими механизмами:
- Контроль целостности метаданных — все изменения метаданных (каталоги, атрибуты) проверяются с помощью контрольных сумм (checksums). Это позволяет обнаруживать и предотвращать повреждение структуры файловой системы.
- Atomic-операции — многие операции (например, переименование, создание файла) выполняются как атомарные, то есть либо полностью завершаются, либо не выполняются вовсе. Это снижает риск потери данных при сбоях.
- Журналирование — APFS ведёт журнал изменений, что позволяет быстро восстанавливать файловую систему после сбоя.
Однако APFS имеет и некоторые недостатки. На механических жёстких дисках (HDD) производительность может быть ниже, чем у HFS+, из-за copy-on-write и фрагментации. Кроме того, APFS не поддерживает прямую работу с некоторыми старыми функциями, такими как сжатие файлов (которое было в HFS+), хотя Apple реализовала сжатие на уровне приложений (например, в Time Machine). Также APFS несовместима с некоторыми сторонними утилитами и загрузчиками, не поддерживающими её.
Применение
APFS используется на всех современных устройствах Apple:
- macOS (с High Sierra) — системный том и том данных, Time Machine (создание снимков), внешние диски (опционально).
- iOS (с iOS 10.3) — системный том, пользовательские данные, приложения.
- tvOS (с tvOS 10.2) — системный том, медиатека.
- watchOS (с watchOS 3.2) — системный том, данные приложений.
На macOS пользователь может выбрать APFS при форматировании диска в Дисковой утилите (Disk Utility). Для внешних дисков APFS рекомендуется для SSD, но для HDD часто предпочтительнее HFS+ или exFAT (для совместимости с Windows). APFS также поддерживается на некоторых версиях macOS Server для хранения данных сервера.
Критика и ограничения
Несмотря на преимущества, APFS подвергалась критике по ряду причин:
- Проблемы с совместимостью — APFS не читается операционными системами, отличными от Apple (Windows, Linux), без сторонних драйверов. Это ограничивает использование APFS на внешних дисках, предназначенных для обмена данными.
- Фрагментация на HDD — механизм copy-on-write может приводить к значительной фрагментации на механических дисках, что снижает производительность.
- Отсутствие сжатия на уровне файловой системы — в отличие от HFS+, APFS не поддерживает прозрачное сжатие файлов (хотя Apple компенсирует это сжатием на уровне приложений).
- Ограниченная поддержка старых устройств — некоторые старые Mac (до 2012 года) могут испытывать проблемы с загрузкой с APFS, особенно при использовании сторонних загрузчиков.
- Сложность восстановления данных — из-за особенностей copy-on-write и снимков восстановление удалённых файлов на APFS может быть более сложным, чем на HFS+.
Apple периодически выпускает обновления APFS для устранения ошибок и улучшения производительности. Например, в macOS Catalina (10.15) была введена поддержка отдельного тома для данных, а в macOS Big Sur (11) — системный том стал полностью доступен только для чтения.
Интересные факты
- APFS была разработана командой, которая ранее работала над файловой системой ZFS, но Apple решила не лицензировать ZFS из-за лицензионных ограничений (CDDL) и создала собственную реализацию.
- Название APFS расшифровывается как Apple File System, но иногда ошибочно интерпретируется как Apple Proprietary File System.
- В APFS используется 128-битные идентификаторы файлов (inode numbers), что теоретически позволяет адресовать до 2^128 файлов.
- Снимки состояния APFS используются не только для резервного копирования, но и для работы функции «Откат обновлений» в macOS.
- APFS поддерживает так называемые «жёсткие ссылки» (hard links) для каталогов, что ранее было невозможно в HFS+.
Источники
- Apple Inc. (2016). «Apple File System Guide» (WWDC 2016 Session Notes).
- Apple Inc. (2017). «macOS High Sierra: APFS Implementation Details».
- Apple Developer Documentation: «File System Basics» (раздел APFS).
- Howard Oakley (2017–2023). «APFS: The Apple File System» (серия статей в журнале «The Eclectic Light Company»).
- Thomas Reed (2017). «APFS: The New Apple File System» (Objective-See Foundation).
- Wikipedia: «Apple File System» (английская версия, раздел «Criticism»).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →