對(duì)Bash on Ubuntu on Windows的解讀

平時(shí)不太關(guān)注微軟的技術(shù)叛拷,不過這次微軟 build 2016有個(gè)新聞倒是值得關(guān)心一下岂却。

對(duì)這條新聞裙椭,每個(gè)人看到的角度略有不同(可以參見知乎上的討論)署浩,Shell 愛好者期待可以在 Windows 下用強(qiáng)大的 Linux Shell ,Ruby程序員也希望可以在教新人時(shí)不必強(qiáng)迫別人換操作系統(tǒng)筋栋。

不過我覺得最大的一個(gè)影響應(yīng)該是關(guān)于 Docker 的,微軟這個(gè)技術(shù)的推出將有助于為 Docker 進(jìn)入 Windows 鋪路抢腐,甚至我猜想這可能就是微軟搞這一套技術(shù)的直接目的襟交。

我們來看一下具體的技術(shù)迈倍,這個(gè)東西表面上看就像個(gè)模擬器捣域,類似cygwin,也可能有人會(huì)想到虛擬機(jī)提完,但是它實(shí)際上要更直接丘侠,它是在用 Windows 內(nèi)核實(shí)現(xiàn)了對(duì) Linux 系統(tǒng)調(diào)用的兼容支持,由于不需要高成本的模擬蜗字,它的性能是相當(dāng)可觀的(甚至有不少人認(rèn)為,如果是用IOCP來實(shí)現(xiàn)epoll挪捕,那么它的性能有可能比Linux原生的epoll還要好)。

參考wikipedia上的這個(gè)圖断医,看看體系架構(gòu):


Windows_2000_architecture.svg.png

我們知道奏纪,WinNT系的內(nèi)核本身其實(shí)是很牛的,它的API是有一個(gè)抽象層作為隔離的序调,而Win32 API可以看做這個(gè)抽象層的一個(gè)實(shí)現(xiàn),理論上并沒有什么特殊地位硬耍,這樣就可以象支持原生 windows 程序一樣支持 linux 程序了,那么我們之前為什么一直沒看到 Linux on Windows呢经柴?

因?yàn)榧夹g(shù)牛不意味著市場會(huì)接受,這個(gè)設(shè)計(jì)曾經(jīng)被認(rèn)為有過度設(shè)計(jì)的嫌疑坯认,據(jù)說微軟做了這個(gè)設(shè)計(jì)以后也沒看到有啥大的價(jià)值,因此并沒有在這個(gè)抽象層上做出一個(gè)與 Linux API 兼容的實(shí)現(xiàn)韭寸。

這一切在 Docker 出現(xiàn)以后就變化了荆隘。近兩年,Docker 技術(shù)發(fā)展十分迅猛椰拒,由于它本質(zhì)上是對(duì) Linux 的再發(fā)明,因此本來和微軟沒什么關(guān)系燃观。但是,Docker 一方面占據(jù)了“云計(jì)算”這個(gè)領(lǐng)域的重要位置番川,另一方面又對(duì)服務(wù)器軟件研發(fā)有很重要的推動(dòng)作用(devops運(yùn)動(dòng))脊框,這些都是微軟很看重的地方,所以它很早就在謀劃擁抱 Docker 和容器技術(shù)浇雹。

用 “微軟+Docker” 作為關(guān)鍵字 Google 能找到幾條新聞,放在一起看很有意思:

Snip20160331_2.png

注意看看那幾條新聞的時(shí)間吠裆,說實(shí)話烂完,我當(dāng)時(shí)看到最早的那條新聞時(shí)還沒法想象微軟會(huì)做出這么大的努力,但它的節(jié)奏十分清晰窜护,先是做一個(gè)簡單到只有 http 封裝的 Docker CLI 作為試水(也可能是為了卡位吧),然后再將 Windows 軟件本身的工作方式和容器化趨勢(shì)結(jié)合起來柱徙。截止到最近,微軟的方法思路和 Docker 是一樣的敌完,理論上它的 Windows 也可以跑容器羊初,這樣,微軟在服務(wù)器市場也可以分得一杯羹长赞。

然而還有一個(gè)困難——“內(nèi)核”,我們知道脯颜,Docker鏡像可以跨越各種 Linux Distribution贩据,然而必須受限于宿主機(jī)的內(nèi)核版本栋操,這是它為了超越虛擬機(jī)的性能而不得不損失的獨(dú)立性饱亮,Windows Server 即使能象“容器宿主機(jī)”一樣工作,也會(huì)由于不能支持眾多 Docker 鏡像(都是基于 Linux 的)所需要的 API 而干瞪眼剔宪。

現(xiàn)在微軟補(bǔ)上了這個(gè)短板。

根據(jù)目前看到的說法歼跟,Windows Server 將可以提供 Linux 兼容的 API 格遭,因此理論上可以很好的支持現(xiàn)有的所有 Docker 鏡像,這對(duì)于云計(jì)算環(huán)境是非常有幫助的拒迅。又因?yàn)檫@種支持并不是“模擬式”的,因此并沒有損失 Docker 的一個(gè)重要優(yōu)勢(shì)——性能作箍。

從這個(gè)角度看前硫,這個(gè)號(hào)稱“Win10與Ubuntu合體”的技術(shù)胞得,并不是象它的標(biāo)題一樣僅僅是好玩屹电,而是在微軟的戰(zhàn)略路線中應(yīng)該有一個(gè)很重要的位置跃巡。有很多朋友說這是微軟挖的一個(gè)坑牧愁,言下之意是說微軟自己可能“管挖不管埋”,但如果微軟自己不作死兔朦,它應(yīng)該會(huì)重視和完善這個(gè)技術(shù)的磨确。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市乏奥,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌盏檐,老刑警劉巖驶悟,帶你破解...
    沈念sama閱讀 206,602評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異痕鳍,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)熊响,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門诗赌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人铭若,你說我怎么就攤上這事⊥纾” “怎么了?”我有些...
    開封第一講書人閱讀 152,878評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵嫂侍,是天一觀的道長。 經(jīng)常有香客問我菲盾,道長痹栖,這世上最難降的妖魔是什么亿汞? 我笑而不...
    開封第一講書人閱讀 55,306評(píng)論 1 279
  • 正文 為了忘掉前任揪阿,我火速辦了婚禮,結(jié)果婚禮上南捂,老公的妹妹穿的比我還像新娘旧找。我一直安慰自己溺健,他們只是感情好钮蛛,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評(píng)論 5 373
  • 文/花漫 我一把揭開白布魏颓。 她就那樣靜靜地躺著岭辣,像睡著了一般甸饱。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上偷遗,一...
    開封第一講書人閱讀 49,071評(píng)論 1 285
  • 那天驼壶,我揣著相機(jī)與錄音,去河邊找鬼热凹。 笑死,一個(gè)胖子當(dāng)著我的面吹牛碌嘀,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播股冗,決...
    沈念sama閱讀 38,382評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼霹陡,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起烹棉,我...
    開封第一講書人閱讀 37,006評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤攒霹,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后浆洗,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體催束,經(jīng)...
    沈念sama閱讀 43,512評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評(píng)論 2 325
  • 正文 我和宋清朗相戀三年伏社,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了抠刺。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,094評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡摘昌,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出聪黎,到底是詐尸還是另有隱情罕容,我是刑警寧澤,帶...
    沈念sama閱讀 33,732評(píng)論 4 323
  • 正文 年R本政府宣布稿饰,位于F島的核電站锦秒,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏喉镰。R本人自食惡果不足惜旅择,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望梧喷。 院中可真熱鬧砌左,春花似錦、人聲如沸铺敌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽偿凭。三九已至产弹,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間弯囊,已是汗流浹背痰哨。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評(píng)論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留匾嘱,地道東北人斤斧。 一個(gè)月前我還...
    沈念sama閱讀 45,536評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像霎烙,于是被迫代替她去往敵國和親撬讽。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蕊连,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • Docker — 云時(shí)代的程序分發(fā)方式 要說最近一年云計(jì)算業(yè)界有什么大事件?Google Compute Engi...
    ahohoho閱讀 15,508評(píng)論 15 147
  • 寫這篇文章主要是為了今后畢業(yè)論文素材上的整理游昼,同時(shí)對(duì)docker進(jìn)行鞏固溫習(xí)甘苍。大綱: docker簡介docker...
    胡圖仙人閱讀 7,394評(píng)論 2 96
  • 當(dāng)南方繁花似錦的時(shí)候北方大地還是灰蒙蒙的一片,山不清水不秀烘豌。天氣也如過山車载庭,今天零上二十度,明天就可能降到零下幾度...
    yanzuliu閱讀 1,097評(píng)論 1 2
  • 回顧 tomcat服務(wù)器啟動(dòng)的時(shí)候會(huì)加載服務(wù)器中的項(xiàng)目,并為每個(gè)項(xiàng)目創(chuàng)建一個(gè)唯一的ServletContext對(duì)象...
    AndroidCat閱讀 346評(píng)論 1 0
  • 一廊佩、設(shè)計(jì)目的 別墨跡1.0版已上線近8個(gè)月時(shí)間囚聚,隨著業(yè)務(wù)的發(fā)展,原有的1.0版本已很難符合目前的需求罐寨,所以我們?cè)?...
    帷幕下的詩人閱讀 295評(píng)論 0 0