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