Нарезаем яблоки. Что внутри файловой системы iOS? Как просматривать файловую систему устройства с iOS в Windows

Обозначает новую файловую систему 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 ?

APFS или Apple File System — новая файловая система для яблочных устройств, которая вступает на место устаревшей HFS +. Разработчики специально оптимизировали систему под флеш-накопители и SSD карты.

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

Применение APFS

Apple File System подходит для всех новых устройств компании Apple. Впервые она была использована в MacOS Sierra и предоставлялась для испытания разработчикам. Уже в марте 2017 года, через несколько месяцев после анонса, инновация стала доступна для всех пользователей iOS 10.3. Обновившись до этой версии, можно испытать практически все заявленные во время анонса функции.

В дальнейшем система будет интегрирована для:

  • Apple Watch;
  • Apple TV;
  • иных «яблочных» продуктов.

Бета-тестеры оценили достоинства файловой структуры и ждут, когда нововведение доберется и до других устройств.

Главные отличия APFS от HFS+

Система HFS+ стала применяться в начале 2000-х годов и сильно устарела. Она делала простые операции слишком длительными, неэффективно использовала значительную часть памяти устройств. Чтобы решить эти и другие проблемы, создатели работали над APFS с 2014 года. Им удалось добиться существенных изменений по сравнению с прежней системой.
Фото: Скорость APFS и HFS+ Основные отличия APFS:

  • Возможность шифрования данных. Любые файлы могут быть защищены одним или несколькими ключами.
  • Ускоренная работа с устройством. Любые действия (от запуска игрового приложения до копирования данных) занимают значительно меньше времени.
  • Отсутствие четкого деления памяти на разделы. Теперь, если в одном условном разделе не хватает места для установки файла, автоматически будет использоваться пространство в другом.
  • Быстрое копирование с экономией пространства на диске. Теперь, если создаются клоны, они занимают на двойное место в памяти, а лишь одно. Если в клоне появляются изменения, на диск записываются лишь они, а основа файла берется из первоначальной версии. Этот простой алгоритм позволяет существенно экономить память.
  • Улучшенная работа с переносными накопителями. Передавать и считывать информацию можно гораздо быстрее, а ошибки при записи данных практически не происходят.

Те, кто хотят оценить эти и другие преимущества файловой системы APFS, могут использовать устройство с iOS 10.3. Также разработана бета-версия для macOC.

При работе с джейлбрейкнутым 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 показала новые версии операционных систем macOS (Sierra) 10.12, iOS 10, tvOS 10, watchOS 3, приложение для обучения детей программированию Swift Playgrounds и новые эмодзи.

Казалось бы, ничего интересного. Однако, Apple всё-таки выкатила кое-что фундаментальное. Самая значительная разработка из всего упомянутого на презентации - это файловая система нового поколения Apple File System (APFS) в операционной системе macOS (Sierra) 10.12.

На сайте для разработчиков вскоре после презентации опубликована документация с основными характеристиками и описанием файловой системы, которая повторяет отдельные функции мощной свободной файловой системы ZFS.

Сейчас в компьютерах Apple используется файловая система HFS+, расширенная версия HFS (Hierarchical File System, иерархическая файловая система), созданной более 30 лет назад. Подобно своей предшественнице, HFS+ использует древовидную структуру, называемую B*-дерево, для хранения большей части метаданных. Отсюда и название «иерархическая файловая система».

Официальное представление HFS+ состоялось 19 января 1998 года, вместе с MacOS 8.1. С 2002 года в системе реализовано журналирование для повышения надёжности хранения информации. С версии OS X 10.3 журналирование включено по умолчанию, появилась возможность работать в режиме с учётом регистра имён.

Вплоть до версии OS X 10.7 разработчики продолжали дорабатывать HFS+ и реализовывать на уровне файловой системы новые функции для OS X. Но факт остаётся фактом: HFS изначально разрабатывалась во времена флоппи-дисков и крутящихся винчестеров, когда размеры файлов измерялись в килобайтах или мегабайтах. Сегодня многие работают с накопителями SSD, где хранятся миллионы файлов - гигабайты или терабайты данных. К файловой системе выдвигаются совершенно иные требования. Вместо доработки старого кода компания Apple решила наконец-то написать новую файловую систему с нуля.

Файловая система APFS нового поколения пока находится на стадии developer preview , то есть её не планируется выкатывать в массовое использование в ближайшее время. В данный момент нельзя использовать том APFS как загрузочный диск, его также нельзя применять в системе резервного копирования Time Machine, в Fusion Drive или с шифрованием File Vault. Но можно для обычного незагрузочного тома.

Предстоит ещё долгая доработка и тестирование, но уже потом APFS станет основной файловой системой Apple на десятилетия вперёд.

APFS, в отличие от HFS+, изначально различает регистр символов в названиях файлов и папок, и эту функцию нельзя отключить. Это следует иметь в виду всем, кто решит использовать APFS.

Основные характеристики

В официальной документации перечислены общие характеристики файловой системы APFS в сравнении с HFS+.

Контейнеры и тома

Контейнер - это основной объект для хранения данных в APFS. Конейнеры обычно полностью совпадают с записями GUID Partition Table (GPT), у них собственная схема защиты от сбоев и распределения дискового пространства. Каждый контейнер содержит один или больше томов или файловых систем, в каждой из которых есть собственное пространство имён , то есть набор файлов и директорий.

APFS напрямую не поддерживает программный RAID, но её можно использовать с томами Apple RAID для поддержки Striping (RAID 0), Mirroring (RAID 1) и Concatenation (JBOD).

64-битные индексные дескрипторы (inode)

64-битные иноды значительно увеличивает пространство имён, по сравнению с 32-битными индентификаторами в HFS+. В 64-битной файловой системе APFS поддерживается более 9 квинтиллионов файлов на каждом томе. Этого должно хватить каждому, как говорил Билл Гейтс.

Наносекундные метки времени

В APFS значительно увеличена точность меток времени (таймстампов). APFS поддерживает установку меток времени с точностью до наносекунды. Для сравнения, в HFS+ метки времени выставлялись с точностью до секунды.

Наносекундные таймстампы очень важны в современных файловых системах, потому что они помогают реализовать атомарности и атомарных транзакций - одного из основных требований ACID к транзакционной системе (например, к СУБД). Атомарность гарантирует, что никакая транзакция не будет зафиксирована в системе частично. Будут либо выполнены все её подоперации, либо не выполнено ни одной.

Защита от сбоев

В APFS реализована инновационная схема метаданных copy-on-write, которую Apple называет «защитой от сбоев» (“Crash Protection”). Она гарантирует, что изменения в файловой системе и записи в журнал остаются в синхронизированном виде, если что-то происходит во время записи - например, пропадает электропитание.

Схема copy-on-write в ZFS

Разреженные файлы (sparse files)

Файл с атрибутом «разреженный» предполагает содержание блоков нулевых байт, не хранимых на накопителе, а подразумеваемых. В HFS+ не было поддержки разреженных файлов.

Расширенные атрибуты

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

Шифрование

Apple заявляет, что шифрование является фундаментальным свойством, которое встроено в APFS на уровне файловой системы. Для каждого тома в контейнере APFS устанавливается одна из моделей шифрования: без шифрования, шифрование с одним ключом, шифрование с несколькими ключами. В последнем случае отдельные ключи применяются для шифрования файлов и метаданных. В зависимости от оборудования, APFS использует режим шифрования AES-XTS или AES-CBC.

Клонирование файлов и директорий

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

Снапшоты

Снапшоты - открытые только для чтения «слепки» файловой системы в томе. Операционная система может использовать снапшоты для более эффективной процедуры резервного копирования. То есть наконец-то Time Machine будет работать нормально (быстро).

Конечно, по своим возможностям APFS значительно уступает 128-битной файловой системе ZFS , которую поддерживают Linux, FreeBSD и другие свободные ОС, но со стороны Apple это шаг в правильном направлении.

Странно, что в предварительной документации не упомянута функция компрессии, которую HFS+, кстати, поддерживает.

Apple долго пыталась перенести ZFS на систему OS X, по этому поводу велась активная дискуссия в списках рассылки ZFS, были опубликованы предварительные снапшоты для следующей версии OS X. Позже была сделана реализация OpenZFS для OS X (O3X) и MacZFX .

Файловая система ZFS распространяется с открытым исходным кодом, и Apple вполне могла позаимствовать некоторые идеи для файловой системы APFS. Реализация open source для APFS пока не готова, компания Apple планирует опубликовать задокументировать и опубликовать формат APFS в 2017 году.

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