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