مایکروسافت جزئیاتی از اجرای ویندوز روی تراشههای 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 که امکان اجرای ویندزو را دارد، اسنپدراگون ۸۳۵ متعلق به شرکت کوالکام است. واضح است که این شرکت انحصار یا مالکیتی روی این موضوع ندارد و احتمال دارد بهزودی سایر رقبا مانند مدیاتک، انویدیا، سامسونگ و دیگران با همکاری مایکروسافت، کاری مشابه روی پردازندههای خود انجام دهند.