Файловая система APFS: зачем она стала нужна
О том что прежняя файловая система у Apple была отсталой и никуда не годилась, вот уже лет десять говорили и писали тысячи экспертов и авторов. На момент ее замены на APFS ей было уже лет тридцать, модными новшествами она и в самом деле не блистала, но, как ни странно, если ее отсталость кому-то и мешала, то очень немногим. Ее не замечали, то есть, она отлично справлялась со своими обязанностями. С ней не было проблем, чего не скажешь о новой файловой системе - неплохой, но все еще слишком юной.
Файловые системы Mac’ов, начиная с самой первой из них, вызывали у тех, кто знает толк в файловых системах, презрение и чувство собственного превосходства. В самом первом Mac’e, в 1984 году, файловая система даже не была иерархической. MFS (Macintosh File System) обладала целым рядом уникальных особенностей, которые для первого Mac’а были намного нужнее чем самые современные и не до конца продуманные механизмы современных (на тот момент) файловых систем - я имел дело с VAX/VMS, по сравнению с файловой системой которых MFS была из каменного века. Но для первого Mac’а она была абсолютно достаточной. Сначала в первом Mac’е планировалось использовать файловую систему из Lisa OS, вполне себе иерархическую и современную на тот момент, которая, в свою очередь, происходила от SOS, очень приличной файловой системы для Apple II и Apple III - но амбициозные и безумные задачи стоявшие перед первым Mac’ом не оставили для нее места. MFS в той ситуации была одним из блестящих и остроумных инженерных решений, без которых Mac’а бы просто не было.
Что такое HFS
К иерархической системе вернулись через полтора года, в сентябре 1985 года. Когда Стив был уволен из Apple. Новую файловую систему назвали, не без вызова, просто и со вкусом: HFS. Операционную систему Mac’ов называли System, а иерархическую файловую систему - иерархической файловой системой (Hierarchical File System, или HFS). А какие еще могут быть операционные и файловые системы? В системах где от файловых систем требовались особые способности, они быстро усложнялись и развивались. В Mac’ах этого не требовалось. Пока к середине 90-х у HFS не возникла серьезная проблема, с которой надо было что-то делать: размеры дисков, по сравнению с 1985 годом, существенно увеличились. Типичный размер диска в конце 80-х - 40-80 Мегабайт. В конце 90-х размеры дисков уже измерялись в единицах Гигабайт. А HFS была 16-битной. На томе можно было разместить не более 65535 файлов. В результате, даже если в файле нужно было хранить один или два символа, на диске для него выделялось килобайт десять, а то и двадцать.
С файловой системой надо было что-то делать, и немедленно. Но компания была на грани гибели, несла убытки, как стало известно через несколько лет, через 2-3 месяца, если бы ничего не изменилось, ей грозило неминуемое банкротство. Как они этого избежали я не буду рассказывать, но примерно в то же время Стив, как будто случайно, зашел в один из офисов компании, где шло совещание, с блокнотиком - будто бы просто посидеть. Когда совещание закончилось, он уволил почти все руководство подразделения, и назначил на руководящий пост инженера который предложил что-то, что Стиву понравилось. Короче, самодур и все такое. С тем инженером я в 1998 общался, речь на том совещании шла о новой файловой системе. Вариантов было два: либо, в течение 3-4 лет, разрабатывать современную и насыщенную вкусностями (от которых эксперты индустрии будут в восторге) FS, а потом, в течение нескольких лет, доводить ее до приличного состояния - либо быстро и просто устранить реальные проблемы, на что требовалось максимум полгода - по мнению тех кто предлагал этот путь. Через 3 или 4 месяца, в Mac OS 8.1, появилась HFS+. 32-битная.
Фактически, это была та же самая HFS, с относительно небольшими изменениями. Даже с переходом на исправленную и доработанную копию самой себя были проблемы. Недолго. Именно эта файловая система, вплоть до марта 2017 года, была файловой системой в macOS (как бы она не называлась), в iOS, в tvOS и в watchOS. Как обычно, "спецификации" у файловой системы были, мягко говоря, очень бледными. Но проблем с ней почти не было, разве что в серверном бизнесе Apple, который так и остался всего лишь эпизодом. Но, что бы о нем не говорили тогда и потом, очень ярким и интересным. Если бы с iPhone ничего не получилось, в Mac’ах на смену HFS+ пришла бы ZFS, году в 2008 или 2009. Но, к счастью или к несчастью, с iPhone все получилось.
С 2005 по 2009 Apple Computer, плавно превратившаяся на середине этого пути в просто Apple, активно интересовалась ZFS, уникальной файловой системой разработанной в Sun Microsystems. Это практически безграничная файловая система, 128-битная, пределы на которые она рассчитана скорее всего никогда не будут достигнуты, а по набору функций и признаков современной файловой системы едва ли не самая-самая в мире. До 2007 года, пока Apple была Apple Computer, "яблочный" вариант этой файловой системы успешно развивался, в Леопарде (в той самой версии Mac OS X, срок выхода которой перенесли из-за аврала по поводу подготовки самого первого iPhone к выходу в свет) ZFS должны была появиться в серверном варианте системы - но, внезапно, Apple утратила к ней интерес.Предлагаем подписаться на наш канал в «Яндекс.Дзен». Там вы сможете найти эксклюзивные материалы, которых нет на сайте.
Как появилась APFS
До 2007 года у компании (точнее, у Стива) все еще были сомнения в успехе главной инновации десятилетия - iPhone, в 2007 году эти сомнения были развеяны. В индустрии до сих пор ходят слухи о том, что Apple не справилась с внедрением ZFS в Mac OS X. Есть еще одна версия: кто-то не то в Sun Microsystems, не то в Oracle Corporation (вскоре купившей Sun), забыл упомянуть Стива в какой-то речи, или как-то не так его упомянул. Реальная причина очевидна: поворот в сторону мобильных устройств (в которых HFS+ хватило бы на годы, и ведь хватило же) был рискованным, но сулил Apple намного большее. Как только на этом фронте наметился реальный успех, серверное направление стали потихоньку закрывать.
В 2014 году (по другим данным, в 2012 - но скорее всего, все-таки в 2014) в Apple началась разработка новой файловой системы. Для того чтобы взяться за столь трудоемкий проект, нужны были серьезные причины. Какие-то планы на будущее, с которыми HFS+ стала бы несовместимой. Файловые системы создаются долго и трудно. На это уходят годы. В 2016 году APFS была объявлена. В марте 2017 она дебютировала в iOS, достаточно успешно. В том же году, осенью, APFS в составе High Sierra пришла и на Mac’и. Чтобы состояться, операционной или файловой системе нужно дожить до версии 3.1. Им нужно переболеть детскими болезнями, научиться справляться с житейскими ситуациями, повзрослеть. Я не знаю к чему готовятся в Apple, для чего им понадобилась "современная файловая система" именно сейчас, но мощь этого неизвестного замысла уже впечатляет.
У APFS все еще много недостатков, но главный из них (юность) очень быстро проходит. О том что представляет из себя APFS, и какие из ее целей уже озвучены - расскажу в другой раз.