歡迎您光臨本站 註冊首頁

Build 2019 上微軟的開源動作有點不一樣

←手機掃碼閱讀     admin @ 2019-05-13 , reply:0

微軟今年舉辦的 Build 開發者大會可謂是搶足風頭,大會第一天就放了不少大招:宣布新的命令行終端 Windows Terminal、Windows 10 的 Linux 子系統 WSL 2 將運行真正的 Linux 內核、跳過 .NET 4 宣布 .NET 5 的計劃、宣布 Web 版本的 VS Code(Visual Studio Online)。

這種積極擁抱開源的態度對微軟而言不是什麼新鮮事,畢竟他們家的兩個重量級項目 —— Visual Studio Code 和 .NET runtime 早已開源,並按照規範的開源、社區驅動的方式來運作。

但微軟這次在 Build 2019 上的開源舉動有點不一樣。

我們都知道,微軟在 Windows 10 一周年更新的版本中引入了名為 Windows Subsystem for Linux(WSL) 的 Linux 子系統,不過 WSL 只是 Linux 兼容層,而非真正的 Linux 內核,它是由微軟自己開發的內核組件,提供了與 Linux 內核相同的 API,本質上是將 Linux API 翻譯到 Windows NT kernel API。

由於 WSL 使用的是自研的內核組件,所以它天生就有不少缺陷,例如無法使用 Linux 驅動(尤其是文件系統驅動),這使得它的文件系統性能只有真正內核的二十分之一。另外,WSL 提供的 API 集也比較陳舊,甚至部分 API 都沒有實現,還有的 API 即便實現了也只是部分實現。

這裡有人可能會問,反正 Linux 內核是開源的,既然微軟自己做得不好,為什麼不直接把現成的拿過來用呢?微軟當然不傻,之所以選擇自研正是為了避免使用 Linux 內核的代碼,因為 Linux 內核使用的 GPLv2 許可證具有「傳染性」,這可能會迫使微軟開源 WSL,甚至 Windows 系統的部分代碼。雖然微軟愛開源,但也怕愛過了頭。

所以剛被公布的 2 代 WSL 才會顯得有點不一樣。微軟表示 WSL 2 會在輕量級的虛擬機里運行真正的 Linux 內核。通過運行完整的內核,WSL 2 不僅大幅度提升了文件系統性能,也提供了完整的系統調用兼容性。

更重要的是,WSL 2 這次不再「畏懼」 Linux 內核所採用的 GPLv2 許可證,因為微軟宣布它將根據許可證要求完全開源 WSL 2 的內核補丁和修改

基於 GPL 許可證的項目構成了 Windows 系統的一部分,這意味著它骨子裡已經擁有開源的「基因」,身上某處流淌的是開源的「血液」。

除了運行真正 Linux 內核的 WSL 2,新發布的命令行終端 Windows Terminal 也是這次大會上的那個「不一樣」

“Windows Terminal”的图片搜索结果

相信很多人都知道 Windows 的命令行工具(cmd.exe)依賴於一個名為 conhost.exe 的程序,它在系統中被稱為「控制台窗口主機」,是命令行程序的宿主進程。

conhost.exe 實現了 Windows 命令行工具的基礎架構,同時提供 Windows Console API、輸入引擎、渲染引擎和用戶配置信息,在系統中是一個十分重要且核心的程序。

作為 Windows Terminal 項目的一部分,微軟採用 MIT 許可證將 conhost.exe 一同開源出去。這絕對稱得上是史無前例的操作,雖然微軟此前也曾將 Windows 系統裡面的項目進行開源,但都是一些不太重要的工具,如計算器,或是其他已不再更新的程序。

這次將 conhost.exe 開源,不但是微軟首次開源核心的 Windows 系統代碼,更重要的是,如果 Windows Terminal 穩定后並被集成到 Windows 系統中,那麼它將是首個以開源方式進行開發的 Windows 核心組件。

上面的兩個「不一樣」可以讓我們深刻感受到微軟的轉變,從它對待開源的態度,對開源的貢獻,不難看出微軟把開源看得十分重要 —— 不再僅僅是將一個個獨立的項目開源,而是將開源融入到 Windows 系統乃至微軟的方方面面,並且能夠持續發展。

一直以來,大家都不認為、更不相信微軟會開源 Windows 系統,但按現在的趨勢,有生之年見證微軟開源 Windows 系統也不是沒可能的事,你覺得呢?


[admin ]

來源:OsChina
連結:https://www.oschina.net/news/106649/ms-the-opensource-company
Build 2019 上微軟的開源動作有點不一樣已經有287次圍觀

http://coctec.com/news/all/show-post-205305.html