مایکروسافت آزمایش پشتیبانی از اجرای برنامه های رابط کاربری گرافیکی لینوکس در ویندوز را آغاز کرده است

مایکروسافت شروع آزمایش توانایی اجرای برنامه های لینوکس با رابط گرافیکی در محیط های مبتنی بر زیرسیستم WSL2 (Windows Subsystem for Linux) را که برای اجرای فایل های اجرایی لینوکس در ویندوز طراحی شده است، اعلام کرده است. برنامه ها به طور کامل با دسکتاپ اصلی ویندوز یکپارچه شده اند، از جمله پشتیبانی از قرار دادن میانبرها در منوی استارت، پخش صدا، ضبط میکروفون، شتاب سخت افزار OpenGL، نمایش اطلاعات برنامه ها در نوار وظیفه، جابجایی بین برنامه ها با استفاده از Alt-Tab، کپی کردن داده ها بین ویندوز. - و برنامه های لینوکس از طریق کلیپ بورد.

مایکروسافت آزمایش پشتیبانی از اجرای برنامه های رابط کاربری گرافیکی لینوکس در ویندوز را آغاز کرده است

برای سازماندهی خروجی رابط برنامه لینوکس به دسکتاپ اصلی ویندوز، از مدیر ترکیبی RAIL-Shell که توسط مایکروسافت با استفاده از پروتکل Wayland و بر اساس کد واستون توسعه یافته است، استفاده می شود. خروجی با استفاده از بک‌اند RDP-RAIL (RDP Remote Application Integrated Locally) انجام می‌شود، که با بک‌اند RDP که قبلاً در وستون موجود بود تفاوت دارد، زیرا مدیر ترکیبی خود دسک‌تاپ را رندر نمی‌کند، اما سطوح فردی (wl_surface) را روی RDP تغییر مسیر می‌دهد. کانال RAIL برای نمایش در دسکتاپ اصلی ویندوز. XWayland برای اجرای برنامه های X11 استفاده می شود.

مایکروسافت آزمایش پشتیبانی از اجرای برنامه های رابط کاربری گرافیکی لینوکس در ویندوز را آغاز کرده است

خروجی صدا با استفاده از سرور PulseAudio سازماندهی می شود، که همچنین با استفاده از پروتکل RDP با ویندوز تعامل دارد (افزونه rdp-sink برای خروجی صدا و افزونه rdp-source برای ورودی استفاده می شود). سرور کامپوزیت، XWayland و PulseAudio به شکل یک مینی توزیع جهانی به نام WSLGd بسته بندی شده اند که شامل اجزایی برای انتزاع کردن زیرسیستم های گرافیکی و صوتی است و بر اساس توزیع لینوکس CBL-Mariner است که در زیرساخت ابری مایکروسافت نیز استفاده می شود. . WSLGd با استفاده از مکانیزم های مجازی سازی اجرا می شود و virtio-fs برای اشتراک گذاری دسترسی بین محیط مهمان لینوکس و سیستم میزبان ویندوز استفاده می شود.

FreeRDP به عنوان یک سرور RDP راه اندازی شده در محیط لینوکس WSLGd استفاده می شود و mstsc به عنوان یک مشتری RDP در سمت ویندوز عمل می کند. برای شناسایی برنامه های گرافیکی لینوکس موجود و نمایش آنها در منوی ویندوز، یک کنترلر WSLDVCPlugin آماده شده است. با توزیع‌های معمولی لینوکس مانند Ubuntu، Debian و CenOS که در محیط WSL2 نصب شده‌اند، مجموعه‌ای از مؤلفه‌های در حال اجرا در WSLGd با ارائه سوکت‌هایی که درخواست‌ها را با استفاده از پروتکل‌های Wayland، X11 و PulseAudio رسیدگی می‌کنند، تعامل دارند. پیوندهای آماده شده برای WSLGd تحت مجوز MIT توزیع می شوند.

نصب WSLGd حداقل به نسخه 10 Windows 21362 Insider Preview نیاز دارد. در آینده، WSLGd برای نسخه های معمولی ویندوز بدون نیاز به شرکت در برنامه Insider Preview در دسترس خواهد بود. نصب WSLGd با اجرای دستور استاندارد "wsl —install" انجام می شود، به عنوان مثال، برای اوبونتو - "wsl —install -d Ubuntu". برای محیط‌های WSL2 موجود، نصب WSLGd با استفاده از دستور «wsl --update» انجام می‌شود (فقط محیط‌های WSL2 که از هسته لینوکس استفاده می‌کنند و ترجمه فراخوانی ندارند پشتیبانی می‌شوند). برنامه های گرافیکی از طریق مدیر بسته استاندارد توزیع نصب می شوند.

WSLGd فقط موتورهایی را برای خروجی گرافیک دوبعدی فراهم می کند و برای تسریع گرافیک سه بعدی مبتنی بر OpenGL، توزیع های نصب شده در WSL2 استفاده از یک GPU مجازی (vGPU) را ارائه می دهند. درایورهای vGPU برای WSL برای تراشه های AMD، Intel و NVIDIA ارائه شده است. شتاب گرافیکی از طریق ارائه یک لایه با اجرای OpenGL بر روی DirectX 3 ارائه می شود. این لایه در قالب درایور d2d12 طراحی شده است که در قسمت اصلی Mesa 3 قرار دارد و به طور مشترک با Collabora در حال توسعه است.

GPU مجازی در لینوکس با استفاده از دستگاه /dev/dxg با سرویس‌هایی که WDDM (مدل درایور نمایش ویندوز) D3DKMT هسته ویندوز را تکرار می‌کنند، پیاده‌سازی می‌شود. درایور با استفاده از گذرگاه VM با GPU فیزیکی ارتباط برقرار می کند. برنامه های لینوکس دارای همان سطح دسترسی GPU به برنامه های بومی ویندوز هستند، بدون نیاز به اشتراک منابع بین ویندوز و لینوکس. تست عملکرد روی دستگاه Surface Book Gen3 با پردازنده گرافیکی اینتل نشان داد که در محیط Win32 بومی، تست Geeks3D GpuTest 19 FPS، در محیط لینوکس با vGPU - 18 FPS و با رندر نرم افزار در Mesa - 1 FPS را نشان می دهد.



منبع: opennet.ru

اضافه کردن نظر