مرگ اپلیکیشنهای ۳۲ بیتی چه معنایی برای اندروید و اپل دارد؟
شرکت Arm که طراح معماری چیپستهای موبایل است، مدتی قبل اعلام کرد که از سال 2023 تمام پردازندههای جدید آن فقط 64 بیتی خواهند بود و دیگر از کدهای 32 بیتی پشتیبانی نمیکنند. باید خاطرنشان کنیم در سال 2013 اپل از اولین چیپست موبایل 64 بیتی خود به نام A7 برای آیفون 5s رونمایی کرد. مدتی بعد پردازندههای 64 بیتی راهی گوشیهای اندرویدی شدند ولی تمام این پردازندهها قادر به اجرای کدهای 64 و 32 بیتی بودند.
این یعنی در ابتدا پردازندهها فقط از کدهای 32 بیتی پشتیبانی میکردند و برای سالها قادر به اجرای اپلیکیشنهای 32 و 64 بیتی بودند و حالا قرار است وارد دورانی شویم که فقط اپلیکیشنهای 64 بیتی استفاده خواهند شد. اما این تغییر چه معنایی برای اندروید و گجتهای اپل دارد؟ در ادامه به این موضوع میپردازیم.
بیتها و بایتها

در گوشی شما هر پیکسل، تمام دادههای ارسالی از طریق اینترنت، هر فایل ذخیره شده در حافظه، همهی صداهایی که پخش میشوند و هر تماسی که با نمایشگر صورت میگیرد به صورت اعداد پردازش میشوند. بخش عمدهای از این پردازشها توسط پردازنده انجام میشود و در این میان قطعات دیگری مانند پردازندهی گرافیکی هم انجام وظیفه میکنند.
پردازنده این اعداد را به صورت باینری ذخیره میکند و برای اندازهگیری حافظهی اختصاص یافته برای آنها هم از واحد بیت استفاده میشود. روی هم رفته بیتها همان صفر و یکهای باینری هستند. هشت بیت میتواند نشاندهندهی هر عددی بین صفر تا 255 باشد. 16 بیت از صفر تا 65535 است و 32 بیت میتواند اعداد را تا 4294967295 (4 گیگابایت) ذخیره کند.
شرکت Arm پشتیبانی از کدهای 64 بیتی را در نسل هشتم معماری خود (با نام Armv8) معرفی کرد و این پشتیبانی در Armv9 ادامه پیدا میکند. Arm پردازندههای خود را طوری طراحی کرده که به سرعت میتوانند بین اجرای کدهای 32 و 64 بیتی سوئیچ کنند و کاربران متوجه تفاوت بین آنها نمیشوند.

برخی از هستههای Cortex-A مبتنی بر Armv8 فقط کدهای 32 بیتی را اجرا میکنند (مانند Cortex-A32) و برخی از آنها تنها قادر به اجرای کدهای 64 بیتی هستند (مانند Cortex-A34 و Cortex-A65). احتمالا تا حالا نام این هستههای پردازشی را نشنیدهاید زیرا هیچکدام از آنها در گوشیهای هوشمند استفاده نشدهاند.
بیشتر پردازندههای سری Cortex-A از Cortex-53 تا Cortex-A75 از دو حالت 32 بیتی و 64 بیتی پشتیبانی میکنند. Cortex-A76 اگرچه از کدهای 32 بیتی پشتیبانی میکند اما فقط اپلیکیشنها میتوانند از این قابلیت بهره ببرند. این یعنی گوشیهای اندرویدی مبتنی بر این پردازنده باید مجهز به اندروید 64 بیتی باشد اما کاربران قادر به اجرای اپلیکیشنهای 32 بیتی نیز هستند.
اگر از چیپست اسنپدراگون 855 (یا مدلهای جدیدتر) استفاده میکنید یا اینکه چیپست گوشی شما مبتنی بر هستههای پردازشی Kyro 4xx (مانند اسنپدراگون 480، 675، 720، 765 و دیگر نمونهها) است، بدون اینکه حتی متوجه شده باشید این چیپست پشتیبانی از سیستمعاملهای 32 بیتی را کنار گذاشته است.

حالا با معرفی هستههای پردازشی Cortex-X2 و Cortex-A510، پشتیبانی کدهای 32 بیتی به طور کامل کنار گذاشته میشود و گوشیهای مبتنی بر آنها باید فقط سیستمعامل و اپلیکیشنهای 64 بیتی را اجرا کنند. از بین هستههای جدید، Cortex-A710 کماکان از اپلیکیشنهای 32 بیتی پشتیبانی میکند؛ یعنی این اپلیکیشنهای باید فقط توسط این هسته اجرا شوند.
حرکت Arm به سمت کنار گذاشتن کدهای 32 بیتی
Arm دربارهی مهاجرت به سمت کدهای 64 بیتی دو بیانیه منتشر کرده است. در بیانیهی ابتدایی آمده بود که از سال 2022 تمام هستههای پردازشی قدرتمند فقط از اپلیکیشنهای 64 بیتی پشتیبانی میکنند اما ماهها بعد اعلام شد که از سال 2023 تمام هستههای جدید فقط کدهای 64 بیتی را اجرا میکنند. در این میان همانطور که گفتیم، Cortex-A510 فقط کدهای 64 بیتی را اجرا میکند و هستهی چندان قدرتمندی هم محسوب نمیشود.

چرا Arm دو تاریخ مختلف را برای این اقدام مطرح کرده است؟ به نظر میرسد در سال 2022 هم یک هستهی پردازشی 32 بیتی دیگر معرفی خواهد شد اما از سال بعدی تمام هستههای جدید این شرکت 64 بیتی خواهند بود.
باید خاطرنشان کنیم ما در اینجا دربارهی هستههای پردازشی Cortex-A صحبت میکنیم که در گوشیها، تبلتها، کرومبوکها و دیگر گجتهای اینچنینی استفاده میشوند. Arm همچنین هستههای پردازشی سری Cortex-M را برای میکروکنترلها بر عهده دارد که البته این هستهها فقط 32 بیتی هستند.
چه معنایی برای اندروید دارد؟
خبر خوب این است که اندروید 64 بیتی به بلوغ رسیده و این یعنی زمانی که پشتیبانی از کدهای 32 بیتی به طور کامل کنار گذشته شوند، کاربران با تغییر بزرگی روبهرو نمیشوند.

برای یادآوری باید بگوییم که اندروید 5 اولین نسخهی اندروید کاملا 64 بیتی بود. این نسخه در سال 2014 منتشر شد و علاوه بر چیپستهای 64 بیتی مبتنی بر معماری Arm، از چیپستهای 64 بیتی اینتل هم پشتیبانی میکرد. از آگوست 2019، تمام اپلیکیشنهای جدید و آپدیت اپلیکیشنهای موجود در گوگل پلی علاوه بر نسخهی 32 بیتی باید نسخهی 64 هم ارائه دهند.
برای راحتتر شدن کار توسعهدهندگان بازیها، موتورهای بازی محبوب به پشتیبانی از کدهای 64 بیتی را امکانپذیر کردهاند. بهعنوان مثال موتور Unreal از سال 2015 این کار را امکانپذیر کرده و موتورهای Cocos2d و Unity به ترتیب از سالهای 2015 و 2018 پشتیبانی از کدهای 64 بیتی را آغاز کردهاند. از اول آگوست 2021 هم گوگل پلی ارائهی اپلیکیشنهای فاقد نسخهی 64 بیتی را برای گوشیهای دارای این قابلیت متوقف میکند؛ یعنی در پلی استور این گوشیها این دسته از اپلیکیشنها ارائه نخواهند شد.

گوگل ابزار و مستندات زیاد را برای آمادهسازی توسعهدهندگان به منظور مهاجرت به معماری 64 بیتی فراهم کرده است. برای بسیاری از اپلیکیشنها کار کمی برای انجام دادن وجود دارد زیرا آنهایی که با زبانهای برنامهنویسی جاوا یا کاتلین نوشته شدهاند، نیاز به تغییر ندارند. اما اپلیکیشنهای مبتنی بر موتور بازی یا SDK های ثالث باید از استفاده از آخرین نسخههای 64 بیتی اطمینان حاصل کنند.
با توجه به اینکه سالها از عرضهی نسخههای مختلف اندروید 64 بیتی میگذرد و در کنار آن به لطف تلاشهای گوگل برای 64 بیتی کردن اپلیکیشنهای موجود در پلی استور، به نظر میرسد مهاجرت نهایی بدون سروصدا و هیاهو اتفاق خواهد افتاد.
چه معنایی برای اپل دارد؟
اپل از زمان آیفون 5s برای نرمافزار و سختافزارهای خود از کدهای 64 بیتی استفاده کرده است. این شرکت در فوریه 2015 اعلام کرد که تمام اپلیکیشنهای iOS باید از معماری 64 بیتی پشتیبانی کنند. سپس در سال 2017 اعلام شد که اپلیکیشنهای 32 بیتی از iOS 11 به بعد اجرا نمیشوند. در آن زمان، اپل به طور کامل کدهای 32 بیتی را کنار گذاشت و تمام چیپستهای بعد از A11 (که در آیفون 8 و آیفون ایکس استفاده شده) فقط چیپستهای 64 بیتی هستند.
در macOS هم شاهد داستان مشابهی هستیم. این سیستمعامل از سال 2011 پشتیبانی از کدهای 64 بیتی را آغاز کرد و از سال 2018 تمام اپلیکیشنهای جدید ارائه شده برای اپ استور مک باید از معماری 64 بیتی پشتیبانی کنند. همچنین اپل با معرفی macOS Catalina در سال 2019 پشتیبانی از اپلیکیشنهای 32 بیتی را کنار گذاشت.
آینده 64 بیتی است، اما برای برخی

همانطور که گفتیم، تمام هستههای پردازشی Cortex-A از سال 2023 کاملا 64 بیتی خواهند بود. از آنجایی که اندروید از معماری 64 بیتی پشتیبانی میکند، بسیاری از کاربران متوجه این مهاجرت نخواهند شد و تغییر صورت گرفته بسیار روان خواهد بود. اگر هم کاربر گجتهای اپل هستید که سالها قبل اپل برای macOS و iOS این مهاجرت را انجام داده است.
برای سایر معماریهای پردازنده و دیگر سیستمعاملها، مانند ویندوز و لینوکس، پشتیبانی از کدهای 32 بیتی برای زمان بیشتری باقی میماند. از آنجایی که لینوکس میخواهد دوست همه باشد، احتمالا تا دهههای آینده هم به پشتیبانی از کدهای 32 بیتی ادامه میدهد. برای کامپیوترهای ویندوزی هم مسیر روشنی وجود ندارد و مشخص نیست که چه زمانی به طور کامل کدهای 32 بیتی را کنار میگذارند.
منبع: Android Authority