Обновление iOS 10.3 на iPhone и iPad дает понять, что 32-битные приложения скоро останутся в прошлом. На самом деле, переход на 64-битную архитектуру идет давно – все приложения и апдейты, отправляемые в App Store с середины 2015 года, должны поддерживать 64 бита. В ближайшее время Apple предпримет последний шаг – полностью откажется от поддержки 32-битного кода.
Если отложить в сторону тот факт, что это конец для устаревших приложений и игр, которые давно не обновлялись, станет понятно, что полный переход на 64-битную платформу является уникальным техническим достижением для всей индустрии.
Как Apple отказывалась от 32-битной архитектуры:
- Сентябрь 2013 года: Apple представляет iPhone 5s – первый смартфон на рынке с 64-битным процессором Apple A7. iOS 7 – первая 64-разрядная мобильная ОС.
- Октябрь 2013 года: Анонсированы iPad Air и iPad mini 2. Оба построены на базе Apple A7.
- Март 2014 года: вышла iOS 7.1. Она исправляет большинство связанных с памятью сбоев в 64-разрядной iOS.
- Сентябрь 2014 года: дебютировали iPhone 6 и 6 Plus. Чип Apple A8 — второй 64-битный процессор Apple. Компания сняла с продажи iPhone 4s, сделав iPhone 5c последним из 32-битных iPhone.
- Октябрь 2014: вышли iPad Air 2 и iPad mini 3. Оба работают на 64-разрядных процессорах (A8X и A7 соответственно). Прекращены продажи iPad 4. Оригинальный iPad mini является последним из 32-разрядных iPad.
- Февраль 2015 года: все отправляемые на утверждение в App Store новые приложения должны иметь 64-разрядную поддержку.
- 1 июня 2015 года: Все обновления для приложений, представленных в App Store, должны включать поддержку 64-разрядных версий.
- 19 июня 2015 года: Apple прекращает выпуск iPad mini. 32-разрядные iPad продаются только с пометкой «Refurbished» (восстановленные).
- 9 сентября 2015 года: Apple представляет iPhone 6s и 6s Plus и прекращает продажи 32-разрядного iPhone 5c, в линейке остается 64-разрядный iPhone 5s. Все новые iPhone теперь являются 64-битными.
- 13 июня 2016 года: Apple анонсирует iOS 10. Бета-версия операционной системы начинает предупреждать, когда запускаемое приложение является 32-разрядным. В финальной версии это примечание исчезает. iOS 10 не выходит для аппаратов с процессором Apple A5. Таким образом Apple A6 и A6X стали последними поддерживаемыми 32-битными чипами.
- 24 октября 2016 года: В iOS 10.1 возвращается предупреждение о 32-разрядности приложений.
27 марта 2017 года: Выходит iOS 10.3. Одна из функций – новый раздел со списком 32-битных приложений, которые, как отмечается, «не будут работать в будущих версиях iOS».
К этому списку можно добавить пару предположений. В июне на WWDC Apple представит iOS 11, в которой откажется от поддержки 32-битного ПО и оставшихся 32-разрядных устройств (iPhone 5, iPhone 5c и iPad 4). В сентябре, когда выйдет финальная версия, вместе с ней дебютирует новый iPhone, который не сможет запускать устаревшие программы с 32-битным кодом. Такого мнения придерживается известный разработчик Стив Тротон-Смит, который регулярно находит скрытый функционал в коде iOS. Предположение программиста пока не подтверждено, но вероятность того, чтобы Apple откажется от поддержки 32-битных приложений в новых устройствах, велика.
Отсутствие поддержки 32-разрядных устройств и софта позволит Apple лучше контролировать собственное программное и аппаратное обеспечение. Набор 64-битных инструкций ARM, также известный как AArch64, уникален тем, что полностью отделен от 32-разрядного набора инструкций (ARMv7-совместимого) AArch32. В мире ПК архитектура x86-64 разрабатывалась с целью обратной совместимости, что дало ей преимущество над совместимой только с 64 битами архитектурой Intel Itanium. В результате переход ПК на 64-битную платформу затянулся на несколько лет. Даже сегодня каждый x86 PC поддерживает 32- и 16-разрядный код, хотя работает с ним крайне редко.
Поскольку ARM разделяет инструкции 32-bit и 64-bit, а у Apple есть полный контроль над iOS и экосистемой, компания может стать первой в мире, построившей архитектуру ARM-процессора с поддержкой только 64-разрядного кода.
С точки зрения аппаратного обеспечения, это может означать освобождение пространства в гипотетическом чипе Apple A11 для большего количества ядер, увеличения площади CPU, повышение производительности графического сопроцессора и т.д. Такой шаг для других производителей практически недостижим – большинство процессоров в экосистеме Android либо используют ядра процессора ARM Cortex, либо конструкции, основанные на ядрах Cortex. Чтобы гарантировать максимальную совместимость, ARM, с большой вероятностью, не станет выпускать чипы без поддержки 32 бит. По крайней мере в обозримом будущем.
Даже если этого не произойдет, Apple может добиться оптимизации на программном уровне, от чего выиграют и модели с аппаратной поддержкой 32-разрядных приложений. Благодаря отказу от 32 бит Apple сможет убрать лишний код из iOS, а также 32-разрядные библиотеки программного обеспечения и другие вещи, которые позволяют 32-битным приложениям работать на 64-битной iOS. Это поможет сократить объем памяти, которую можно использоваться для новых функций iOS 11, и ускорить работу платформы, так как iOS не придется загружать 32-разрядные библиотеки.
Расскажет ли Apple публично об этих преимуществах, остается только догадываться. Тем не менее, это будет первая потребительная операционная система, которая не только перешла с 32-bit на 64-bit, но и полностью прекратила поддержку устаревшей архитектуры, чем не могут похвастаться 64-битные Windows, macOS, Linux и другие ОС.
Даже если видимые преимущества для пользователей и Apple относительно невелики, факт остается фактом: только одна компания в мире располагает достаточным контролем над своим аппаратным и программным обеспечением для реализации этих преимуществ.
]]>