晨 蕭簫 發(fā)自 凹非寺
量子位 報道 | 公眾號 QbitAI
現(xiàn)在,Windows不僅是最好的Linux發(fā)行版,還是最好的Linux桌面了。
怎么回事?
原來是Windows官方的Linux子系統(tǒng)(WSL),終于支持Linux GUI了!
也就是說,你現(xiàn)在可以直接在Windows系統(tǒng)中運行喜歡的GUI編輯器&工具,來構(gòu)建和測試Linux應(yīng)用程序。
所以在“咕咕咕”一年后,微軟終于實現(xiàn)了去年Build開發(fā)者大會上立下的flag:
……
那么,實際上手體驗后,效果究竟如何呢?我們幫你測試了一下。
要使用WSLg,首先要加入Windows預(yù)覽體驗計劃,并選擇Dev渠道。
接下來將系統(tǒng)升級到最新預(yù)覽版。
如果已經(jīng)安裝過WSL直接運行“wsl —update”就可以了。如果沒有安裝過,運行“wsl —install”就會默認(rèn)安裝最新帶WSLg的版本。
△不指定發(fā)行版的話默認(rèn)安裝Ubuntu
下載好之后需要重啟,重啟后就會自動安裝了。
在Linux子系統(tǒng)里裝了幾個基礎(chǔ)程序后回到Windows一看,好家伙,直接出現(xiàn)在開始菜單里了。
△但是圖標(biāo)怎么都是小企鵝?
隨便打開一個Gnome文件管理器試試。
拖動窗口和拖拽選取的時候還是能明顯感覺到有一點掉幀(Surface Book 2)。
接下來安裝VS Code的WSL插件。
在WSL里裝個PyQt,寫個最簡單的demo,成功運行,跨平臺調(diào)試以后就方便了。
電腦配置好的話也可以在WSL里安裝Linux環(huán)境的開發(fā)工具。已經(jīng)有人試過Pycharm的社區(qū)版是可以運行的。
調(diào)試的時候如果出現(xiàn)錯誤,安裝一些依賴就行。
sudo apt-get install build-essential autoconf libtool
這個名為WSLg的功能,目前相關(guān)代碼已經(jīng)開源,geek們又有的玩了。
具體到顯示服務(wù)上,WSLg同時支持X11和Wayland兩種協(xié)議,能通過微軟內(nèi)置的遠(yuǎn)程桌面進(jìn)行連接。
據(jù)微軟表示,相比之前的第三方實現(xiàn),WSLg更加穩(wěn)定方便。(畢竟是官方欽定)
WSLg基本上是以Wayland為基礎(chǔ)開發(fā)的一個Linux桌面,并通過托管XWayland服務(wù)器,來支持X11應(yīng)用程序。
微軟選擇了Weston,來作為WSLg的核心,即Wayland合成器的參考實現(xiàn),包括一個重度擴展的RDP后端、一個RAIL/VAIL shell和一個X Window管理器。
換而言之,如果一個Linux程序能在Linux的Weston合成器中正常工作,那它也能在WSLg中正常工作。
如下圖,是WSLg的整體結(jié)構(gòu)。
這一架構(gòu)的部分技術(shù)細(xì)節(jié)如下:
首先,是重度擴展RDP后端實現(xiàn)的功能。
例如,遠(yuǎn)程傳輸能在單個窗口顯示,而非整個桌面。開發(fā)者采用RDP RAIL技術(shù),將遠(yuǎn)程Linux應(yīng)用程序集成到本地桌面上;同時,采用VAIL技術(shù)進(jìn)行傳輸,在主機和客戶端之間共享內(nèi)存。
又或者,讓Linux應(yīng)用程序能在Windows桌面上實現(xiàn)縮放,以支持多顯示器配置,同時支持單個顯示器的DPI(圖像輸出分辨率)縮放。
值得一提的是,這次還增加了剪貼板功能,能在Linux和Windows應(yīng)用程序之間直接復(fù)制文本、html和位圖數(shù)據(jù),比虛擬機更方便。當(dāng)然,目前還不支持拖放操作。
然后,這次還增加了對音頻輸入和輸出的支持。
開發(fā)者編寫了小型插件,用于在PulseAudio和RDP后端之間傳輸音頻數(shù)據(jù),讓音頻流通過RDP傳輸集成到本地或遠(yuǎn)程RDP客戶端。
此外,還有后臺 (用于啟動、暫停Weston核心,以及建立到主機的RDP連接,并在傳輸中止時重啟)、以及應(yīng)用程序管理插件 (卸載、安裝Linux應(yīng)用)等功能。
不過,目前的“預(yù)覽版”WSLg,仍然采用服務(wù)器端來移動和調(diào)整窗口大小,導(dǎo)致窗口移動和調(diào)整不像在本地操作一樣流暢。
軟件以外,WSLg還支持OpenGL應(yīng)用程序的加速,可以運行更復(fù)雜的3D應(yīng)用程序。
微軟員工Steve Pronost做了一個簡單的性能測試,獨立顯卡和核顯加速效果都很明顯。
而在今年早些時候,微軟還在WSL中加入了機器學(xué)習(xí)的API DirectML。
加上現(xiàn)在GPU和Linux GUI應(yīng)用程序也都已經(jīng)支持,在WSL2上能直接運行英偉達(dá)CUDA加速功能,可以加速cuDNN、cuBLAS、TensorRT等CUDA-X庫。
這意味著開發(fā)者能直接在WSL上訓(xùn)練神經(jīng)網(wǎng)絡(luò),不必再單獨安裝一個Linux系統(tǒng)了。
WSLg的開發(fā)人員表示,他們會繼續(xù)完善這個項目,改進(jìn)用戶體驗。
現(xiàn)在Windows可以運行Linux程序了,Linux也早就能運行Windows程序了。
腦洞大的網(wǎng)友想到這已經(jīng)坐不住了:如果在WSL下運行Wine,是不是等于套娃了一個Windows?
先來一個簡單的,在WSLg里的Linux下跑一個Wine下的IE。
注意看時間,8分鐘以后,這事就收不住了:WSLg下Linux的Chrome里跑一個JavaScript寫的Windows3.1。
另外有消息稱,微軟在WSL的基礎(chǔ)上正在開發(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 · 頭條號簽約
關(guān)注我們,第一時間獲知前沿科技動態(tài)
前,我寫過一個“WordPress的靜態(tài)化方法”,使用的是一個名為cos-html-cache的插件實現(xiàn)。
這個插件非常簡潔小巧,直接在原網(wǎng)站上生成首頁和文章頁的html文件,不過,這個插件只支持文章靜態(tài)化,不支持頁面、標(biāo)簽和分類的靜態(tài)化,之后也再沒有過更新。
后來,我想到過利用WordPress插件導(dǎo)出全靜態(tài)化網(wǎng)站的方法,用這個方法,對于少量文章挺方便,但文章數(shù)量一旦多了,就經(jīng)常出錯。
后來,我看到有人在cos-html-cache插件的基礎(chǔ)上又開發(fā)了一個插件,名叫Super Static Cache,我用了一下,發(fā)現(xiàn)其BUG較多,但Rewrite模式是可以正常使用的,在這個模式下,可以將首頁、文章頁、單頁、分類頁、Tag頁都生成靜態(tài)化文件,并保存在一個名為super-static-cache的目錄下,直接復(fù)制這個目錄即可得到一個靜態(tài)化網(wǎng)站。
因此,一個更簡單的生成靜態(tài)化網(wǎng)站的方法來了,先在網(wǎng)站安裝Super Static Cache,之后運行一個抓取網(wǎng)站的工具,這類工具很多,例如wget、sitemaps生成器之類的,把整個網(wǎng)站抓一遍(wget還能多生成一份),即可在super-static-cache的目錄獲取到網(wǎng)站的靜態(tài)化Html文件。
wget在Windows、Linux、Mac都有,用wget下載網(wǎng)站的命令是:
wget -m 網(wǎng)站地址
我們每個人接觸Linux之前,應(yīng)該先接觸的都是windows吧?但我們一般接觸Linux后,習(xí)慣linux的管理和使用方法后,我們再回過頭再來使用windows的時候,內(nèi)心其實是拒絕的。我們會覺得圖形好麻煩,圖形好Low的感覺,這個時候我們差不多是一個linux的重度愛好者了。對于Linux是欲罷不能的,真是一個遇到貴婦一樣的感覺,總是覺的她很神秘、很多我們想探索的地方。windows和linux作為杰出的系統(tǒng)代表,磕磕盼盼在所難免,他們之間也有很多不為人知的故事,今天我將梳理一下linux與windows之間那些剪不斷理還亂的關(guān)系。
Linux系統(tǒng)與window系統(tǒng)的誕生
1991 年的十月,當(dāng)初網(wǎng)絡(luò)還不像現(xiàn)在這么普遍,上網(wǎng)的人大部分都隸屬于一些研究機構(gòu),或者是大學(xué)里面的學(xué)生、教授。有一個名為 Linus Torvalds 的年輕芬蘭大學(xué)生10月5號在新聞群組上發(fā)表了這樣一封內(nèi)容不怎么起眼的 POST:
Hello everybody out there using minix -
I'm doing a (free) operation system (just a hobby,won't be big and professional like gnu)for 386(486) AT clones.
而這封郵件也正式的向外宣布Linux 內(nèi)核系統(tǒng)誕生,這段消息可以稱為Linux 的誕生宣言,并且一直廣為流傳。因此10 月5 日對Linux 社區(qū)來說是一個特殊的日子,許多后來Linux 的新版本發(fā)布時都選擇了這個日子。
Microsoft Windows,是美國微軟公司研發(fā)的一套操作系統(tǒng),它問世于1985年,起初僅僅是Microsoft-DOS模擬環(huán)境,后續(xù)的系統(tǒng)版本由于微軟不斷的更新升級,不但易用、也慢慢的成為家家戶戶最喜愛的操作系統(tǒng)。
Windows采用了圖形化模式GUI,比起從前的DOS需要鍵入指令使用的方式更為人性化、便捷化。隨著電腦硬件和軟件的不斷升級,微軟的Windows也在不斷升級,從古老的16位、32位再到現(xiàn)在流行的64位, 系統(tǒng)版本從最初的Windows 1.0 到大家熟知的Windows 95、Windows 98、Windows ME、Windows 2000、Windows 2003、Windows XP、Windows Vista、Windows 7、Windows 8、Windows 8.1、Windows 10 和 Windows Server服務(wù)器企業(yè)級操作系統(tǒng),不斷持續(xù)更新,微軟一直在致力于Windows操作系統(tǒng)的開發(fā)和完善。
其實從上述可以看到,windows早于linux出世,相當(dāng)于兄長,但因為Linux的開源讓他顯得更加有活力,Linux的爸爸也是很勵志的,大學(xué)期間就能寫出這么棒的系統(tǒng)內(nèi)核,著實鼓勵著一大批程序員和系統(tǒng)管理員。
Linux系統(tǒng)與Windows系統(tǒng)的性能之爭
Linux的性能是非常出色的,可以完全針對機器的配置有針對性的優(yōu)化,而且Linux對于x86_64的支持領(lǐng)先Windows 不是一點半點。在相同平臺上,優(yōu)化過的Linux在性能方面確實遠(yuǎn)遠(yuǎn)超過Windows,所以國內(nèi)的大部分企業(yè)服務(wù)器,使用的都是Linux平臺。由于其優(yōu)于windows的性能,讓其成為市場的寵兒,對Linux技術(shù)有興趣的可以看下:http://www.linuxprobe.com/chapter-00.html
另外從Windows的理念就可以知道了:不管你要不要,我都給你。在我看來,這是一種強硬的企業(yè)文化,我就是這么硬,反正你也不怎么懂我,這可能源于Windows系統(tǒng)對于家庭用戶這些年來的絕對壟斷。不管你是不是跑某種和GUI完全無關(guān)的關(guān)鍵服務(wù),Windows GUI一定是要運行的,如果一個GUI的BUG導(dǎo)致了系統(tǒng)的崩潰,那只能說你太倒霉了。還有windows的商業(yè)氣息更為嚴(yán)重,閉源一定程度影響了windows的發(fā)展,雖然Windows在近些年來一直再大力推崇開源。不過想對于普通個人用戶的使用感受,windows還是非常出色的,他們的圖形使用起來簡潔明了。
自從Kernel 2.6之后,Linux對于線程的支持也好了很多,性能方面也更加出色,這些都是Linux長足的進(jìn)步。而且經(jīng)過全球資深的Linux愛好者的開發(fā)、優(yōu)化,Linux確實可以承擔(dān)起相當(dāng)重要的角色了。公平的說一句,Windows的性能和穩(wěn)定性比以前已經(jīng)好了很多了,起碼在某些地方完全是與Linux處于同樣層次的。但是Windows的優(yōu)化能力是十分有限的,因為MS為你做了很多事情,雖然你不想讓他這么做,但是你也沒的選擇。對于多數(shù)比較“懶”的用戶來說,這樣也許很好,但是對于系統(tǒng)優(yōu)化擁有固執(zhí)追求的人來說,Windows并不適合。根據(jù)8/2法則,MS這樣做在市場上是很聰明的,但是這種武斷蠻橫的方式,恐怕有不少人無法接受。
因此對于全球用戶群體來說,windows在使用者上領(lǐng)先Linux。一定程度來說,用戶無法根據(jù)自己的需求選擇合適的模塊,用戶的專業(yè)知識受限,用戶的使用需求限制,windows的使用者已經(jīng)習(xí)慣了這種系統(tǒng),他們能夠接受這種閉源下的技術(shù)黑洞。但對于技術(shù)愛好者,我們更喜歡Linux這樣更加純凈的系統(tǒng),我們更喜歡弄清操作系統(tǒng)的本質(zhì),使用自己優(yōu)化且定制的系統(tǒng)。
做運維是要學(xué)習(xí)Linux系統(tǒng)還是Windows系統(tǒng)呢?
很多同學(xué)問我,學(xué)習(xí)Linux好,還是學(xué)習(xí)windows好。這個問題其實不好回答,因為就企業(yè)需求來說,windows和Linux服務(wù)器企業(yè)都能用到,但Linux依靠安全穩(wěn)定的應(yīng)用性,使得其在企業(yè)服務(wù)器領(lǐng)域一直占有很大的優(yōu)勢,并且存在逐年增加的情況。
你可以選擇兩個都學(xué)習(xí),然后對某一個深入學(xué)習(xí),我目前就是這么一個狀態(tài)。我們可能無法預(yù)料未來在企業(yè)當(dāng)中,我們主要會遇到Linux還是windows,我們的服務(wù)器可能是做的windows的維護(hù),也可能是linux的維護(hù),當(dāng)然現(xiàn)在的發(fā)展情況,我們更可能接觸基于Linux的服務(wù)架構(gòu),我本人目前就在學(xué)習(xí)Linux系統(tǒng)相關(guān)知識,我選擇紅帽的rhce認(rèn)證作為了學(xué)習(xí)Linux的切入點,我希望通過紅帽這樣一個系統(tǒng)化的培訓(xùn)過程,能夠讓我對Linux有一個系統(tǒng)化的了解,后續(xù)的深入探究會顯得容易一些。
我目前了解的情況是我認(rèn)識不少同學(xué)都是windows轉(zhuǎn)向?qū)W習(xí)linux,對于他們來說,Linux顯得更加有意思,更加有征服的欲望,我想主要還是市場的需求導(dǎo)致的。關(guān)于Linux的初步學(xué)習(xí),我一直都希望能在做到系統(tǒng)化,我當(dāng)初學(xué)習(xí)之時通過互聯(lián)網(wǎng),搜索到一本跟紅帽有關(guān)的教材《Linux就該這么學(xué)》,我發(fā)現(xiàn)這本書籍很好的做到了Linux學(xué)習(xí)的系統(tǒng)化,對于Linux初學(xué)者而言,他們能夠從這本書中很好的看到知識的脈絡(luò)結(jié)構(gòu),為后續(xù)的學(xué)習(xí)打下堅實的基礎(chǔ)。
windows和Linux在我們生活中都扮演者重要的角色,他們之間的關(guān)系我們不能一概而論,誰好誰差并沒有一個絕對的定論。我們可以根據(jù)自己的需求,選擇適合自己的操作系統(tǒng),也正式因為他們之間的比較和戰(zhàn)爭,才能更好的推進(jìn)操作系統(tǒng)的前行。windowns與Linux之間的戰(zhàn)爭就在于差異化滿足人類的需求,他們是競爭者,也是好的同伴,因為感謝彼此的磕磕碰碰,才能彼此變得更加美好。我們無論選擇站在戰(zhàn)爭的哪一方,我們都是受益者,因為這是一場沒有傷害的信仰戰(zhàn)爭。
*請認(rèn)真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。