سؤالات مربوط به تلاش مایکروسافت برای اجرای ویندوز 10 روی پلتفرم ARM یکی پس از دیگری جواب داده می شوند. اولین بار اواخر سال 2016 بود که خبر همکاری با کوالکام از سوی ردموندی ها به گوش رسید و چندی پیش هم نخستین لپ تاپ های مجهز به چیپست اسنپدراگون 835 معرفی شدند، محصولاتی که قرار است بهار سال آینده ویترین فروشگاه ها را اشغال کنند.
در واقع هیچکس تا به امروز از این دستگاه ها استفاده نکرده تا از نحوه کارکرد آنها باخبر شود. حالا مایکروسافت اسنادی را در ارتباط با ویندوز 10 روی ARM منتشر کرده که محدودیت های این پلتفرم را به خوبی نشان می دهد.
قبل از پرداختن به این موارد، بهتر است ویندوز RT را به خاطر بیاورید که آخرین تلاش مایکروسافت برای اجرای ویندوز روی معماری ARM به شمار می رفت. این سیستم عامل بر پایه ویندوز 8 طراحی و عرضه شده بود، فقط می توانست اپلیکیشن های استور مایکروسافت را اجرا کند. داستان ویندوز 10 روی ARM کمی متفاوت است، چون این دستگاه ها با ویندوز 10S عرضه می شوند و بنابراین علاوه بر اپلیکیشن های استور، قادر به اجرای اپلیکیشن های Win32 نیز خواهند بود، ضمن اینکه امکان ارتقاء آنها به نسخه حرفه ای و کامل ویندوز 10 نیز وجود دارد.
در ادامه محدودیت های ویندوز 10 روی پردازنده های مبتنی بر معماری ARM را طبق اسناد جدید مایکروسافت مرور می کنیم.
اپلیکیشن های x64 اجرا نمی شوند
پیش از این هم می دانستیم که اپلیکیشن های 64 بیتی Win32 در این پلتفرم پشتیبانی نمی شوند. دلیلش هم این است که برابرساز (امولاتور) ویندوز روی ARM برای اجرای اپ های 32 بیتی، همان لایه برابرسازی است که مایکروسافت برای اجرای اپ های x86 روی دستگاه های 64 بیتی (x64) به کار می برد.
توسعه دهندگان می توانند تابع کتابخانه ای IsWow64Process2 را فراخوانی کنند. نسخه اولیه این تابع یعنی IsWow64Process می توانست اجرای یک اپلیکیشن 32 بیتی روی کامپیوتر 64 بیتی را شناسایی کند. این تابع فقط روی چیپ های اینتل کار می کند و در صورت نیاز، می تواند کاربر را به دانلود و نصب نسخه 64 بیتی اپلیکیشن هدایت نماید. چیپست های ARM نیز 64 بیتی هستند و توسعه دهندگان می توانند از این API جدید استفاده کنند.
خبری از Hyper-V نیست
یکی از ویژگی های کلیدی ویندوز 10 پرو یا نسخه ای از آن که با نام ویندوز 10S شناخته می شود، فناوری Hyper-V نام دارد. این قابلیت به کاربران اجازه می دهد ماشین های مجازی (VM) بسازند، عملی که با چند نرم افزار ثالث هم قابل انجام است. مایکروسافت می گوید Hyper-V روی ARM پشتیبانی نمی شود و کلاً ساختن ماشین مجازی روی این پلتفرم منتفی است، حتی اگر به اپ های ثالث متوسل شوید.
اپلیکیشن های موبایل به مشکل می خورند
پلتفرم یونیورسال ویندوز (UWP) به سبک جالبی طراحی شده. توسعه دهندگان قادرند یک اپلیکیشن را به شکل واکنش گرا (responsive) طراحی کنند. اپلیکیشن به پلتفرم های مختلف x84 یا x64 یا ARM کامپایل شده و در اختیار کاربر نهایی قرار می گیرد. به عبارت دیگر اگر اپلیکیشن به درستی ساخته شود، مایکروسافت می تواند پشتیبانی از x86 را به ویندوز 10 موبایل بیاورد، یا ویندوز 10 اصلی را به اجرای اپلیکیشن های ARM وادار کند، بدون اینکه توسعه دهندگان نیازی به بازسازی اپ ها داشته باشند.
با این حال، واضح است که تمام توسعه دهندگان این رویه را دنبال نمی کنند و برخی از آنها فقط موبایل را به عنوان دستگاه مبتنی بر پردازنده ARM در نظر می گیرند. این اپلیکیشن ها احتمالاً فقط با صفحه عمودی موبایل سازگارند و روی نمایشگر افقی کامپیوتر به درستی اجرا نمی شوند. دیگر ناسازگاری های رابط کاربری و حتی کرَش کردن کامل اپلیکیشن هم در این وضعیت به وجود می آیند. مشکل اصلی این است که چنین برنامه هایی فقط اقدام به فراخوانی API های مخصوص موبایل می کنند، عملی که روی کامپیوترهای شخصی مشکل ساز خواهد بود.
به فکر اجرای همه بازی ها نباشید
ویندوز روی آرم پشتیبانی محدودی از واسط OpenGL دارد
شاید برای اجرای بازی های محبوبتان روی لنوو میکس 630 (یکی از محصولات این پلتفرم با چیپست اسنپدراگون 835) لحظه شماری می کنید، اما بهتر است بدانید برخی از بازی ها به کل روی این پلتفرم اجرا نمی شوند. در واقع تمام بازی هایی که به واسط OpenGL بالاتر از نسخه 1.1 یا شتابدهنده سخت افزاری این API نیاز دارند، شانسی برای حضور در پلتفرم مورد بحث نخواهند داشت. البته بنا به گفته مایکروسافت، کامپیوترهای شخصی مبتنی بر ARM از دایرکت اکس 9 الی 12 پشتیبانی می کنند.
فقط درایورهای ARM64 نصب می شوند
در حالی که اپلیکیشن ها را می توان روی ARM برابرسازی کرد، اما برای درایورها چنین امکانی وجود ندارد. تمامی درایورهای حالت کرنل (KMDF)، حالت کاربر (UMDF) و همچنین درایورهای چاپ باید برای سازگاری با معماری سیستم عامل مقصد، از نو کامپایل شوند.
به عبارت دیگر اگر شما یک درایور مخصوص را برای استفاده کاربران توسعه داده اید، باید آن را دوباره برای پلتفرم ARM کامپایل کنید. اگر کاربر نهایی هستید هم برای نصب تجهیزات و لوازم جانبی نسبتاً قدیمی به مشکل بر می خورید.
شخصی سازی ویندوز به نتیجه نمی رسد
همان طور که مایکروسافت می گوید، اجزای بومی سیستم عامل را نمی توان روی اجزای غیربومی لود کرد. از جمله اپلیکیشن هایی که به تغییر سیستم عامل نیاز دارند می توان به ادیتورهای روش ورودی، فناوری های کمکی، برنامه های ذخیره ساز ابری و هر آنچه که به شخصی سازی پوسته (shell) نیاز دارد، اشاره کرد. اگر این برنامه ها نتوانند خطاهای حاصل از محدودیت ویندوز 10 روی ARM را مدیریت کنند، توانایی اجرای کامل را نخواهند داشت.
به احتمال زیاد شما هم انتظار ندارید که مایکروسافت به این زودی ها محدویت های فوق را رفع کند. مثلاً اجرای اپلیکیشن های x64 در آینده نزدیک کمی دور از ذهن است. از طرفی ردموندی ها ترجیح می دهند به جای Win32 روی آینده پلتفرم یونیورسال ویندوز (UWP) تمرکز کنند.
در حال حاضر تنها سخت افزار مبتنی بر معماری ARM که از نسخه کامل ویندوز 10 پشتیبانی می کند، چیپست اسنپدراگون 835 است اما از آنجا که معماری ARM در انحصار کوالکام نیست، رقبایی همچون مدیاتک، انویدیا، سامسونگ و دیگران نیز می توانند به زودی کامپیوترهایی مبتنی بر این پلتفرم را ارائه دهند، البته اگر به این کار علاقه داشته باشند.