夢晨 蕭簫 發(fā)自 凹非寺
量子位 報道 | 公眾號 QbitAI
現(xiàn)在,Windows不僅是最好的Linux發(fā)行版,還是最好的Linux桌面了。
怎么回事?
原來是Windows官方的Linux子系統(tǒng)(WSL),終于支持Linux GUI了!
也就是說,你現(xiàn)在可以直接在Windows系統(tǒng)中運行喜歡的GUI編輯器&工具,來構建和測試Linux應用程序。
所以在“咕咕咕”一年后,微軟終于實現(xiàn)了去年Build開發(fā)者大會上立下的flag:
- 在Windows里運行Linux的IDE開發(fā)Linux程序
- 在Windows里運行只支持Linux的GUI程序,或者在Linux環(huán)境測試你的程序
- 支持GPU 3D加速
……
那么,實際上手體驗后,效果究竟如何呢?我們幫你測試了一下。
使用體驗
要使用wslg,首先要加入Windows預覽體驗計劃,并選擇Dev渠道。
接下來將系統(tǒng)升級到最新預覽版。
如果已經安裝過WSL直接運行“wsl —update”就可以了。如果沒有安裝過,運行“wsl —install”就會默認安裝最新帶WSLg的版本。
△不指定發(fā)行版的話默認安裝Ubuntu
下載好之后需要重啟,重啟后就會自動安裝了。
在Linux子系統(tǒng)里裝了幾個基礎程序后回到Windows一看,好家伙,直接出現(xiàn)在開始菜單里了。
△但是圖標怎么都是小企鵝?
隨便打開一個Gnome文件管理器試試。
拖動窗口和拖拽選取的時候還是能明顯感覺到有一點掉幀(Surface Book 2)。
接下來安裝VS Code的WSL插件。
在WSL里裝個PyQt,寫個最簡單的demo,成功運行,跨平臺調試以后就方便了。
電腦配置好的話也可以在WSL里安裝Linux環(huán)境的開發(fā)工具。已經有人試過Pycharm的社區(qū)版是可以運行的。
調試的時候如果出現(xiàn)錯誤,安裝一些依賴就行。
sudo apt-get install build-essential autoconf libtool
“最棒的Linux桌面”
這個名為WSLg的功能,目前相關代碼已經開源,geek們又有的玩了。
具體到顯示服務上,WSLg同時支持X11和Wayland兩種協(xié)議,能通過微軟內置的遠程桌面進行連接。
據(jù)微軟表示,相比之前的第三方實現(xiàn),WSLg更加穩(wěn)定方便。(畢竟是官方欽定)
WSLg基本上是以Wayland為基礎開發(fā)的一個Linux桌面,并通過托管XWayland服務器,來支持X11應用程序。
微軟選擇了Weston,來作為WSLg的核心,即Wayland合成器的參考實現(xiàn),包括一個重度擴展的RDP后端、一個RAIL/VAIL shell和一個X Window管理器。
換而言之,如果一個Linux程序能在Linux的Weston合成器中正常工作,那它也能在WSLg中正常工作。
如下圖,是WSLg的整體結構。
這一架構的部分技術細節(jié)如下:
首先,是重度擴展RDP后端實現(xiàn)的功能。
例如,遠程傳輸能在單個窗口顯示,而非整個桌面。開發(fā)者采用RDP RAIL技術,將遠程Linux應用程序集成到本地桌面上;同時,采用VAIL技術進行傳輸,在主機和客戶端之間共享內存。
又或者,讓Linux應用程序能在Windows桌面上實現(xiàn)縮放,以支持多顯示器配置,同時支持單個顯示器的DPI(圖像輸出分辨率)縮放。
值得一提的是,這次還增加了剪貼板功能,能在Linux和Windows應用程序之間直接復制文本、html和位圖數(shù)據(jù),比虛擬機更方便。當然,目前還不支持拖放操作。
然后,這次還增加了對音頻輸入和輸出的支持。
開發(fā)者編寫了小型插件,用于在PulseAudio和RDP后端之間傳輸音頻數(shù)據(jù),讓音頻流通過RDP傳輸集成到本地或遠程RDP客戶端。
此外,還有后臺 (用于啟動、暫停Weston核心,以及建立到主機的RDP連接,并在傳輸中止時重啟)、以及應用程序管理插件 (卸載、安裝Linux應用)等功能。
不過,目前的“預覽版”WSLg,仍然采用服務器端來移動和調整窗口大小,導致窗口移動和調整不像在本地操作一樣流暢。
軟件以外,WSLg還支持OpenGL應用程序的加速,可以運行更復雜的3D應用程序。
微軟員工Steve Pronost做了一個簡單的性能測試,獨立顯卡和核顯加速效果都很明顯。
而在今年早些時候,微軟還在WSL中加入了機器學習的API DirectML。
加上現(xiàn)在GPU和Linux GUI應用程序也都已經支持,在WSL2上能直接運行英偉達CUDA加速功能,可以加速cuDNN、cuBLAS、TensorRT等CUDA-X庫。
這意味著開發(fā)者能直接在WSL上訓練神經網(wǎng)絡,不必再單獨安裝一個Linux系統(tǒng)了。
WSLg的開發(fā)人員表示,他們會繼續(xù)完善這個項目,改進用戶體驗。
套娃開始
現(xiàn)在Windows可以運行Linux程序了,Linux也早就能運行Windows程序了。
腦洞大的網(wǎng)友想到這已經坐不住了:如果在WSL下運行Wine,是不是等于套娃了一個Windows?
先來一個簡單的,在WSLg里的Linux下跑一個Wine下的IE。
注意看時間,8分鐘以后,這事就收不住了:WSLg下Linux的Chrome里跑一個JavaScript寫的Windows3.1。
另外有消息稱,微軟在WSL的基礎上正在開發(fā)安卓子系統(tǒng)。
沒想到Windows成了一個“膠水操作系統(tǒng)”。
參考鏈接:
[1]https://devblogs.microsoft.com/commandline/the-initial-preview-of-gui-app-support-is-now-available-for-the-windows-subsystem-for-linux-2/
[2]https://devblogs.microsoft.com/commandline/wslg-architecture/
[3]https://www.hanselman.com/blog/can-you-really-develop-with-linux-gui-apps-on-windows-10-with-wslg-how-about-pycharm
[4]https://twitter.com/shanselman/status/1385381521679286276
— 完 —
量子位 QbitAI · 頭條號簽約
關注我們,第一時間獲知前沿科技動態(tài)
版權聲明:本文內容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權/違法違規(guī)的內容, 請發(fā)送郵件至 舉報,一經查實,本站將立刻刪除。