Нарезаем яблоки. Что внутри файловой системы iOS? Файловая система Apple File System (APFS)

22.05.2019

С января этого года Apple тестирует обновление iOS 10.3, в котором компания внедряет новую файловую систему. Новый способ организации хранения данных вслед за Mac придет на iPhone, iPad и Apple Watch. Как от этого выиграют пользователи «яблочных» устройств, далее в нашем материале.

Что такое Apple File System (APFS)?

Apple File System («Файловая система Apple») - это собственная разработка компании, которая была анонсирована летом прошлого года. Она заменила предыдущую файловую систему HFS+, которую Apple впервые представила еще в 1998 г. Анонс APFS состоялся в июне 2016 года на Всемирной конференции разработчиков WWDC. Технология была разработана Apple с нуля и ориентирована в первую очередь на работу с флеш-накопителями и более совершенное шифрование данных.

В APFS реализована поддержка практически всех возможностей HFS+, однако она больше отвечает требованиям современных «яблочных» продуктов. В отличие от HFS+, она оптимизирована для флеш- и SSD-накопителей, поддерживает усиленное шифрование, создание «снимков» системы, копирование при записи метаданных, атомарные примитивы.

В чем преимущества APFS?

Возможно, не все пользователи обратят на это внимание, но APFS позволяет устройствам работать быстрее. Во-первых, новая файловая система иначе подсчитывает объемы свободного и занятого пространства, поэтому после перехода на APFS окажется, что места на накопителе будет больше. Это уже заметили разработчики, установившие на iPhone и iPad бета-версию iOS 10.3.

Во-вторых, APFS быстрее перемещает и копирует файлы, а значит, на загрузку ОС и установку приложений будет уходить меньше времени. Преимущества APFS над HFS+ наглядно продемонстрировал на WWDC 2016 инженер Apple Эрик Тамура, скопировав iTunes на флеш-накопитель, отформатированный под новую систему. Когда APFS уже завершила работу, диск на HFS+ продолжал копировать еще 17 секунд.

APFS позволяет осуществлять копирование во время записи метаданных, клонировать файлы и папки, делать моментальные снимки файловой системы, имеет повышенную устойчивость к сбоям, поддерживает совместное использование пространства, ускоренную каталогизацию и многие другие функции, которые позволят iPhone и iPad работать быстрее и надежнее.

Дата релиза APFS

В прошлый четверг вышла уже седьмая бета-версии iOS 10.3, а значит, финальный релиз не за горами. Пользователям волноваться не о чем: новая ОС автоматически сконвертирует текущую файловую систему HFS+ в APFS.

APFS рассчитана на работу с iOS, macOS, tvOS и watchOS, поэтому может быть установлена на все продукты Apple. Компания собирается перевести на нее свои устройства. Изменение файловой системы не должно приводить к утрате данных пользователя, заявляют в компании, однако рекомендуется на всякий случай прибегнуть к резервному копированию информации.

При работе с джейлбрейкнутым iOS-устройством могут возникнуть проблемы, решить которые можно только при помощи модификации файлов. А для этого необходимо знать базовую структуру файловой системы, понимать, где что лежит и какие файлы за что отвечают, куда устанавливаются программы и твики и как они взаимодействуют между собой. Обо всем этом мы и поговорим.

Основные каталоги и файлы

iOS - UNIX-подобная операционная система и использует очень похожую на UNIX и OS X структуру файловой системы. «Папка» здесь именуется «каталогом», а файловая система «растет» от корня /. Знаком ~ обозначается домашний каталог пользователя. В обычном режиме это каталог /var/mobile/ , в режиме корневого пользователя - /var/root . Часть каталогов стандартны для UNIX-систем. Это /boot - здесь в UNIX располагается ядро системы и RAM-диск (в iOS ядро лежит в каталоге /System/Library/Caches/com.apple.kernelcaches/kernelcache), /etc - настройки низкоуровневых сервисов, /tmp - временные файлы, /bin - команды для запуска с помощью терминала, /mnt - точка монтирования внешних файловых систем (сюда подключаются флешки и прочее).

Наиболее же интересны для нас каталоги /System , /Library и /var . Именно здесь хранятся сама операционная система (первый каталог), системные данные (второй), настройки приложений и их данные (третий).

Стандартные (предустановленные) приложения лежат в каталоге /Applications . Здесь же располагаются исполняемые файлы Cydia, Zeusmos и некоторых других программ.app, для установки которых необходим джейлбрейк. Файлов здесь намного больше, чем иконок на рабочем столе iOS, так как тут расположены и некоторые внутренние службы, выделенные в качестве отдельных приложений (встроенная в iOS служба Facebook, Print Center и некоторые другие). На невзломанном устройстве этот каталог обновляется только при обновлении всей прошивки, однако некоторые приложения из Cydia устанавливаются именно в него, как и сам магазин Cydia.

Скачанные из App Store приложения хранятся в /var/mobile/Containers/Bundle/Application , каждое в своем собственном подкаталоге. Имена этих подкаталогов закодированы, и для того, чтобы понять, что это за приложение, необходимо зайти в каталог и перейти в следующий. Приложения, установленные не из App Store, также обычно находятся здесь. За каждым приложением закрепляется подкаталог в каталоге /var/mobile/Containers/Data/Application , внутри которого приложение хранит свои настройки и данные, созданные во время работы. Подробнее его структуру мы рассмотрим позже.

Системные обновления загружаются в каталог /var/mobile/MobileSoftwareUpdate . Их можно удалить через стандартное приложение «Настройки». Все обои хранятся в /Library/Wallpaper , а системные звуки - в /System/Library/Audio/UISounds , музыка и видео с компьютера - в /var/mobile/Media/iTunes_Control/Music .

Отдельно стоит упомянуть каталог /var/mobile/Library/caches/com.saurik.Cydia . Именно здесь хранятся deb-пакеты твиков до перезапуска Springboard. Если появится необходимость скачать твик на компьютер, его можно взять отсюда. Также при установке твики часто создают дополнительные каталоги, где хранят собственные данные. Обычно о таких каталогах сказано в документации твиков.

Программы для работы с ФС устройства напрямую

Существует несколько программ для работы с ФС устройства после джейлбрейка.

  • iTools - программа для Mac и Windows, позволяет добавлять и удалять файлы в ФС. На этом ее функции заканчиваются. Преимуществом для многих может стать панель закладок слева от окна просмотра ФС, где можно найти программы, твики, рингтоны или обои устройства.
  • iFunBox - имеет значительно больше возможностей. С ее помощью можно создавать каталоги, удалять, переименовывать файлы или экспортировать их на ПК. Вызывает удивление лишь отсутствие поиска по ФС.
  • Filza File Manager - позволяет прямо на устройстве просматривать метаданные файлов, переименовывать, перемещать, удалять их, открывать многие типы файлов. Есть встроенный поиск по папкам и одновременная работа с несколькими файлами.
  • iFile - во многом превосходит Filza File Manager. Некоторые возможности открываются только после оплаты полной версии программы, однако интерфейс в утилите более удобный и понятный.

Разумеется, работать с файловой системой можно и при помощи терминала. Здесь есть полная поддержка UNIX-команд, так что управление ФС будет очень быстрым и удобным.


Каталоги приложений и песочницы

Продолжение доступно только подписчикам

Вариант 1. Оформи подписку на «Хакер», чтобы читать все материалы на сайте

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов.

Обозначает новую файловую систему Apple и со временем она будет использоваться на всех основных платформах компании. Но почему Apple использует её? Что в ней такого особенного? Данная статья посвящена именно этой теме.

Apple File System

Аббревиатура APFS расшифровывается как файловая система Apple (Apple File System). Она заменяет файловую систему и со временем эта файловая система станет неотъемлемой частью iOS, tvOS, и watchOS – то есть будет использоваться во всей линейке устройств: от компьютеров , iPhone, iPad, Apple TV и до устройства Apple Watch.

В настоящее время iOS 10.3 является единственной доступной для всех платформой, в которой используется файловая система APFS.

APFS может быть интегрирована на всех платформах Apple .

Файловая система HFS+ появилась в 1998 году и теперь ей уже почти 20 лет. Она стала реликтом давно прошедшей эпохи. Она создавалась в эпоху компьютеров Maк и дорабатывалась для использования в устройствах iPhone, Apple Watch и Apple TV.

Но многое поменялось за последние 20 лет. Мы перешли с жёстких дисков на твердотельные накопители SSD, ПО более не распространяется на дисках CD, а просто скачивается. Резервные копии наших устройств теперь хранятся в облачных сервисах.

Оптимизирована для работы с флеш накопителями

В наши дни почти каждое новое устройство, которое продаёт Apple, работает на флеш накопителе, включая большинство компьютеров Mac. А APFS разрабатывалась для работы с устройствами хранения на основе флеш-памяти. Поэтому мы увидим улучшение таких параметров как скорость чтения и записи, и повышение общей надёжности, когда речь заходит о хранении и передаче информации.

Главная особенность : «Снимки» системы и клонирование

Двумя главными особенностями APFS является возможность делать «снимки» системы и возможность клонирования данных.

Снимок представляет собой единовременное состояние файловой системы, доступной только для прочтения.

Используя клоны, APFS сможет создавать быстрые копии одного и того же раздела без использования дополнительного дискового пространства.

Минимальное время ожидания

APFS имеет минимальное время ожидания. А это означает, что такие операции как запуск приложений и загрузка данных будет происходит заметно быстрее. Что в свою очередь, приведёт к сокращению времени ожидания – будем меньше видеть крутящееся колёсико ожидания в iOS и иконку пляжного мячика в Mac OS.

Свободные перетекающие дисковые разделы

Если вы пользуетесь дисковыми разделами на своём Мак компьютере, то APFS может немного облегчить вашу жизнь. Если закончится свободное дисковое пространство на одном разделе, то APFS может автоматически использовать свободное пространство другого раздела, потому что APFS создаёт специальные контейнеры вокруг каждого раздела диска.

Шифрование – наше всё

APFS прежде всего создавалось для усиленного шифрования. Она поддерживает режим работы как с единичным ключом, так и с многочисленными ключами шифрования.

Наработки для будущего

HFS+ поддерживает 32-битный файл метаданных. APFS поддерживает работу с 64-битными номерами индексных дескрипторов. APFS разрабатывался для работы в будущем и со временем будет работать ещё лучше при выпуске соответствующих обновлений.

Прошивка iOS 10.3 возвращает вам дисковое пространство

Переход на использование APFS имеет одно явное преимущество. Вы получаете в своё распоряжение пространство на диске –количество сэкономленного пространство будет зависеть от степени заполнения вашего диска. Некоторым удавалось вернуть парочку гигабайтов, после обновления.

APFS для Mac OS пока существует в виде бета-версии

iOS уже использует новую файловую систему, а для Мак ОС новая файловая система пока существует лишь в виде очень ранней бета-версии. И компании Apple придётся приложить не мало усилий, чтобы перевести Мак компьютеры на использование APFS. Доступ к файловой системе в iOS для посторонних закрыт, а в Мак ОС используется открытая, редактируемая файловая система. Другими словами, APFS на практике может столкнуться с разными крайними случаями, о которых пока специалисты Apple даже не подозревают. Надеемся, что все эти проблемы будут разрешены в течении периода бета-тестирования. Вы можете попробовать бета-версию в действии. Правда она не совсем готова для повседневного использования. APFS не поддерживает работу с загрузочными дисками, с приложением Time Machine, шифрование FileVault и режим Fusion дисков.

Да, нужно обновляться до iOS 10.3

В настоящее время, iOS 10.3 является единственным способом попробовать APFS в действии. И несмотря на то, что это полностью новая файловая система, тем не менее, на неё стоит перейти. Данное обновление тестировалось в течении нескольких недель большим количеством бета-тестеров и всё говорит в пользу перехода на обновлённую версию. Сам переход происходит достаточно гладко, быстро и без потерь данных. Тем не менее, перед обновлением, мы рекомендуем на всякий случай провести резервное копирование своих данных с помощью соответствующих сервисов приложения iTunes или облачного хранилища iCloud (что рекомендовано в любом случае).

А как вам APFS ?

в понедельник, работают на новой файловой системе Apple File System или APFS. На первый взгляд, в этом нет ничего особенного – главное, чтобы устройства после апдейта не превратились в «кирпичи». Но интересного в переходе на новую систему больше, чем кажется .

Что такое Apple File System

Apple File System – новая файловая система, к оторая будет использоваться на всех устройствах начиная с Apple Watch и заканчивая Mac . Она «заточена» под флеш-память и пришла на смену устаревшей HFS+. Главные нововведения APFS: улучшенные алгоритмы шифрования, оптимизация использования памяти, защита от сбоев, функции клонирования файлов и папок и умное использование пространства . На практике это обеспечит более стабильную работу ОС, увеличит скорость чтения/записи данных и еще больше защитит пользовательскую информацию.

Почему Apple переходит на APFS

30-летняя HFS+, на которой основаны файловые системы современных гаджетов Apple, создавалась для компьютеров с несколькими накопителями, которые обрабатывали большие объемы файлов. На мобильных устройствах вроде iPhone или Apple Watch приоритеты другие – пользователям нужно, чтобы быстро открывались приложения, а ОС вовремя реагировала на запросы. Для этого в APFS применяются такие функции как клонирование (мгновенное копирование файла или директории, при котором не требуется дополнительное место для хранения данных) и рязрежение (сжатие данных, при котором экономится дисковое пространство и увеличивается скорость записи). А за счет использования «снапшотов» (открытых только для чтения «слепков» файловой системы в томе) ускорится резервное копирование, а именно создание бэкапов с помощью Time Machine.

APFS спроектирована для дальнейшего расширения. В отличие от HFS+, где используется 32-битный каталог записи, в APFS используется 64-битный индексный дескриптор (это такая структура данных в файловых системах). Другими словами, APFS сможет хранить 9 квинтильонов (миллион триллионов!) файлов, что не так актуально для iOS-устройств, но с излишком хватит на ближайший десяток лет для macOS и внешних накопителей.

Какие преимущества для пользователей

Помимо более быстрой и стабильной работы операционной системы, пользователи получат доступ к надежным инструментам шифрования данных на диске. Благодаря APFS iPhone больше не будут превращаться в «кирпичи» после неудачных обновлений – Apple защитит данные на накопителе от повреждений, вызванных сбоями. Наконец, используя функцию Space Sharing, все тома диска смогут «делиться» свободным пространством.

Инженер UiPservice Владислав Юдченко дал комментарий редакции UiP:

«APFS даст возможность операционкам меньше крэшиться, она быстро копирует файлы и оптимизирует пространство. Пока что разница будет не так ощутима, но в новых апдейтах станет заметной. Вскоре и вовсе привыкнем, переход всех устройств на APFS даже не заметим»

Например, второй системой (через Bootcamp) у вас установлена Windows и вы выделили для нее 100 ГБ . С Apple File System больше не придется вручную перераспределять отведенный объем памяти. Если 100 ГБ окажется мало, система сама «заберет» нужное количество свободного дискового пространства. При этом функция клонирования файлов и папок позволит быстрее копировать и перемещать данные.

Ограничения Apple File System

Сейчас в APFS нельзя форматировать системные диски . Не поддерживают новую файловую систему гибридные Fusion Drive, функции FileVault и Time Machine.

Как начать использовать APFS

Если вы обновили iPhone или iPad до iOS 10.3 – устройство уже использует Apple File System. С Mac сложнее, здесь APFS – нечто вроде бета-версии. Отформатировать можно внешний диск, карту SD или флешку, да и то только с помощью Терминала. Словом, пока лучше не экспериментировать.

На прошедшей WWDC Apple представила новую файловую систему – Apple File System, или APFS. Хотя HFS+ используется на всех продуктах Apple (и будет использоваться еще как минимум год, релиз APFS запланирован на 2017), требованиям современных файловых систем HFS+ не отвечает. Ей уже больше 30 лет, она была создана для времен, когда дискеты и жесткие диски считались последним словом техники. Чтобы использовать HFS+ на iOS, tvOS и watchOS, Apple пришлось добавить совершенно сторонний, не поддерживаемый на macOS функционал: например, шифрование для каждого отдельного файла.

В новой APFS добавили столько функций, что глаза разбегаются: оптимизация для Flash и SSD, защита от потери данных при аварийном завершении работы за счет увеличения количества атомарных операций , встроенная поддержка нескольких типов шифрования, сильно уменьшенное время отклика, быстрая оценка размера файлов и папок – список можно продолжать и продолжать. В этой статье мы рассмотрим четыре, как нам кажется, самые интересные функции новой файловой системы.

Безопасное Copy-on-write

Для начала нам придется разобраться, с несколькими ключевыми терминами. Атомарные операции – это такие операции, которые выполняются в файловой системе или базе данных нераздельно, и упростить их невозможно. Атомарная операция не может остаться неоконченной, если будет прервана. Такая операция либо выполняется полностью, либо не выполняется совсем. POSIX-совместимое безопасное атомарное сохранение файла выполняется следующим образом – когда мы работаем с приложением и сохраняем файл, данные из памяти выгружаются во временный файл на диске. Когда приложение уверено, что данные были выгружены полностью и без ошибок, приложение запрашивает файловую систему о переименовании . Операция переименования – атомарная, она будет либо выполнена полностью, либо не выполнена совсем. При переименовании происходит следующее: файловая система перемещает временный файл на место сохранения (скажем, из /var/tmp/Batcave_shopping.pages в ~fedor/Documents/Batcave_shopping.pages), а затем удаляет старый файл.

Однако, что если мы сохраняем не файл, а папку или Bundle (например, .rtfd или.app, тоже, по сути своей, папки)? Предположим, мы работаем с документом ~fedor/Documents/AlfredHappyBirthday.rtfd. Это – Bundle, у нас в нем содержится текст и несколько изображений. Когда мы вносим изменения и сохраняем их, приложение перезаписывает Bundle целиком, а не только измененный текст или изображение. Требования POSIX не позволяют переименовать папку куда-то, где уже есть данные, поэтому приходится прибегать к ухищрениям. Документ перемещается из ~fedor/Documents/, освобождая пространство, затем временный файл из /var/tmp/AlfredHappyBirthday.rtfd переименовывается в пустое место. Такая операция – неатомарная и небезопасная. Если случится ошибка системы или компьютер лишится питания во время выполнения операции – документ будет утерян.

Очевидно, что такое решение нежелательно. Поэтому в APFS была введена новая, POSIX-несовместимая атомарная безопасная операция сохранения папок. Когда приложение запрашивает сохранение папки, временный и постоянный файлы меняются местами. Это выполняется силами файловой системы, и такая операция – атомарная.

Это и есть функция безопасного Copy-on-write – одного из важнейших нововведений в APFS.

Клонирование и snapshots

Если вам нужна копия какого-то файла или папки – вы щелкаете по ним правой кнопкой мыши и выбираете Duplicate. В HFS+ это означает, что файловая система считывает все данные, а потом записывает их в свободное пространство. Такой подход неэффективно расходует пространство и зря нагружает диск и процессор. В APFS, когда вы дублируете данные – через Duplicate или просто ⌘C, ⌘V – файловая система копирует только ссылку на них (так называемый hard link), а содержимое не дублируется. Такая операция называется клонированием . Благодаря клонированию дубликат данных или папки появляется практически моментально, и занимает пренебрежимо малое количество свободного пространства. Если вы внесете изменения в оригинал или клон, файловая система запишет изменения и перенаправит ссылку соответствующе, а оригинальная часть данных останется нетронутой. В APFS операция клонирования – атомарная.

Snapshots – это специфический снимок тома, который хранит информацию о данных на этом томе в определенный момент времени. Проще всего понять принцип его работы на примере. Предположим, что у нас есть том (скажем, флешка) с двумя презентациями. Мы создаем Snapshot этой флешки, в нем записано: два файла Joker.key и Riddler.key, файлам принадлежат следующие блоки данных. Сам Snapshot данных с флешки не содержит – только то, какие файлы находились на ней в момент создания снимка и какие им принадлежали блоки. Особенность Snapshot заключается в том, что блоки, записанные в него, оказываются закрыты. Их нельзя удалить, переместить или перезаписать. Поэтому, например, если мы внесем изменения в Joker.key, а Riddler.key вообще удалим – оригинальные блоки данных останутся нетронутыми. Хотя такой подход занимает дополнительное свободное пространство, он позволяет APFS практически моментально вернуть том во времени к моменту создания любого снимка.

Space sharing

Space sharing – еще одна очень интересная функция APFS. В очередной раз, проще всего ее понять на примере. Предположим, у вас есть ноутбук, в нем установлен SSD на 256 ГБ (очень может быть, что у вас действительно есть такой ноутбук) и вы хотите установить на него OS X El Capitan и бета-версию macOS Sierra. Увы, Apple пока не позволяет загружать операционную систему с тома APFS (или использовать его для Time Machine, если на то пошло), поэтому вам нужно создать два раздела HFS+. Вы запускаете Disk Utility и перед вами встает дилемма – какого объема сделать разделы? Можно просто разбить диск пополам, но что если вам не хватит места для комфортной работы в El Capitan? Или, наоборот, вы переборщите и нужные вам приложения в Sierra не смогут уместиться?

APFS решает эту проблему с помощью Space sharing. На диске с APFS-томами уровнем выше создается контейнер, содержащий все тома. Они могут свободно и динамически увеличиваться или уменьшаться в пределах такого контейнера, не требуя от пользователя выбирать, какого объема они должны быть. Вернемся к нашему гипотетическому ноутбуку. Если вместо HFS+ использовать APFS для обоих томов, обе операционные системы сообщали бы, что для каждой доступно 256 ГБ пространства. При этом пространство, занятое файлами одной системы, оказалось бы недоступно для другой. Такое решение сильно упрощает работу с несколькими томами и позволяет получить из их использования максимальную выгоду без больших трудностей.

Миграция с HFS+

Наконец, как же мы можем мигрировать на APFS? Процесс перехода на файловую систему обычно тяжелый, долгий и не всегда безопасный. Приходится делать резервную копию данных на внешний носитель, стирать жесткий диск компьютера, записывать новую файловую систему, устанавливать ОС, восстанавливать свои данные из копии и надеяться, что ничего не исчезло со своих мест.

К счастью, Apple об этом позаботилась. Инженеры компании провели большую работу над процессом миграции. Процесс практически полностью состоит из атомарных операций, но главное – данные о новой файловой системе записываются только в пустое пространство на томе HFS+. А значит, даже если что-то пойдет не так, это не повредит ни вашим данным, ни структуре вашей уже существующей файловой системы. И, по словам инженеров Apple, вся миграция занимает всего несколько минут.

Вот мы и подошли к концу. Мы успели поговорить только о четырех функциях, но в APFS их намного больше. Если вы хотите погрузиться в детали, официальная документация содержит все подробности. Новую файловую систему, как мы уже упоминали выше, нельзя использовать для загрузочного диска или Time Machine, и она не будет поддерживаться на OS X Yosemite и старше. Официальный релиз APFS назначен на 2017 год.

Похожие статьи