為何說微軟不會基于Linux內(nèi)核重構Windows
數(shù)周前,開源軟件愛好者 Eric S Raymond 提出的觀點引發(fā)熱議,他認為微軟應該在 Linux 內(nèi)核基礎上重構 Windows。他認為目前個人電腦業(yè)務持續(xù)下滑,Windows 早已不再是微軟的支柱業(yè)務,通過重構能夠實現(xiàn)利潤最大化。 不過,曾參與 Windows Subsystem for Linux 的 Ubuntu 移植開發(fā)的 Hayden Barnes 對此持反對觀點,認為微軟不會基于 Linux 重構 Windows。
Hayden Barnes 是游走在微軟和 Linux 社區(qū)之間的知名開發(fā)者,曾幫助 Windows Subsystem for Linux(WSL)上推進 Ubuntu 開發(fā)工作。因此他能夠和很多 Linux 開發(fā)人員、開源項目人員、社區(qū)成員和微軟員工進行交流。而且,他還作為 MVP (微軟最有價值專家)參與微軟產(chǎn)品和策略的各種簡報會。
對于近日流行的“微軟應該遷移 Windows 系統(tǒng)核心至 Linux 內(nèi)核”說法,他表示從產(chǎn)品和工程角度來說微軟在任何情況下都不可能這么做。
在說明具體原因之前,Barnes 認為在 Slashdot 和 Hacker News 上不斷出現(xiàn)這個觀點的原因:
● 能夠吸引用戶點擊
● 對于開源和 Linux 倡導者來說,這是一個很早就存在的幻想。
● 目前,Windows 扮演的角色正在發(fā)生變化。尤其是當前 Android、iOS、macOS、Chrome OS 和 Ubuntu 都基于 Linux 的世界里
● 伴隨著 Linux 在 Azure 和 WSL 的使用率增加,這種合理性正在不斷增加。奧弗頓之窗(The Overton Window)已經(jīng)轉移。
對此,Barnes 認為微軟不會基于 Linux 內(nèi)核來重構 Windows 理由如下
1.內(nèi)核
Windows 系統(tǒng)中的 NT 內(nèi)核提供了一定程度的向后兼容、長期支持和驅動程序可用性,而 Linux 還在不斷完善中。如果想要基于 Linux 重構,這必然需要耗費數(shù)百萬美元。微軟有很多付費客戶可以繼續(xù)按原樣支持 Windows,某些已經(jīng)有數(shù)十年了。
基于 Linux 重構 Windows,并不像 Raymond 所說的那樣能夠幫助微軟節(jié)省開支。很多盈利公司的存在都是為現(xiàn)有的操作系統(tǒng)而服務的。即便是最終基于 Linux,也可能會導致不良的內(nèi)核單一化。
Windows 和 macOS 的競爭,才能讓 Linux 變成更好的操作系統(tǒng)。而更理想的結果是開源創(chuàng)新能夠在所有操作系統(tǒng)之間傳播,Windows 和 Linux 的開放源碼貢獻者能夠共享兩個生態(tài)系統(tǒng)的精華。
2.兼容性
目前尚不清楚如果 Windows 用戶空間從 NT 遷移到 Linux 內(nèi)核,是否能夠保持良好的兼容性,特別是那些擁有關鍵任務應用、付費獲取的東西。
Windows 沒有像 Linux 那樣嚴格區(qū)分內(nèi)核空間和用戶空間。NT 內(nèi)核大約有 400 個已記錄的 syscalls 以及大約 1700 個已記錄的 Win32 API 調(diào)用。對于重新部署從而確保 Windows 開發(fā)者和他們工作達到預期的兼容性這是非常龐大的工作量,這完全超過了 Wine 提供的修正貢獻。
Linux 在 arm64 上只有 313 個 syscalls,而另一個原因是微軟已經(jīng)從 WSL 1 中的 syscall 翻譯層(translation layer)轉換為 WSL 2 中的虛擬化內(nèi)核,因此重新實現(xiàn)利用 Linux ABI 的數(shù)十種非標準方式是非常痛苦的事情。為微軟擁有的 Linux 上的SQL Server 提供一個 NT 相關的兼容層是一回事,為其他數(shù)百萬開發(fā)者的應用提供保證是另一回事。
3.微軟投入巨大
近年來,微軟在 Windows 上傾注的人力物力已經(jīng)無法計算。微軟在 Windows 10 的可用性、新功能、性能改進等多方面進行了優(yōu)化投資,并取得了回報。在這些改進的基礎上,通過和 OEM 廠商的合作,以及推出 Surface 品牌,已經(jīng)幫助振興了 PC 市場。
微軟一直在努力使 Windows 成為一個優(yōu)秀的開發(fā)平臺,其項目包括 Windows Terminal、PowerToys、Windows Subsystem for Linux 和 Visual Studio 2019。Windows Insider 項目也非常成功。
目前,Windows 是包括 Surface 在內(nèi)諸多產(chǎn)品的重要搭載系統(tǒng),而這也是微軟重點耕耘的一項業(yè)務。2018年和2020年的內(nèi)部重組表明,現(xiàn)在 Surface 和 Windows 的未來是密不可分的。Windows 為 Xbox 提供了動力,我們正處于一個主要基于Windows的PC游戲的復蘇期。
微軟也有 Windows 10X 的想法,這是繼 Windows 10 之后的下一個操作系統(tǒng)概念(我認為我們會逐步得到),未來的硬件如 Surface Neo 也在考慮之中。
4.沒有必要
不需要基于 Linux 重構 Windows,微軟也能保持相關性。在放棄移動市場之后,微軟已經(jīng)意識到了設備格局的變化。
微軟認識到當前社會人類使用各種系統(tǒng)和各種平臺,在系統(tǒng)上有 Android、Ubuntu、iOS、macOS、Chrome OS等等,而且除了 x86 之外還有 ARM。
微軟已經(jīng)表示他們能夠適應這個多元的世界,在這些平臺上推出了相關產(chǎn)品和服務,同時確保 Windows 在傳統(tǒng)領域的競爭力。目前微軟正基于 Android 和 iOS 推動移動領域的創(chuàng)新,不僅移植了微軟 Office ,而且還包括 Microsoft Launcher 在內(nèi)的很多優(yōu)秀應用,而且近期也推出了搭載 Android 系統(tǒng)的 Surface Duo 手機 。
在 Ubuntu 系統(tǒng)上,微軟推出了很多針對 Linux 工作站的工具,例如 Code, .NET, Azure tools, Teams, PowerShell, Sysinternals for Linux,以及即將到來的 Edge 瀏覽器。你想在Azure上運行Ubuntu嗎?微軟已經(jīng)為你準備好了,并與Canonical緊密合作,讓你獲得美妙的體驗。
與其關心微軟是否基于 Linux 重構 Windows,更有趣的問題是微軟在開源上能走多遠?我們已經(jīng)看到了 Windows Terminal, PowerToys 和其他 Windows 組件已經(jīng)開源。而更合乎邏輯、符合實際的目標是,微軟將會繼續(xù)開放 Windows 組件和 Windows 開發(fā)過程,甚至于會超出 Windows Insider 項目范圍,為其他系統(tǒng)提供福利。