Apple File System ( APFS ) — это фирменная файловая система, разработанная и развернутая Apple Inc. для macOS Sierra (10.12.4) [6] и более поздних версий, iOS 10.3 , tvOS 10.2, [7], watchOS 3.2, [8] и всех версий iPadOS . [9] [10] Она направлена на исправление основных проблем HFS + (также называемой Mac OS Extended), предшественника APFS в этих операционных системах. APFS оптимизирована для хранения на твердотельных дисках и поддерживает шифрование , моментальные снимки и повышенную целостность данных, среди прочих возможностей. [11] [12]
Apple File System была анонсирована на конференции разработчиков Apple ( WWDC) в июне 2016 года в качестве замены HFS+ , которая использовалась с 1998 года. [11] [12] APFS была выпущена для 64-битных устройств iOS 27 марта 2017 года с выпуском iOS 10.3, а для устройств macOS — 25 сентября 2017 года с выпуском macOS 10.13 . [13] [8]
Apple выпустила частичную спецификацию для APFS в сентябре 2018 года, которая поддерживала доступ только для чтения к файловым системам Apple File Systems на незашифрованных, не-Fusion устройствах хранения. Спецификация для программного шифрования была задокументирована позже. [14]
Файловая система может использоваться на устройствах с относительно небольшим или большим объемом памяти. Она использует 64-битные номера inode [2] и обеспечивает более безопасное хранение с помощью технологии, называемой Data Protection. Код APFS, как и код HFS+, использует команду TRIM для лучшего управления пространством и производительности. Она может увеличить скорость чтения-записи на iOS и macOS [8] , а также пространство на устройствах iOS из-за способа, которым APFS вычисляет доступные данные. [15]
APFS использует схему разделов GPT . В схеме GPT есть один или несколько контейнеров APFS (GUID типа раздела — 7C3457EF-0000-11AA-AA11-00306543ECAC ). В каждом контейнере есть один или несколько томов APFS, все из которых совместно используют выделенное пространство контейнера, и каждый том может иметь роли тома APFS. macOS Catalina (macOS 10.15) представила группу томов APFS, которая представляет собой группы томов, которые Finder отображает как один том. Фирменные ссылки APFS лежат между жесткими ссылками и мягкими ссылками и связывают тома.
В macOS Catalina роль тома System (обычно называемая "Macintosh HD") стала доступной только для чтения, а в macOS Big Sur (macOS 11) она стала подписанным системным томом (SSV), и монтируются только моментальные снимки тома. Роль тома Data (обычно называемая "Macintosh HD - Data") используется как наложение или тень тома System , а тома System и Data являются частью одной и той же группы томов и отображаются как один в Finder.
Клоны позволяют операционной системе эффективно копировать файлы на том же томе, не занимая дополнительного дискового пространства. Изменения в клонированном файле сохраняются как дельта-экстенты , что сокращает дисковое пространство, необходимое для ревизий и копий документов. [10] Однако нет интерфейса, позволяющего пометить две копии одного и того же файла как клоны другого или для других типов дедупликации данных .
Тома APFS поддерживают моментальные снимки для создания экземпляра файловой системы на определенный момент времени, доступного только для чтения. [10]
Файловая система Apple изначально поддерживает полное шифрование диска [ 2] и шифрование файлов со следующими параметрами:
APFS поддерживает 64-битные номера inode , поддерживая более 9 квинтиллионов файлов (2 63 ) на одном томе. [2] [5]
Файловая система Apple использует контрольные суммы для обеспечения целостности данных для метаданных, но не для пользовательских данных. [16]
Apple File System разработана для предотвращения повреждения метаданных, вызванного сбоями системы . Вместо того, чтобы перезаписывать существующие записи метаданных на месте, она записывает совершенно новые записи, указывает на новые, а затем освобождает старые, подход, известный как перенаправление при записи . Это позволяет избежать поврежденных записей, содержащих частично старые и частично новые данные, вызванных сбоем, который происходит во время обновления. Это также позволяет избежать необходимости записывать изменения дважды, как это происходит в журналируемой файловой системе HFS+, где изменения сначала записываются в журнал, а затем в файл каталога. [16]
APFS поддерживает прозрачное сжатие отдельных файлов с использованием Deflate (Zlib), LZVN (libFastCompression) и LZFSE . Все три являются алгоритмами типа Lempel-Ziv . Эта функция унаследована от HFS+ и реализована с той же системой AppleFSCompression / decmpfs с использованием вилок ресурсов или расширенных атрибутов. Как и в случае с HFS+, прозрачность нарушается для инструментов, которые не используют процедуры, обернутые в decmpfs. [17]
APFS добавляет возможность иметь несколько логических дисков (называемых томами ) в одном контейнере, где свободное пространство доступно для всех томов в этом контейнере (блочное устройство). [18]
Хотя APFS включает в себя многочисленные улучшения по сравнению со своим предшественником HFS+, был отмечен ряд ограничений.
APFS не предоставляет контрольные суммы для пользовательских данных. [19] Он также не использует преимущества энергонезависимой памяти с произвольным доступом и байтовой адресацией . [20] [21]
Перечисление файлов и любых метаданных inode в целом происходит гораздо медленнее в APFS, когда они находятся на жестком диске . Это связано с тем, что вместо хранения метаданных в фиксированном месте, как это делает HFS+, APFS хранит их вместе с фактическими данными файла. Такая фрагментация метаданных означает, что при перечислении файлов выполняется больше операций поиска , что приемлемо для SSD, но не для HDD. [22]
В отличие от HFS+, APFS не поддерживает жесткие ссылки на каталоги. [3] [23] Поскольку версия программного обеспечения для резервного копирования Time Machine , включенная в Mac OS X 10.5 (Leopard) — macOS 10.15 (Catalina), полагалась на жесткие ссылки на каталоги, APFS изначально не поддерживалась для ее томов резервного копирования. [24] [23] Это ограничение было преодолено, начиная с macOS 11 Big Sur , где APFS теперь является файловой системой по умолчанию для новых резервных копий Time Machine (существующие резервные диски в формате HFS+ также по-прежнему поддерживаются). [25] Реализация Time Machine в macOS Big Sur в сочетании с дисками в формате APFS обеспечивает «более быстрое, более компактное и более надежное резервное копирование», чем это было возможно с резервными дисками в формате HFS+. [26] [27]
Экспериментальная версия APFS с некоторыми ограничениями представлена в macOS Sierra 10.12.4. Она доступна через diskutil
утилиту командной строки. Среди этих ограничений — она не выполняет нормализацию Unicode , в то время как HFS+ выполняет, [33] что приводит к проблемам с языками, отличными от английского. [34] Диски, отформатированные с помощью версии APFS от Sierra, также могут быть несовместимы с более поздними версиями macOS или APFS, а версия APFS от Sierra не может использоваться с Time Machine , томами FileVault или Fusion Drives. [35]
Начиная с macOS 10.13 High Sierra , все устройства с флэш-памятью автоматически преобразуются в APFS. [36] Начиная с macOS 10.14 Mojave , Fusion Drives и жесткие диски также обновляются при установке. [37] Основной пользовательский интерфейс для обновления не предоставляет возможности отказаться от этого преобразования, и устройства, отформатированные с помощью версии APFS High Sierra, не будут считываться в предыдущих версиях macOS. [36] Пользователи могут отключить преобразование APFS, используя утилиту установщика startosinstall
в командной строке и передав --converttoapfs NO
. [38]
Тома FileVault не преобразуются в APFS с macOS Big Sur 11.2.1. Вместо этого macOS форматирует внешние диски FileVault как логические тома CoreStorage, отформатированные с помощью Mac OS Extended (журналируемые). Диски FileVault могут быть опционально зашифрованы. [ необходима цитата ]
iOS 10.3 , tvOS 10.2 и watchOS 3.2 преобразуют существующую файловую систему HFSX в APFS на совместимых устройствах. [13] [8] [39]
Несмотря на повсеместность томов APFS в современных компьютерах Mac и введение формата в 2016 году, сторонние утилиты восстановления продолжают иметь заметные ограничения в поддержке томов APFS из-за задержки выпуска полной документации Apple. По данным компании Alsoft, создателя DiskWarrior, выпуск Apple в 2018 году частичной документации формата APFS задержал создание версии DiskWarrior, которая может безопасно восстанавливать диски APFS. [40] Ожидается, что конкурирующие продукты, включая TechTool от MicroMat и Drive Genius от Prosoft, также увеличат поддержку APFS.
Paragon Software Group опубликовала комплект для разработки программного обеспечения под лицензией BSD с 4 пунктами , который поддерживает доступ только для чтения к дискам APFS. [41] Независимая реализация с открытым исходным кодом только для чтения, разработанная Йоахимом Метцем, libfsapfs, выпущена под лицензией GNU Lesser General Public License v3. Она была упакована в репозитории программного обеспечения Debian , Fedora Linux , Rocky Linux , Red Hat Enterprise Linux и Ubuntu . [42] [43] [44] Оба являются инструментами командной строки, которые не предоставляют обычный интерфейс драйвера файловой системы. Существует драйвер файловой системы в пользовательском пространстве (FUSE) для Linux, называемый apfs-fuse с доступом только для чтения. [45] Проект «APFS для Linux» работает над интеграцией поддержки APFS в ядро Linux. [46]
Коммерческий продукт APFS для Windows от Paragon обеспечивает поддержку чтения и записи на томах APFS во всех версиях Windows от Windows 7 до Windows 11 и от Windows Server 2008 R2 до Windows Server 2022, но он не может форматировать или проверять тома APFS, а также не может читать тома APFS, которые аппаратно зашифрованы с помощью чипа безопасности Apple T2 . [47]
APFS в настоящее время несовместима с Time Machine из-за отсутствия жестких ссылок на каталоги, довольно отвратительная реализация, которая, вероятно, способствует сомнительной надежности Time Machine.
Библиотека и инструменты для доступа к файловой системе Apple (APFS)