مرگ معماری ۳۲ بیتی برای اندروید و آی‌اواس چه معنایی دارد مصطفی عسگری

معماری ۳۲ بیتی روزهای آخر خود را می‌گذارند و نبود آن روی اندروید، آی‌اواس و دیگر سیستم‌‌های عامل‌ تأثیر خواهد گذاشت.

به گزارش Androidauthority، اخیراً آرم (ARM) اعلام کرده است که سال ۲۰۲۳، تمام هسته‌های پردازشی جدید که برای گوشی‌ هوشمند تولید می‌شوند، فقط ۶۴ بیتی خواهند بود و دیگر  معماری ۳۲ بیتی پشتیبانی نمی‌شود. از سال ۲۰۱۳ که اپل پردازنده ۶۴ بیتی A7 را در آیفون 5s گنجاند، تجربه استفاده از پردازنده‌های هوشمند ۶۴ بیتی را داشته‌ایم. اندکی بعد پردازنده‌های ۶۴ بیتی به اندروید آمدند؛ اما همه آن‌ها می‌توانستند هر دو  معماری ۳۲ و ۶۴ بیتی را اجرا کنند؛ بنابراین  ما از تنها ۳۲ بیتی، به دوره ۳۲ و ۶۴ بیتی و در نهایت فقط ۶۴ بیتی رسیدیم؛ اما چنین واقعیتی برای اندروید به چه معنا است؟ در این مقاله توضیحاتی درباره موضوع مذکور ارائه شده است.

بیت و بایت

در گوشی هوشمند، هر پیکسل، هر بیت از داده‌های ارسال‌شده از طریق اینترنت، هر فایل ذخیره‌شده در حافظه فلش، هر صدای پخش‌شده و هر لمس روی صفحه‌نمایش، به شکل عدد پردازش می‌شود. قسمت عمده پردازش بر عهده CPU است و با کمک سایر مؤلفه‌ها مانند GPU انجام می‌شود.

پردازنده این اعداد را به‌صورت باینری ذخیره می‌کند و فضای اختصاص‌یافته برای آن‌ها توسط واحد بیت اندازه‌گیری می‌شود. بیت‌‌ها، صفر و یک باینری هستند. هشت بیت می‌تواند هر عددی بین صفر تا ۲۵۵، ۱۶ بیت از صفر تا ۶۵,۵۳۵ و ۳۲ بیت از صفر تا ۴,۲۹۴,۹۶۷,۲۹۵ (۴ گیگابایت) را نشان بدهد.

پشتیبانی نسخه ۶۴ بیتی در Armv8 معرفی شد و با Armv9 ادامه پیدا می‌کند. هر دوی این‌ها به‌صورت اختیاری با معماری ۳۲ بیتی پیشین آرم نیز سازگار هستند. این بدان معنی است که در اصل پردازنده‌های Cortex-A می‌توانند بلاک‌های ۳۲ و ۶۴ بیتی داده را اجرا کنند و بین آن‌ها جابه‌جا شوند. کاربران هیچ تفاوتی بین معماری ۳۲ بیتی و ۶۴ بیتی مشاهده نکرده‌اند. در حقیقت  اولین Armv8 SoC سامسونگ، اگزینوس ۵۴۳۳ بود که در گلکسی نوت ۴ به کار رفت. این دستگاه چهار هسته Cortex-A57 و چهار هسته Cortex-A53 داشت؛ اما تنها در حالت ۳۲ بیتی مورد استفاده قرار می‌گرفت.

با گذشت سال‌ها، همه چیز ظریف‌تر شده است. آرم دارای هسته‌های Cortex-A مبتنی بر Armv8 است که بعضی از آن‌ها ۳۲ بیتی (مانند Cortex-A32) و برخی دیگر ۶۴ بیتی (مانند Cortex-A34 و Cortex-A65) هستند. شاید در مورد این پردازنده چیزی نشنیده باشید؛ زیرا در هیچ گوشی هوشمندی استفاده نشد‌ه‌ است.

در Cortex-X2 و Cortex-A510، پشتیبانی از معماری ۳۲ بیتی حذف شده است؛ بنابراین باید سیستم‌عامل ۶۴ بیتی و اپلیکیشن‌های ۶۴ بیتی را اجرا کنید؛ اما Cortex-A710 پشتیبانی از معماری ۳۲ بیتی را حفظ می‌کند؛ به این معنی که هر اپلیکیشن ۳۲ بیتی مجبور است روی آن اجرا شود.

۶۴ بیتی شدن تمام پردازنده‌های Cortex-A تا سال ۲۰۲۳

آرم در مورد انتقال به پردازنده‌هایی که تنها از حالت ۶۴ بیتی پشتیبانی می‌کنند دو جمله بیان کرده است. این شرکت ابتدا گفت تا سال ۲۰۲۲ تمام پردازنده‌های بزرگ‌ آن ۶۴ بیتی خواهند بود؛ اما چند ماه بعد در بیانیه‌ای اعلام کرد که این اتفاق در سال ۲۰۲۳ رخ خواهد داد. این اطلاع‌رسانی و آماده کردن کاربران برای شرایط جدید منطقی به نظر می‌رسد؛ البته تا زمانی که به یاد نداشته باشید در حال حاضر Cortex-A510 (پردازنده LITTLE) ۶۴ بیتی است. پس چرا آرم دو بازه زمانی مختلف اعلام کرده است؟ احتمالاً این شرکت قصد دارد تا سال ۲۰۲۲ یک نسخه ۳۲ بیتی از همین مدل معرفی کند و پس از آن همه چیز ۶۴ بیتی خواهد بود.

نکته قابل ذکر این است که ما در مورد Cortex-A (پردازنده‌های تلفن‌ هوشمند، تبلت‌، کروم‌بوک‌ و موارد مشابه) صحبت می‌کنیم نه پردازنده‌های Cortex-M از محدوده میکروکنترلر آرم که عملکرد متفاوتی دارند. در واقع Armv8-M تنها از حالت ۳۲ بیتی پشتیبانی می‌کند.

این مسئله برای اندروید چه معنایی دارد

خبر خوب اینکه اندروید ۶۴ بیتی یک فناوری پیشرفته است و با قطع کامل پشتیبانی از حالت ۳۲ بیتی، هیچ اتفاق عجیبی و بزرگ رخ نخواهد داد.

اولین نسخه کاملاً سازگار ۶۴ بیتی این سیستم‌عامل، اندروید ۵ (آب‌نبات چوبی) بود. این نسخه که در سال ۲۰۱۴ منتشر شد، پشتیبانی از پردازنده‌های ۶۴ بیتی اینتل و تراشه‌های ۶۴ بیتی آرم را به گوشی‌های اندرویدی اضافه کرد. از آگوست ۲۰۱۹، همه اپلیکیشن‌های گوگل پلی باید از حالت ۶۴ بیتی پشتیبانی کنند. تمام موتورهای بازی‌سازی محبوب از جمله Unreal (در سال ۲۰۱۵)، Cocos2d (در سال ۲۰۱۵) و Unity (در سال ۲۰۱۸) به منظور کمک به توسعه‌دهندگان برای پشتیبانی از حالت ۶۴ بیتی، دست به کار شدند. از اول آگوست ۲۰۲۱، گوگل پلی خدمات اپ‌های بدون نسخه ۶۴ بیتی را روی دستگاه‌های دارای ظرفیت ۶۴ بیت متوقف می‌کند؛ به این معنی که دیگر در فروشگاه اپلیکیشن این گوشی‌های هوشمند در دسترس نخواهند بود.

گوگل ابزارهای مختلف و اسناد زیادی برای آماده‌سازی توسعه‌دهندگان اپلیکیشن برای تغییر به حالت ۶۴ بیتی فراهم کرده است. برای بهینه‌سازی بسیاری از اپ‌ها کار کمی مورد نیاز است؛ زیرا نمونه‌های نوشته‌شده با جاوا یا کوتلین نیازی به تغییر ندارند؛ اما باید اطمینان حاصل شود که اپ‌های توسعه‌یافته با استفاده از موتور بازی یا SDK شخص ثالث، از آخرین نسخه‌های ۶۴ بیتی استفاده می‌کنند.

دستگاه‌های دارای اندروید ۶۴ بیتی چندین سال است به بازار عرضه می‌شوند و گوگل برای اطمینان از در دسترس بودن اپلیکیشن‌های ۶۴ بیتی در فروشگاه پلی تلاش می‌کند؛ در نتیجه تغییر نهایی به این نسخه بدون هیاهو انجام می‌شود.

این مسئله برای آی‌اواس چه معنایی دارد

اپل از زمان آیفون 5S در سخت‌افزار و نرم‌افزارهای خود از حالت ۶۴ بیت پشتیبانی می‌کند. در فوریه ۲۰۱۵، این شرکت اعلام کرد که همه اپلیکیشن‌های آی‌اواس باید از حالت ۶۴ بیتی پشتیبانی کنند. در سال ۲۰۱۷، این شرکت کوپرتینویی گفت اپ‌های ۳۲ بیتی از iOS 11 به بعد کار نمی‌کنند. در آن زمان، اپل به‌طور کامل حالت ۳۲ بیتی را فراموش کرد و تمام پردازنده‌های آن از Apple A11 (که تنها در آیفون ۸ و X یافت می‌شود) ۶۴ بیتی هستند.

در macOS داستان به همین شکل است. سیستم‌عامل دسکتاپ اپل از 10.7 Lion به بعد تنها با حالت ۶۴ بیتی عرضه می‌شود. از سال ۲۰۱۸، همه اپ‌های جدید ارسال‌شده به فروشگاه App Mac از ۶۴ بیت پشتیبانی می‌کنند. این بخش نیز با انتشار macOS 10.15 Catalina در سال ۲۰۱۹، مانند iOS، به‌طور کامل حالت ۳۲ بیتی را فراموش کرد. امروزه macOS 11 در اینتل و آرم تنها از حالت ۶۴ بیتی پشتیبانی می‌کند. پردازنده M1 64 بیتی است.

آینده از آن ۶۴ بیتی‌ها است

همه پردازنده‌های Cortex-A از سال ۲۰۲۳ تنها حالت ۶۴ بیتی خواهند داشت. در حال حاضر اندروید از ۶۴ بیت پشتیبانی می‌کند و در حال انتقال اپلیکیشن‌های خود به این سمت است؛ بنابراین بعید به نظر می‌رسد که هیچ تفاوتی مشاهده کنیم و تغییرات بسیار روان اعمال خواهند شد. اگر کاربر محصولات اپل هستید، تغییر به نسخه ۶۴ بیتی قبلاً روی آی‌او‌اس و مک‌اواس رخ داده است. هیچ اطلاعاتی درباره بروز مشکل هنگام این تغییرات گزارش نشده است.

برای سایر معماری‌های پردازنده و سایر سیستم‌های عامل‌ مانند ویندوز و لینوکس، پشتیبانی از حالت ۳۲ بیتی برای مدت طولانی‌تری وجود خواهد داشت. لینوکس می‌خواهد دوست همه باشد؛ بنابراین پشتیبانی ۳۲ بیتی احتمالاً برای دهه‌های آینده باقی خواهد ماند؛ اما در حوزه ویندوز روی پردازنده‌های x86-64 همه چیز کمی گنگ است و باید منتظر بمانیم تا تصمیم‌های نهایی اعلام شوند.