微軟已開始測試在 Windows 上運行 Linux GUI 應用程式的支持

微軟宣布開始測試在基於 WSL2 子系統(Linux 的 Windows 子系統)的環境中使用圖形介面運行 Linux 應用程式的能力,該子系統旨在在 Windows 上運行 Linux 執行檔。 應用程式與主Windows 桌面完全集成,包括支援在「開始」功能表中放置快捷方式、音訊播放、麥克風錄音、OpenGL 硬體加速、在工作列中顯示有關程式的資訊、使用Alt-Tab 在程式之間切換、在Windows 之間複製資料- 透過剪貼簿和 Linux 程式。

微軟已開始測試在 Windows 上運行 Linux GUI 應用程式的支持

為了將 Linux 應用程式介面的輸出組織到主 Windows 桌面,使用了 Microsoft 開發的 RAIL-Shell 複合管理器,該管理器使用 Wayland 協定並基於 Weston 程式碼庫。 使用RDP-RAIL(本地整合的RDP 遠端應用程式)後端執行輸出,該後端與Weston 中先前可用的RDP 後端不同,因為複合管理器不會渲染桌面本身,而是透過RDP 重定向各個表面(wl_surface)用於在主 Windows 桌面上顯示的 RAIL 通道。 XWayland 用於運行 X11 應用程式。

微軟已開始測試在 Windows 上運行 Linux GUI 應用程式的支持

音訊輸出使用 PulseAudio 伺服器進行組織,該伺服器還使用 RDP 協定與 Windows 進行互動(rdp-sink 外掛程式用於音訊輸出,rdp-source 外掛程式用於輸入)。 複合伺服器、XWayland 和 PulseAudio 以名為 WSLGd 的通用迷你發行版的形式打包,其中包括用於抽象圖形和音訊子系統的元件,並且基於 CBL-Mariner Linux 發行版(也用於 Microsoft 雲端基礎設施) 。 WSLGd 使用虛擬化機制運行,virtio-fs 用於在 Linux 來賓環境和 Windows 主機系統之間共享存取。

FreeRDP作為WSLGd Linux環境下啟動的RDP伺服器,mstsc作為Windows端的RDP客戶端。 為了偵測現有的圖形 Linux 應用程式並將其顯示在 Windows 選單中,已準備好 WSLDVCPlugin 處理程序。 對於安裝在 WSL2 環境中的常規 Linux 發行版(例如 Ubuntu、Debian 和 CenOS),WSLGd 中運行的一組元件透過提供使用 Wayland、X11 和 PulseAudio 協定處理請求的套接字進行互動。 為 WSLGd 準備的綁定是根據 MIT 授權分發的。

安裝 WSLGd 需要 Windows 10 Insider Preview 版本至少為 21362。今後,WSLGd 將可用於常規版本的 Windows,而無需參與 Insider Preview 計畫。 WSLGd 的安裝是透過執行標準指令「wsl —install」來完成的,例如,對於 Ubuntu -「wsl —install -d Ubuntu」。 對於現有的 WSL2 環境,可以使用「wsl --update」命令安裝 WSLGd(僅支援使用 Linux 核心且不支援呼叫轉換的 WSL2 環境)。 圖形應用程式是透過發行版的標準套件管理器安裝的。

WSLGd 僅提供 2D 圖形輸出的引擎,為了加速基於 OpenGL 的 3D 圖形,WSL2 中安裝的發行版提供了虛擬 GPU (vGPU) 的使用。 為 AMD、Intel 和 NVIDIA 晶片提供了適用於 WSL 的 vGPU 驅動程式。 圖形加速是透過提供一個在 DirectX 12 上實現 OpenGL 的層來提供的。該層以 d3d12 驅動程式的形式設計,包含在 Mesa 21.0 的主要部分中,並與 Collabora 共同開發。

虛擬 GPU 在 Linux 中使用 /dev/dxg 裝置以及複製 Windows 核心的 WDDM(Windows 顯示驅動程式模型)D3DKMT 的服務來實現。 驅動程式使用 VM 匯流排建立與實體 GPU 的連線。 Linux 應用程式具有與本機 Windows 應用程式相同等級的 GPU 存取權限,無需在 Windows 和 Linux 之間共用資源。 在配備Intel GPU 的Surface Book Gen3 裝置上進行的效能測試表明,在本機Win32 環境中,Geeks3D GpuTest 測試展示了19 FPS,在使用vGPU 的Linux 環境中為18 FPS,在Mesa 中進行軟體渲染時為1 FPS。



來源: opennet.ru

添加評論