這是一個美妙而且瘋狂的時代,瞬息萬變,一切皆有可能。
曾經(jīng)一度,微軟把Linux看作危險(xiǎn)的異類,想將其扼殺在搖籃之中。而如今,搖身一變,化敵為友,微軟是LINUXFoundation的鉑金級別會員。
根據(jù)LinuxFoundation的官方文檔,鉑金會員是LinuxFoundation最高級別的會員,每年的年費(fèi)為50萬美金。(https://www.linuxfoundation.org/bylaws/)
Platinum US$ 500,000Gold US$ 100,000Silver US$ 20,000 (employee size greater than 5,000) US$ 15,000 (employee size between 500 and 4,999) US$ 10,000 (employee size between 100 and 499) US$ 5,000 (employee size <100)
鉑金級別的會員可以在LinuxFoundation的Board中有一個席位,制定決策時有話語權(quán)。
撇開技術(shù)外的不談,從技術(shù)角度看,Windows10引入的WSL(WindowsSubsystemforLinux)非常值得關(guān)注和思考。
簡單來說,WSL就是讓W(xué)indows用戶可以在Windows上使用Linux,運(yùn)行原生的二進(jìn)制程序,不需要重新編譯。
對于從來沒有使用過WSL的格友,強(qiáng)烈推薦你試一下WSL,如果你使用的是Windows10,那么“把大象裝進(jìn)冰箱”只需要三步:
安裝速度很快,比在虛擬機(jī)里安裝要快很多,比如,選擇Ubuntu的話,連下載帶安裝只要幾分鐘就好了。
接下來就可以享受Linux的短平快了,安裝gcc,gdb,......喜歡什么裝什么,就是一兩條命令的問題。
從名字來看,WSL是為Linux而設(shè)計(jì)的子系統(tǒng)(WindowsSubsystemforLinux)。但是如果深刻分析,冷靜思考,WSL用的并不是Linux內(nèi)核,而是Linux應(yīng)用。
進(jìn)一步說,WSL是讓Linux應(yīng)用可以運(yùn)行在經(jīng)典的NT內(nèi)核之上,不需要重新編譯,實(shí)現(xiàn)二進(jìn)制兼容。
有了WSL后,NT內(nèi)核上便可以肩并肩的運(yùn)行Windows程序和Linux程序,二者可以訪問相同的文件系統(tǒng),可以通信,可以寫作,可以做的事情很多很多......
比如,下面的任務(wù)管理器截圖里便包含了Ubuntu的top進(jìn)程。
有人可能說,Linux應(yīng)用怎么能跑在NT內(nèi)核上呢?這的確不是一件簡單的事,但是微軟花錢、花時間做到了。
簡單來說,啟用WSL后,Windows會以驅(qū)動的形式加載一個名為LxCore的模塊:
SystemRootsystem32driversLXCORE.SYS
某種意義上說,它就是微軟版本的Linux內(nèi)核。
還是舉個例子來幫助大家快速加深理解吧。
我們曾經(jīng)介紹過Linux內(nèi)核中的SYSC_reboot函數(shù),它是rebootAPI對應(yīng)的系統(tǒng)服務(wù)。更有趣的是,這個函數(shù)里面雕刻著Linus大神的生日和三個愛女的生日。
在LxCore中,也可以看到這一組神秘的數(shù)字,反匯編名為LxpSyscall_REBOOT的函數(shù),便可以看到。
完整的反匯編結(jié)果有點(diǎn)長,上面截圖是最關(guān)鍵的部分,可以看到有四條比較指令,第一條是比較cmd是不是代表reboot的“FEELDEAD”。第二條便是比較Magic1是不是Linus大神本人的生日1969/12/28。后面三個比較的目標(biāo)分別是三個女兒的生日,不多說了。
如此看來,Linus的家庭故事也被雕刻在了Windows操作系統(tǒng)之中,這或許是當(dāng)初Linus編寫這段代碼時也沒有預(yù)料到的。
下面是調(diào)用LxpSyscall_REBOOT函數(shù)的情景:
截圖中從#05棧幀起的下半部分對應(yīng)的應(yīng)用程序的棧,目前WinDBG還不能回溯出其中的函數(shù)名字,但是已經(jīng)在計(jì)劃內(nèi)了,在LXCORE模塊塊中已經(jīng)準(zhǔn)備了一個名為PicoWalkUserStack的函數(shù)。
說到這里,大家應(yīng)該堅(jiān)信,WSL中并沒有使用真正的Linux內(nèi)核,而是克隆了一份。于是問題來了,嚴(yán)格說來,狹義的Linux就是指Linux內(nèi)核,Linux上的各種應(yīng)用很多都來自GNU或者其它源頭。
從軟件生態(tài)和產(chǎn)業(yè)的角度思考,內(nèi)核本身并不創(chuàng)造價(jià)值,應(yīng)用程序才是用戶真正需要和體現(xiàn)價(jià)值的。如此說來,WSL是讓值錢的Linux應(yīng)用程序可以跑在Windows上,為Linux應(yīng)用提供了一個新的運(yùn)行環(huán)境。從這個角度來說,WSL與Linux內(nèi)核無疑是相互競爭的關(guān)系。于是乎,Linux與微軟的關(guān)系又變得非常微妙了,可能是并肩前進(jìn),互利雙贏,也可能是貌合神離,與狼共舞?奇妙的世界,一切皆有可能。
-
微軟
+關(guān)注
關(guān)注
4文章
6565瀏覽量
103952 -
內(nèi)核
+關(guān)注
關(guān)注
3文章
1363瀏覽量
40228 -
Linux
+關(guān)注
關(guān)注
87文章
11227瀏覽量
208920
原文標(biāo)題:雕刻在NT內(nèi)核中的LINUS故事
文章出處:【微信號:LinuxDev,微信公眾號:Linux閱碼場】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論