Ubuntu on Windows 10工作方式全解析

Ubuntu on Windows 10工作方式全解析

很多科技媒體都報道了微軟將在 Windows 10 中啟用原生的 Bash Shell 支持,沒錯,微軟已經說明 Ubuntu on Windows 將在下個即將發佈的 Windows 10 主要版本(Redstone)中到來。

誤區澄清

在展開今天的內容之前,我們先要為大家澄清兩個誤區:

  1. 微軟支持是的 Ubuntu on Windows,而非 Linux on Windows。

  2. Ubuntu 母公司 Canonical 此次與微軟的合作是要直接支持 Windows 原生庫和程序:Windows 子系統 for Linux(WSL),而不是通過容器技術或虛擬機運行 Ubuntu。

Ubuntu on Windows 10工作方式

其實 WSL 相關代碼早在 2016 年 1 月下旬便被微軟悄悄內置進了 Windows 10 Build 14251 預覽版中,此後微軟的開發人員制訂了 lxcore.sys 與 lxss.sys 這兩個新的子系統文件,讓其成為 Windows 程序員開發 Linux 應用程序的橋樑。

WSL 的首要工作是支持 Ubuntu 用戶態映像,微軟發言人解釋說:「我們為 Windows 建立了新的基礎架構,WSL 讓 Ubuntu 的締造者 Canonical 公司可以實現運行 Ubuntu 用戶模式映像。基於此,用戶就可以在 Ubuntu on Windows 10 中直接運行原生 Bash。」

Canonical Ubuntu 產品和戰略執行團隊的 Kirkland 提到:「我們此次是將 Ubuntu ELF 二進制文件與 Windows 進行 bit 到 bit 的校驗和直接對接。」

Ubuntu on Windows 10工作方式全解析

為實時將 Linux 系統調用轉換成 Windows 系統調用(WSL,目前尚未開源),一個做事非常犀利的 Ubuntu 開發團隊一直在努力配合和適應微軟的研發技術,以期儘快實現對接。(說以此,想必很多 Linux 愛好者應該已經聯想到 wine,這款可在 Windows 中原生運行 Linux 二進制文件的工具。)

目前從微軟內部的壓力測試工具和實驗數據來看,Ubuntu on Windows 10 應用與 Windows 10 應用幾乎可以獲得同等的 CPU、內存和 I/O 性能結果。

對 Windows 工作原理和發展歷史非常瞭解的用戶應該知道,微軟此次與 Canonical 的合作似乎顯得有些姍姍來遲。其實從 Windows NT 開始就內置了 POSIX 子系統,它就是專門為 Windows 提供原生 Unix-Linux 支持而開發的。

為什麼變革

很多人在考慮微軟此次為什麼要做出如此大的變革?其實不難看出,從 Satya Nadella 上臺微軟 CEO 寶座之後,一直在致力於推廣「移動為先,云為先」的理念,Microsoft Azure 雲平臺也在不斷擁抱開源(一個只支持微軟產品的平臺,還能叫公有云?)。從用戶的角度來看,除了桌面端的 Windows、Mac 和 Linux 外,很多用戶同時擁有並管理多套異構平臺,就經常需要在 Windwos 中折騰佔資源的異構虛擬機、SSH 和 Cygwin 等。在有了 Ubuntu on Windows 後只需點擊幾下,便可以訪問一個功能豐富的 Ubuntu Shell,而無需再在本地虛擬化或重新編譯。

小結

很顯然,不論對微軟、Canonical、還是最終用戶,此次幾方史無前例、似乎有些違背慣例的合作對各方都非常有好處,希望微軟在這個方向上的探索會有一個三贏的結果。

如果你對 Ubuntu on Windows 有興趣,Ubuntu 14.04 LTS for Windows 10 的首個映像將很快會發布,Ubuntu 16.04 LTS 映像會在 4 月 21 日正式發佈之後不久取代 Ubuntu 14.04 LTS 上線到 Windows Store。不過由於所有 Ubuntu on Windows 的映像都基於 Redstone 代碼,所以最快需要等到今年夏天 Windows 10 Redstone 正式發佈最終用戶才能正式用上。


分享到:


相關文章: