Майбутні мобільні чіпи Arm не підтримуватимуть 32-розрядні програми з 2023 року, а це означає, що всі смартфони Android перейдуть на 64-розрядні.
Arm оголосила, що всі її мобільні процесори не підтримуватимуть 32-розрядні операції з 2023 року, що повністю припинить підтримку 32-розрядної версії на Android. Дизайнер мікросхем вже перейшов на підтримку 32-розрядної версії на своїх великих основних чіпах ще в 2020 році, після того, як у 2013 році на ринку смартфонів була вперше представлена підтримка 64-розрядної версії. Незважаючи на те, що це здається серйозним кроком, наслідків для екосистеми Android, ймовірно, буде небагато (якщо такі будуть).
«Біти» вказують на кількість адрес пам’яті, до яких можна отримати доступ у машині. 32-розрядна машина, як правило, може отримати доступ до 2^32 адрес пам’яті, що еквівалентно приблизно 4 ГБ. 64-розрядна машина може отримати доступ до 2^64 адрес пам’яті, що приблизно відповідає 18 квінтильйонам. Немає великих відчутних переваг для програми, скомпільованої з 64-розрядним набором інструкцій, але немає жодних причин, щоб її слід було скомпілювати з 32-бітною. 64-розрядна версія приносить більше переваг операційній системі, оскільки може посилатися на понад 4 ГБ віртуальної пам’яті. У 32-розрядних моделях ЦП ARM здатний адресувати максимум 4 ГБ простору віртуальної пам’яті, який має бути спільним між процесами простору користувача, ядром і апаратними пристроями. Майбутні мобільні чіпсети Arm будуть повністю обертатися навколо 64-бітної версії з 2023 року (через
Android є 64-розрядним, а 64-розрядні програми вже є стандартом
Android 5.0 Lollipop заклав основу для підтримки 64-розрядної ОС, хоча підтримку зберегли для 32-розрядних програм, щоб вони могли працювати. Android 12 Однак, здається, це перший випуск із повними 64-розрядними версіями системних програм і служб.
Що стосується додатків, ще в серпні 2019 року Google змусив розробників надсилати 64-розрядні версії нативних програм до Google Play Store. Будь-які програми, скомпільовані в Java або Kotlin, ймовірно, потребуватимуть дуже мало роботи (якщо така є), щоб працювати в 64-розрядному режимі, оскільки програми скомпільований в Android Studio з використанням стандартних бібліотек, потрібно просто скомпілювати в 64-розрядній версії без розробника втручання. Самі розробники додатків та ігор навіть починають відмовлятися від підтримки 32-розрядної версії з Niantic у 2020 році пообіцявши припинити підтримку 32-розрядної версії Pokémon Go так само.
Справді, лише розробникам, які використовують сторонні бібліотеки чи ігрові движки, варто турбуватися про те, для якої архітектури скомпільовано їхні програми. Основні ігрові движки на Android уже підтримують 64-розрядні версії, а Unity додала 64-розрядну підтримку в 2018 році, за цілий рік до того, як Google вимагала її в Play Store. Armv8 був першим набором інструкцій Arm для підтримки 64-розрядних операцій і був анонсований у 2011 році, і Armv9 продовжує цю підтримку. Google вже давно надає інформацію про перехід на 64-розрядну систему, і так і зробив пообіцяв повністю припинити обслуговування 32-розрядних програм з 1 серпня 2021 року. Напис про 32-розрядні додатки був на стіні протягом тривалого часу, і прихильність Арма до 64-розрядних, ймовірно, нікого не шокує.
Чіпи Cortex-A від Arm будуть лише 64-розрядними
Попередні чіпи, розроблені Arm, могли виконувати як 32-бітний, так і 64-бітний код і перемикатися між ними на льоту. Деякі з найперших реалізованих SoC Armv8 використовувалися лише в 32-бітному режимі, незважаючи на те, що еталонні проекти мали підтримку 64-біт. Зараз деякі чіпи Arm є лише 32-розрядними, а інші – лише 64-розрядними, хоча 64-розрядні чіпи наразі не використовуються в жодному смартфоні. Усі чіпи серії Cortex-A будуть 64-розрядними лише до 2023 року, і, як ми вже знаємо, усі його великі ядра стануть 64-розрядними у 2022 році.
Варто також зазначити, що чіпи Cortex-A майже виключно використовуються в смартфонах, планшетах, і Chromebook, тоді як чіпи Cortex-M є недорогими та енергоефективними, використовуються в подібних IoT пристроїв. У той час як чіпи Cortex-A отримують лише 64-розрядну обробку, чіпи Cortex-M є виключно 32-розрядними, і наразі немає планів робити їх лише 64-розрядними.
Майбутнє Arm в Android
Для кінцевого користувача насправді нічого не повинно змінитися, і навряд чи виникнуть якісь збої. Google готувався до цього роками, і розробники протягом двох років навіть не могли представити 32-розрядні нативні програми в Google Play Store. Я не можу згадати жодного нещодавнього смартфона, який був запущений лише як 32-розрядний, оскільки всі смартфони, які я можу згадати, які випустили за останні роки, є 64-розрядними. Це (сподіваюся) має стати плавним переходом для всіх, і навряд чи це вплине на переважну більшість користувачів смартфонів, коли прийде час.
Цю статтю було оновлено о 14:18 за східним часом, щоб виправити деякі деталі щодо 32-розрядної версії проти 64-розрядної.