مرگ اپلیکیشن های 32 بیتی چه معنایی برای اندروید و اپل دارد؟
به گزارش مجله خزرکوه، شرکت 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
منبع: دیجیکالا مگ