ПЗ

В чем замысел файловой системы APFS

2

Если новая файловая система успела чем-то огорчить вас, имена виновных в этом будут вам интересны. Это iPhone, iPod touch и iPad. Они слишком хорошо продавались, объёмы продаж стремительно росли, а у Apple появились свободные средства, в особо крупных размерах. Представьте себя на месте Apple: вдруг, без каких-либо последствий, вы можете позволить себе все.

Они справились с соблазнами, и повели себя разумно. Может быть даже слишком. Жить было бы намного интереснее если бы они придумали не только лучшие в мире и самые успешные “умные часы”. Стив мог бы рискнуть и замахнуться на что-то нереальное, но осиротевшее руководство компании слишком хорошо помнило откуда пришли эти деньги, и сотни предложений “снизу”, после долгих обсуждений и экспериментов, не принимались. Рискованно. А вы на их месте вели бы себя как-то иначе? Тем не менее, некоторые из этих предложений, после длительных дискуссий и обсуждений, отвергнуть не удалось. Одно из этих предложений касалось разработки новой, современной, файловой системы для iOS. А не отвергли его по целому ряду причин.

Во-первых, файловая система в iOS живет и работает в уникальных (по сравнению с её сестрой в macOS) условиях. Пользователи напрямую с ней не соприкасаются. Она скрыта от них, её будто бы вообще нет (в СМИ сообщалось об её отсутствии). Во-вторых, в любом iOS-устройстве – одно-единственное хранилище данных, и оно несменяемое. А внешние хранилища данных к iOS-устройствам в те времена подключить было невозможно, и не из-за того что в Apple работали неумехи – это было принципиально: внешний накопитель, будь это флэшка, SSD или RAID – переносчик инфекции и заразы. Были еще и “в-третьих”, и “в-четвертых”, но не стану вас утомлять. С момента начала разработки до презентации новой файловой системы разработчикам (и предоставления им её бета-версии) должно было пройти два или два с половиной года. Файловую систему для iOS, за это время, можно и нужно было вылизать до ослепительного блеска.

Совместимость с macOS? Напрямую с файловой системой iOS macOS дела не имела, лишь через специальное программное обеспечение. Которое взаимодействовало с файловой системой iOS через API, которые решили сохранить нетронутыми. Кроме того, файловая система в iOS и без этого была существенно другой, отличной от HFS+ в macOS. Только API были один-в-один, но все остальное было, фактически, разработано заново. Когда Mac OS 10.5 “Леопард” втискивали в мобильное устройство, переделывать пришлось многое. Сначала операционную систему избавили от всего лишнего. Значительную часть функций файловой системы просто отрезали. Когда этого оказалось мало, высушивали блок за блоком, многие из них переписали заново, упрощая везде где это было возможно. Можно считать что один раз её уже переписали.

О том что файловая система iOS радикально отличалась от той что использовалась в Mac’ах, мало кто знает. Разве что про чувствительность HFS+ в iOS к регистру в именах файлов и других объектов файловой системы. То есть, в HFS+/iOS строчные и заглавные варианты той же буквы считаются разными, и файлы “File.txt” и “file.txt” запросто могут находиться в одной директории. macOS нечувствительна к регистру в именах объектов файловой системы, для обычных пользователей это оптимальный вариант. В прошлом, в варианте файловой системы для Mac OS X Server, при установке операционной системы можно было включить или выключить чувствительность к регистру. Если бы это было необходимо, сделать файловую систему Mac’ов чувствительной к регистру было бы легче легкого. Извините за уклонение от темы, но в сети очень часто укоряют Apple за эту самую нечувствительность – и винят в этом низкую квалификацию её инженеров.

В марте 2017 года APFS дебютировала в iOS, и все прошло без сучка и задоринки. То для чего её задумывали и для чего разрабатывали, дотошно и тщательно, получилось на все сто. Высший балл. Но в процессе разработки вводные поменялись. Задание усложнили.

На каком этапе это произошло – неизвестно. Сначала было принято решение о внедрении новой файловой системы в производных от iOS операционных системах. Это было просто, и протестов у команды вызвать не могло. Потом, скорее всего на каком-то очень нервном и неприятном для большинства участников совещании высшего руководства, у кого-то из топ-менеджеров, возникла эта мысль: “одна компания – одна файловая система”. Так и решили: в macOS, к тому же сроку, тоже должна быть внедрена новая файловая система. Современная, 64-битная, оптимизированная для работы с флэш-памятью, совместимая со всеми другими используемыми её типами.

Администрация не пожалела средств на расширение проекта, которому было выделено щедрое дополнительное финансирование, для которого открыли новые вакансии, кроме того в работу вовлекли сотрудников из группы занимавшейся HFS+. Техническое задание требовало от APFS умения работать не только с флэш-памятью, но и с жесткими дисками, и с приводами Fusion, и много чего еще. Все это за очень короткое время, под давлением администрации, в спешке. Впрочем, даже в этих условиях у них почти получилось, и все не так плохо, как могло бы быть. Но ни тщательной проработки деталей, ни продуманных до тонкостей решений, увы, не видно. APFS исполнилось два года, можно считать её версией 2.0, до версии 3.1, когда она должна “состояться”, остался еще год. Источник

Comments

Leave a reply