مرگ اپلیکیشنهای ۳۲ بیتی چه معنایی برای اندروید و اپل دارد؟
شرکت Arm که طراح معماری چیپستهای موبایل است، مدتی قبل اعلام کرد که از سال ۲۰۲۳ تمام پردازندههای جدید آن فقط ۶۴ بیتی خواهند بود و دیگر از کدهای ۳۲ بیتی پشتیبانی نمیکنند. باید خاطرنشان کنیم در سال ۲۰۱۳ اپل از اولین چیپست موبایل ۶۴ بیتی خود به نام A7 برای آیفون ۵s رونمایی کرد. مدتی بعد پردازندههای ۶۴ بیتی راهی گوشیهای اندرویدی شدند ولی تمام این پردازندهها قادر به اجرای کدهای ۶۴ و ۳۲ بیتی بودند.
این یعنی در ابتدا پردازندهها فقط از کدهای ۳۲ بیتی پشتیبانی میکردند و برای سالها قادر به اجرای اپلیکیشنهای ۳۲ و ۶۴ بیتی بودند و حالا قرار است وارد دورانی شویم که فقط اپلیکیشنهای ۶۴ بیتی استفاده خواهند شد. اما این تغییر چه معنایی برای اندروید و گجتهای اپل دارد؟ در ادامه به این موضوع میپردازیم.
بیتها و بایتها
در گوشی شما هر پیکسل، تمام دادههای ارسالی از طریق اینترنت، هر فایل ذخیره شده در حافظه، همهی صداهایی که پخش میشوند و هر تماسی که با نمایشگر صورت میگیرد به صورت اعداد پردازش میشوند. بخش عمدهای از این پردازشها توسط پردازنده انجام میشود و در این میان قطعات دیگری مانند پردازندهی گرافیکی هم انجام وظیفه میکنند.
پردازنده این اعداد را به صورت باینری ذخیره میکند و برای اندازهگیری حافظهی اختصاص یافته برای آنها هم از واحد بیت استفاده میشود. روی هم رفته بیتها همان صفر و یکهای باینری هستند. هشت بیت میتواند نشاندهندهی هر عددی بین صفر تا ۲۵۵ باشد. ۱۶ بیت از صفر تا ۶۵۵۳۵ است و ۳۲ بیت میتواند اعداد را تا ۴۲۹۴۹۶۷۲۹۵ (۴ گیگابایت) ذخیره کند.
شرکت Arm پشتیبانی از کدهای ۶۴ بیتی را در نسل هشتم معماری خود (با نام Armv8) معرفی کرد و این پشتیبانی در Armv9 ادامه پیدا میکند. Arm پردازندههای خود را طوری طراحی کرده که به سرعت میتوانند بین اجرای کدهای ۳۲ و ۶۴ بیتی سوئیچ کنند و کاربران متوجه تفاوت بین آنها نمیشوند.
برخی از هستههای Cortex-A مبتنی بر Armv8 فقط کدهای ۳۲ بیتی را اجرا میکنند (مانند Cortex-A32) و برخی از آنها تنها قادر به اجرای کدهای ۶۴ بیتی هستند (مانند Cortex-A34 و Cortex-A65). احتمالا تا حالا نام این هستههای پردازشی را نشنیدهاید زیرا هیچکدام از آنها در گوشیهای هوشمند استفاده نشدهاند.
بیشتر پردازندههای سری Cortex-A از Cortex-53 تا Cortex-A75 از دو حالت ۳۲ بیتی و ۶۴ بیتی پشتیبانی میکنند. Cortex-A76 اگرچه از کدهای ۳۲ بیتی پشتیبانی میکند اما فقط اپلیکیشنها میتوانند از این قابلیت بهره ببرند. این یعنی گوشیهای اندرویدی مبتنی بر این پردازنده باید مجهز به اندروید ۶۴ بیتی باشد اما کاربران قادر به اجرای اپلیکیشنهای ۳۲ بیتی نیز هستند.
اگر از چیپست اسنپدراگون ۸۵۵ (یا مدلهای جدیدتر) استفاده میکنید یا اینکه چیپست گوشی شما مبتنی بر هستههای پردازشی Kyro 4xx (مانند اسنپدراگون ۴۸۰، ۶۷۵، ۷۲۰، ۷۶۵ و دیگر نمونهها) است، بدون اینکه حتی متوجه شده باشید این چیپست پشتیبانی از سیستمعاملهای ۳۲ بیتی را کنار گذاشته است.
حالا با معرفی هستههای پردازشی Cortex-X2 و Cortex-A510، پشتیبانی کدهای ۳۲ بیتی به طور کامل کنار گذاشته میشود و گوشیهای مبتنی بر آنها باید فقط سیستمعامل و اپلیکیشنهای ۶۴ بیتی را اجرا کنند. از بین هستههای جدید، Cortex-A710 کماکان از اپلیکیشنهای ۳۲ بیتی پشتیبانی میکند؛ یعنی این اپلیکیشنهای باید فقط توسط این هسته اجرا شوند.
حرکت Arm به سمت کنار گذاشتن کدهای ۳۲ بیتی
Arm دربارهی مهاجرت به سمت کدهای ۶۴ بیتی دو بیانیه منتشر کرده است. در بیانیهی ابتدایی آمده بود که از سال ۲۰۲۲ تمام هستههای پردازشی قدرتمند فقط از اپلیکیشنهای ۶۴ بیتی پشتیبانی میکنند اما ماهها بعد اعلام شد که از سال ۲۰۲۳ تمام هستههای جدید فقط کدهای ۶۴ بیتی را اجرا میکنند. در این میان همانطور که گفتیم، Cortex-A510 فقط کدهای ۶۴ بیتی را اجرا میکند و هستهی چندان قدرتمندی هم محسوب نمیشود.
چرا Arm دو تاریخ مختلف را برای این اقدام مطرح کرده است؟ به نظر میرسد در سال ۲۰۲۲ هم یک هستهی پردازشی ۳۲ بیتی دیگر معرفی خواهد شد اما از سال بعدی تمام هستههای جدید این شرکت ۶۴ بیتی خواهند بود.
باید خاطرنشان کنیم ما در اینجا دربارهی هستههای پردازشی Cortex-A صحبت میکنیم که در گوشیها، تبلتها، کرومبوکها و دیگر گجتهای اینچنینی استفاده میشوند. Arm همچنین هستههای پردازشی سری Cortex-M را برای میکروکنترلها بر عهده دارد که البته این هستهها فقط ۳۲ بیتی هستند.
چه معنایی برای اندروید دارد؟
خبر خوب این است که اندروید ۶۴ بیتی به بلوغ رسیده و این یعنی زمانی که پشتیبانی از کدهای ۳۲ بیتی به طور کامل کنار گذشته شوند، کاربران با تغییر بزرگی روبهرو نمیشوند.
برای یادآوری باید بگوییم که اندروید ۵ اولین نسخهی اندروید کاملا ۶۴ بیتی بود. این نسخه در سال ۲۰۱۴ منتشر شد و علاوه بر چیپستهای ۶۴ بیتی مبتنی بر معماری Arm، از چیپستهای ۶۴ بیتی اینتل هم پشتیبانی میکرد. از آگوست ۲۰۱۹، تمام اپلیکیشنهای جدید و آپدیت اپلیکیشنهای موجود در گوگل پلی علاوه بر نسخهی ۳۲ بیتی باید نسخهی ۶۴ هم ارائه دهند.
برای راحتتر شدن کار توسعهدهندگان بازیها، موتورهای بازی محبوب به پشتیبانی از کدهای ۶۴ بیتی را امکانپذیر کردهاند. بهعنوان مثال موتور Unreal از سال ۲۰۱۵ این کار را امکانپذیر کرده و موتورهای Cocos2d و Unity به ترتیب از سالهای ۲۰۱۵ و ۲۰۱۸ پشتیبانی از کدهای ۶۴ بیتی را آغاز کردهاند. از اول آگوست ۲۰۲۱ هم گوگل پلی ارائهی اپلیکیشنهای فاقد نسخهی ۶۴ بیتی را برای گوشیهای دارای این قابلیت متوقف میکند؛ یعنی در پلی استور این گوشیها این دسته از اپلیکیشنها ارائه نخواهند شد.
گوگل ابزار و مستندات زیاد را برای آمادهسازی توسعهدهندگان به منظور مهاجرت به معماری ۶۴ بیتی فراهم کرده است. برای بسیاری از اپلیکیشنها کار کمی برای انجام دادن وجود دارد زیرا آنهایی که با زبانهای برنامهنویسی جاوا یا کاتلین نوشته شدهاند، نیاز به تغییر ندارند. اما اپلیکیشنهای مبتنی بر موتور بازی یا SDK های ثالث باید از استفاده از آخرین نسخههای ۶۴ بیتی اطمینان حاصل کنند.
با توجه به اینکه سالها از عرضهی نسخههای مختلف اندروید ۶۴ بیتی میگذرد و در کنار آن به لطف تلاشهای گوگل برای ۶۴ بیتی کردن اپلیکیشنهای موجود در پلی استور، به نظر میرسد مهاجرت نهایی بدون سروصدا و هیاهو اتفاق خواهد افتاد.
چه معنایی برای اپل دارد؟
اپل از زمان آیفون ۵s برای نرمافزار و سختافزارهای خود از کدهای ۶۴ بیتی استفاده کرده است. این شرکت در فوریه ۲۰۱۵ اعلام کرد که تمام اپلیکیشنهای iOS باید از معماری ۶۴ بیتی پشتیبانی کنند. سپس در سال ۲۰۱۷ اعلام شد که اپلیکیشنهای ۳۲ بیتی از iOS 11 به بعد اجرا نمیشوند. در آن زمان، اپل به طور کامل کدهای ۳۲ بیتی را کنار گذاشت و تمام چیپستهای بعد از A11 (که در آیفون ۸ و آیفون ایکس استفاده شده) فقط چیپستهای ۶۴ بیتی هستند.
در macOS هم شاهد داستان مشابهی هستیم. این سیستمعامل از سال ۲۰۱۱ پشتیبانی از کدهای ۶۴ بیتی را آغاز کرد و از سال ۲۰۱۸ تمام اپلیکیشنهای جدید ارائه شده برای اپ استور مک باید از معماری ۶۴ بیتی پشتیبانی کنند. همچنین اپل با معرفی macOS Catalina در سال ۲۰۱۹ پشتیبانی از اپلیکیشنهای ۳۲ بیتی را کنار گذاشت.
آینده ۶۴ بیتی است، اما برای برخی
همانطور که گفتیم، تمام هستههای پردازشی Cortex-A از سال ۲۰۲۳ کاملا ۶۴ بیتی خواهند بود. از آنجایی که اندروید از معماری ۶۴ بیتی پشتیبانی میکند، بسیاری از کاربران متوجه این مهاجرت نخواهند شد و تغییر صورت گرفته بسیار روان خواهد بود. اگر هم کاربر گجتهای اپل هستید که سالها قبل اپل برای macOS و iOS این مهاجرت را انجام داده است.
برای سایر معماریهای پردازنده و دیگر سیستمعاملها، مانند ویندوز و لینوکس، پشتیبانی از کدهای ۳۲ بیتی برای زمان بیشتری باقی میماند. از آنجایی که لینوکس میخواهد دوست همه باشد، احتمالا تا دهههای آینده هم به پشتیبانی از کدهای ۳۲ بیتی ادامه میدهد. برای کامپیوترهای ویندوزی هم مسیر روشنی وجود ندارد و مشخص نیست که چه زمانی به طور کامل کدهای ۳۲ بیتی را کنار میگذارند.
منبع: Android Authority