ساغر هموله یکشنبه 29 بهمن 1396 03:38 ب.ظ نظرات ()

روزی كه مایكروسافت اعلام كرد ویندوز روی پردازنده‌های ARM قابل اجرا خواهد بود، سؤالات زیادی مطرح شد و حالا به‌مرور در حال پاسخگویی به آن‌ها است.

مایكروسافت جزئیاتی از اجرای ویندوز روی تراشه‌های ARM منتشر كرد

در دسامبر ۲۰۱۶ مایكروسافت همگان را شگفت‌زده كرد. نتیجه همكاری مایكروسافت با كوالكام، نسخه‌ای از ویندوز ۱۰ بود كه می‌توانست روی پردازنده‌‌های ARM نصب شود و برنامه‌های Win32 را نیز اجرا كند. یك سال بعد اولین دستگاه‌ها با این قابلیت رونمایی شدند. دستگاه‌های ارائه‌شده توسط شركت‌های مختلف، دارای تراشه مركزی اسنپدراگون ۸۳۵ كوالكام هستند و قرار است تا بهار سال ۲۰۱۸ وارد بازار شوند.

تاكنون افراد بسیار كمی این دستگاه‌ها را از نزدیك دیده و با آن‌ها كار كرده‌اند، بنابراین اطلاعات ما بیشتر از سمت تولیدكنندگان این محصولات و مایكروسافت به دست آمده است. به‌تازگی مایكروسافت با ارائه یك سری مستندات، توضیحاتی درباره محدودیت‌های دستگاه‌های ویندوزی مبتنی بر پردازنده‌های ARM ارائه كرده است.

مایكروسافت در تلاش قبلی‌اش نسخه‌ای از ویندوز ۸ با عنوان RT معرفی كرده بود. این نسخه كه روی اولین دستگاه‌های سرفیس نصب بود، تنها می‌توانست برنامه‌هایی را اجرا كند كه در فروشگاه اختصاصی مایكروسافت قرار داشتند. اما حالا اوضاع فرق كرده و ویندوز ۱۰ اس كه روی دستگاه‌های مبتنی بر ARM به‌صورت پیش‌فرض نصب است، امكان اجرای برنامه‌های فروشگاه مایكروسافت را دارد؛ با این تفاوت كه تعدادی از نرم‌افزارهای Win32 كه برای استور بازسازی شده‌اند نیز در فروشگاه مایكروسافت قرار گرفته است و البته این نسخه قابلیت ارتقاء به نسخه پرو نیز دارد. اما با سابقه‌ای كه از ویندوز آرتی در ذهن‌ها به جا مانده است، كنجكاویم ببینیم ویندوز ۱۰ اس برای اجرا روی پردازنده‌های ARM چه محدودیت‌هایی دارد.

اپلیكیشن‌های x64 اجرا نمی‌شوند

اولین محدودیتی كه همه ما از آن آگاه هستیم عدم اجرای برنامه‌های نوشته‌شده برای نسخه ۶۴ بیتی ویندوز یا همان x64‌ است؛ چراكه شبیه‌ساز استفاده‌شده برای اجرای برنامه‌های Win32 روی ARM، همان شبیه‌سازی است كه برنامه‌های Win32 را روی پردازنده‌های x64 اجرا می‌كند (Windows on Windows-WoW). همانطور كه مشخص است، شبیه‌ساز ذكرشده فقط امكان اجرای برنامه‌های نوشته‌شده برای نسخه ۳۲ بیتی ویندوز را دارد و از اجرای برنامه‌های ۶۴ بیتی عاجز است.

خبری از Hyper-V نیست

یكی از قابلیت‌های ویندوز ۱۰ پرو یا نسخه‌ای از آن كه با عنوان ویندوز ۱۰ اس شناخته می‌شود، قابلیت Hyper-V است. این ویژگی به كاربران اجازه می‌دهد با استفاده از نرم‌افزارهای جانبی، یك رایانه مجازی (Virtual Machine) روی سیستم عامل خود اجرا كنند. بر اساس مستندات منتشرشده، این قابلیت در پردازنده‌های ARM پشتیبانی نخواهد شد و حتی نرم‌افزارهای جانبی نمی‌توانند آن را برای كاربران فراهم كنند.

مشكل در اجرای اپلیكیشن‌های موبایل

مایكروسافت برنامه‌های یكپارچه (Universal Application) را معرفی كرد تا راهكاری برای برنامه‌نویسی و اجرای یك برنامه روی همه دستگاه‌های ویندوزی ارائه كند. از این طریق توسعه‌دهندگان می‌توانند برنامه را به‌صورت واكنش‌گرا (همانند صفحات وب) بنویسند. این برنامه برای همه پردازنده‌های x86، x64 و ARM كامپایل و روی آن‌ها اجرا می‌شوند. در واقع مایكروسافت با ارائه این راهكار قصد داشت برنامه‌های ویندوز ۱۰ را روی گوشی هوشمند قابل اجرا كند یا به عبارت دیگر، اجرای برنامه‌های رایانه را تا دستگاه‌ها مبتنی بر ARM گسترش دهد، بدون این‌كه توسعه‌دهندگان نیازی به بازنویسی كد خود داشته باشند.

اما همه توسعه‌دهندگان بهترین استفاده را از این راهكار مایكروسافت نكردند. بسیاری از آن‌ها برنامه خود را با این فرض نوشته‌اند كه دستگاه‌های دارای پردازنده ARM حتماگوشی هوشمند هستند؛ بنابراین برنامه‌های آن‌ها ممكن است به‌صورت افقی اجرا شود، دارای ایراد در رابط كاربری باشد یا پس از اجرا بسته شود. یكی از دلایلی كه موجب این ایرادها می‌شود می‌تواند استفاده از API‌ اختصاصی گوشی هوشمند باشد. برای مثال فراخوانی تابع HardwareButtons می‌تواند ایجاد مشكل كند.

بعضی بازی‌ها اجرا نمی‌شوند

معلوم نیست كاربران لنوو Miix 630‌ بخواهند چه بازی‌هایی را روی پردازنده اسنپدراگون ۸۳۵ این دستگاه اجرا كنند، اما طبق گفته مایكروسافت، بازی‌هایی كه نیاز به نسخه‌های بالاتر از OpenGL 1.1 دارند یا از شتاب‌دهنده سخت‌افزاری OpenGL استفاده می‌كنند، روی این دستگاه اجرا نمی‌شوند.

مایكروسافت گفته است بازی‌هایی كه از درایور ضد تقلب استفاده می‌كنند نیز روی این دستگاه‌ها كار نخواهند كرد. رایانه‌های مبتنی بر ARM از نسخه های ۹ تا ۱۲ DirectX پشتیانی خواهند كرد.

 فقط درایورهای ARM64 كار می‌كنند

نرم‌افزارها را می‌توان برای اجرا روی پردازنده ARM شبیه‌سازی كرد؛ اما درایورها را نه! تمام درایورهای سطح كرنل، درایورهای سطح كاربر، درایورهای سطح فریم‌ورك و درایورهای پرینت باید به‌صورت اختصاصی برای نسخه مبتنی بر معماری ARM سیستم عامل كامپایل شوند.

به عبارت دیگر، اگر شما یك درایور نوشته باشید و بخواهید افراد بتوانند از آن روی رایانه‌های مبتنی بر ARM خود استفاده كنند، باید آن را برای معماری ARM كامپایل كنید و در اختیار آنان قرار دهید. این امر ممكن منجر به غیر قابل استفاده شدن بسیاری از ابزارهای جانبی قدیمی و خارج از پشتیبانی شود.

ممكن است اپلیكیشن‌های سفارشی‌سازی ویندوز كار نكنند

مایكروسافت در مستندات جدید به این نكته اشاره كرده  است كه « اجزای بومی سیستم عامل نمی‌توانند اجزای غیربومی را اجرا كنند.» برنامه‌های سفارشی‌كننده سیستم‌عامل شامل برنامه‌های ویرایش‌گر روش‌های ورودی (input method editors)، فناوری‌های كمك‌كننده (Assistive Technologies) و برنامه‌های ذخیره ابری هستند. به عبارت دیگر هر چیزی كه بخواهد shell ویندوز را تغییر بدهد ممكن روی پردازنده‌های ARM اجرا نشود.

انتظار نمی‌رود كه این محدودیت‌ها در آینده نزدیك برداشته یا رفع شود. برای مثال مایكروسافت برای اجرای برنامه‌های x64 روی رایانه‌های مبتنی بر ARM تلاشی نخواهد كرد؛ چراكه می‌خواهد توسعه‌دهندگان را تشویق كند از برنامه‌های Win32 به سمت برنامه‌های یكپارچه ویندوزی بروند.

در حال حاضر تنها پردازنده ARM كه امكان اجرای ویندزو را دارد، اسنپدراگون ۸۳۵ متعلق به شركت كوالكام است. واضح است كه این شركت انحصار یا مالكیتی روی این موضوع ندارد و احتمال دارد به‌زودی سایر رقبا مانند مدیاتك، انویدیا، سامسونگ و دیگران با همكاری مایكروسافت،  كاری مشابه روی پردازنده‌های خود انجام دهند.