روزی که مایکروسافت اعلام کرد که ویندوز بر روی پردازندههای ARM قابل اجرا خواهد بود، سوالات زیادی مطرح شد. این سوالات عمدتا درباره چگونگی نصب و اجرای خود ویندوز، نرمافزارها و کیفیت آن بود. حالا با گذشت زمان مایکروسافت به مرور در حال پاسخگویی به این سوالات است.
در دسامبر ۲۰۱۶ مایکروسافت همگان را شگفت زده کرد. نتیجه همکاری مایکروسافت با کوالکام نسخهای از ویندوز ۱۰ بود که میتوانست روی پردازندههای ARM نصب شده و برنامههای Win32 را نیز اجرا کند. یک سال بعد اولین دستگاهها با این قابلیت رونمایی شدند. دستگاههای ارائه شده توسط شرکتهای مختلف دارای تراشه مرکزی اسنپدراگون ۸۳۵ کوالکام هستند که قرار است تا بهار سال جاری (۲۰۱۸) وارد بازار شوند.
تاکنون افراد بسیار کمی این دستگاهها را از نزدیک دیده و با آنها کار کردهاند، بنابراین اطلاعات ما بیشتر از سمت تولیدکنندگان این محصولات و خود مایکروسافت به دست آمده است. به تازگی نیز مایکروسافت با ارائه یک سری مستندات، توضیحاتی درباره محدودیتهای دستگاههای ویندوزی مبتنی بر پردازندههای ARM ارائه کرده است.
مقالههای مرتبط:اگر یادتان باشد مایکروسافت در تلاش قبلیاش نسخه دیگری از ویندوز ۸ با عنوان RT معرفی کرده بود. این نسخه که بر روی اولین دستگاههای سرفیس نصب بود تنها میتوانست برنامههایی را اجرا کند که بر روی فروشگاه اختصاصی مایکروسافت (Store) قرار داشتند. اما حالا اوضاع فرق کرده، نسخه جدید ویندوز ۱۰ اس نام دارد، بر روی دستگاههای مبتنی بر 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 که امکان اجرای ویندزو را دارد اسنپدراگون ۸۳۵ متعلق به شرکت کوالکام است. واضح است که این شرکت انحصار یا مالکیتی روی این موضوع ندارد و احتمال دارد به زودی سایر رقبا مانند مدیاتک، انویدیا، سامسونگ و دیگران نیز کاری مشابه بر روی پردازندههای خود با همکاری مایکروسافت انجام دهند.