微軟不會(huì)將Windows遷移至Linux
這里的重點(diǎn)甚至不在 Windows 或者 Linux,而是我們該先選擇 Hyper-V 還是 KVM。解決了這個(gè)問題,Windows 與 Ubuntu 棧都能通過些許調(diào)整在對方之上順暢運(yùn)行。
最近的一連串事件,不由得令人懷疑微軟是不是打算在 Linux 內(nèi)核之上對 Windows 加以重構(gòu)。
我個(gè)人對于微軟積極參與 Linux 項(xiàng)目倒是有一點(diǎn)自己的見解。作為 Canonical 桌面團(tuán)隊(duì)的一員,我負(fù)責(zé)在 Windows Subsystem for Linux(WSL)上交付 Ubuntu。當(dāng)時(shí),我經(jīng)常跟眾多參與 Linux 及其他開源項(xiàng)目的微軟員工交流,也能拿到關(guān)于微軟產(chǎn)品及發(fā)展策略的最新簡報(bào)。但這里要向大家聲明,以下內(nèi)容只是我的個(gè)人猜想,且不會(huì)公開任何不宜發(fā)布的內(nèi)容。
我很高興能夠在微軟與 Linux 社區(qū)之間找到自己的位置。兩個(gè)社區(qū)都不乏極富創(chuàng)造力、善良且極具個(gè)人魅力的成員。隨著社區(qū)間邊界的逐漸模糊,無數(shù)新的成果也接踵而至。這有點(diǎn)像是自然界中的異花授粉,會(huì)讓每個(gè)植株都變得更富活力。
默認(rèn)情況下,WSL 不會(huì)進(jìn)行無人值守升級,因?yàn)槠渲袥]有 systemd 這樣的傳統(tǒng) init 在后臺執(zhí)行升級。你可以在 Windows 任務(wù)管理器中設(shè)置基本任務(wù),在登錄時(shí)以 root 用戶身份運(yùn)行 apt update,而后向任務(wù)中添加運(yùn)行 apt upgrade 的操作:
使用 Windows 任務(wù)管理器在 WSL 的 Ubuntu 上運(yùn)行自動(dòng)更新
我對微軟出于產(chǎn)品及工程方面的考慮,而有可能將 Windows 操作系統(tǒng)內(nèi)核轉(zhuǎn)移至 Linux 內(nèi)核的觀點(diǎn)深表懷疑。下面請大家聽聽我的想法。
首先,我這樣理解 Slashdot 與 Hacker News 近期經(jīng)常發(fā)布此類觀點(diǎn)的原因:
- 典型的標(biāo)題黨行為。
- 對于開源及 Linux 倡導(dǎo)者們來說,這是他們一直期盼的結(jié)局。
- 當(dāng)今世界上,Windows 所扮演的角色正在發(fā)生變化。在這塊巨大的系統(tǒng)市場蛋糕中,Android、iOS、MacOS、Chrome OS 以及 Ubuntu 牢牢把持著自己的一塊。
隨著在 Azure 與 WSL 上使用 Linux 成為可能,這種猜測的合理性開始增加。
Windows 與 Linux 的存在代表著宇宙的雙重性。這是兩股相互對立、但又彼此補(bǔ)充的力量,缺一不可。而將二者融合起來,則像是一種神奇的魔法。“在與 Windows 及 MacOS 的競爭過程中,Linux 逐漸成長為優(yōu)秀的操作系統(tǒng)。”
而我認(rèn)為 Windows 不大可能改用 Linux 內(nèi)核的理由如下:
1. Windows 中的 NT 內(nèi)核能夠提供一定程度的向下兼容性、長期支持與驅(qū)動(dòng)程序可用性,而這一切都是 Linux 最近才正在努力的方向。在 Linux 中重現(xiàn)這些能力需要耗資數(shù)百萬美元。微軟的很多付費(fèi)客戶也將在未來繼續(xù)支持 Windows 系統(tǒng)。正如微軟方面所言,Windows 并不是他們的負(fù)擔(dān),因此并不存在為了節(jié)約開支而轉(zhuǎn)向 Linux 內(nèi)核的情況。另外,即使真的轉(zhuǎn)向 Linux,也有可能在單一內(nèi)核的背景之下導(dǎo)致畸形文化。事實(shí)上,正是在與 Windows 及 MacOS 的競爭過程中,Linux 逐漸成長為優(yōu)秀的操作系統(tǒng)。更合理的結(jié)果應(yīng)該是,開源創(chuàng)新繼續(xù)在所有操作系統(tǒng)之間往來傳播。Windows 與 Linux 開源貢獻(xiàn)者將共享這兩大生態(tài)系統(tǒng)中的精華。
2. 目前尚不清楚 Windows 用戶空間能否從 NT 重新遷移至 Linux 內(nèi)核,同時(shí)繼續(xù)保持 Windows 強(qiáng)大的兼容性,特別是企業(yè)級客戶以付費(fèi)方式獲得的關(guān)鍵任務(wù)應(yīng)用程序兼容性。Windows 在內(nèi)核空間與用戶空間方面并沒有像 Linux 那樣做出嚴(yán)格劃分。NT 內(nèi)核中大約包含 400 項(xiàng)明確記錄的 syscalls,外加約 1700 項(xiàng)明確記錄的 Win32 API 調(diào)用。要在這一背景之下保證 Windows 開發(fā)者及其工具擁有精確的兼容性,必然涉及大量重新實(shí)現(xiàn)工作。Linux 在 amd64 上則只有 313 項(xiàng) syscalls,但即使是這樣,微軟在將 WSL 1 中 syscall 事務(wù)層轉(zhuǎn)向 WSL 2 中虛擬內(nèi)核以重新實(shí)現(xiàn)開發(fā)者此前已經(jīng)在使用的數(shù)十種非標(biāo)準(zhǔn) Linux ABI 操作方法時(shí),也遇到了巨大的阻力。很明顯,在 Linux 上的 SQL Server 中實(shí)現(xiàn) NT 相關(guān)兼容性相對容易,但為數(shù)百萬開發(fā)人員的應(yīng)用程序提供兼容性保證則絕對不是嘴上說說這么簡單。
3. 微軟近年來在 Windows 身上砸下巨額資源。微軟此前在 Windows 10 的可用性、新功能以及性能改進(jìn)方面做出努力,也獲得了不錯(cuò)的回報(bào)。這些改進(jìn),加上 OEM 合作以及 Surface 的推出,再次振興了一度遭受 iPad 與 Chromebook 雙重沖擊的 PC 市場。微軟一直努力使 Windows 成為出色的開發(fā)平臺,相關(guān)項(xiàng)目包括 Windows Terminal, PowerToys, Windows Subsystem for Linux 以及 Visual Studio 2019。Insiders 計(jì)劃也非常成功。Windows 為大多數(shù) Surface 設(shè)備產(chǎn)品線提供支持,這也成為微軟目前的工作重點(diǎn)。2018 年與 2020 年的內(nèi)部重組也表明,Surface 已經(jīng)成為 Windows 未來發(fā)展中的一大重要元素。Windows 也在為 Xbox 提供支持,同時(shí)繼續(xù)掌控著龐大的 PC 游戲市場。最后,微軟提出了 Windows 10X 的構(gòu)想,表示 10X 將成為 Windows 10 之后的下一代操作系統(tǒng)概念,有望匹配 Surface Neo 等未來硬件平臺。
4. 微軟無需使用 Linux 內(nèi)核,也同樣能夠在市場上擁有旺盛的生命力。在移動(dòng)市場上遭遇滑鐵盧后,微軟意識到設(shè)備的格局正在發(fā)生變化。在操作系統(tǒng)與平臺市場上,包括 Android、Ubuntu、iOS、MacOS、Alexa、Chrome OS 正在為 x86 乃至 ARM 等多種計(jì)算設(shè)備提供底層支持。微軟也證明,他們完全有能力在其他平臺上提供強(qiáng)大的產(chǎn)品與服務(wù),同時(shí)繼續(xù)保持自家 Windows 傳統(tǒng)平臺的顯著競爭力。微軟還立足 Android 推動(dòng)移動(dòng)領(lǐng)域的創(chuàng)新,包括移植 Office 應(yīng)用、推出主屏幕啟動(dòng)器以及新的 Surface Duo。在 Ubuntu 上,微軟拿出了面向 Linux 工作站的 Code、.NET、Azure 工具、Teams、PowerShell、Sysinternals for Linux,已經(jīng)即將推出的 Edge 瀏覽器與配套微軟 Web 開發(fā)工具。想在 Azure 上運(yùn)行 Ubuntu?微軟已經(jīng)提供現(xiàn)成服務(wù),并與 Canonical 緊密合作以帶來更出色的使用體驗(yàn)。
更重要的問題,并不是微軟是否打算將 Windows 遷移至 Linux,而是 Windows 打算在開源道路上走多遠(yuǎn)。我們已經(jīng)見證了 Windows Terminal、PowerToys 等組件要么開始使用開源成果,要么正籌劃轉(zhuǎn)向開源。因此更現(xiàn)實(shí)也更合乎邏輯的目標(biāo),應(yīng)該是以能夠使其他操作系統(tǒng)受益的方式持續(xù)開放 Windows 組件乃至 Windows 本體的開發(fā)過程。在這輪轉(zhuǎn)型中,Insiders 計(jì)劃還僅僅只是第一步。
Windows 甚至采取了 Ubuntu 的版本發(fā)布節(jié)奏,開始在每年 4 月和 10 月發(fā)布新版本,同時(shí)在固定發(fā)行版中引入擴(kuò)展支持。
微軟發(fā)布的一篇博文與我的個(gè)人判斷相互印證,即桌面操作系統(tǒng)的對抗時(shí)代即將結(jié)束。我們正在邁進(jìn)一個(gè)新時(shí)代,屆時(shí)高端工作站將同時(shí)運(yùn)行多種操作系統(tǒng)(類似于運(yùn)行時(shí))。因此這里的重點(diǎn)甚至不在 Windows 或者 Linux,而是我們該先選擇 Hyper-V 還是 KVM。解決了這個(gè)問題,Windows 與 Ubuntu 棧都能通過些許調(diào)整在對方之上順暢運(yùn)行。微軟為 Linux 內(nèi)核提供補(bǔ)丁程序,保證 Linux 能夠在 Hyper-V 上正常運(yùn)作;同時(shí)也調(diào)整了 Windows,使其與 KVM 良好對接。
由于整個(gè)微軟都在趨于開源,因此 Ubuntu 的一部分將進(jìn)入 Windows,而 Windows 的一部分則將進(jìn)入 Linux。
其中最關(guān)鍵的背景,在于開源已經(jīng)成為軟件世界中的王,而微軟也為自己在開源開發(fā)模式中的貢獻(xiàn)感到無比自豪。
Windows 與 Ubuntu 都只有一條道路可走———通過開源不斷完善自身。雙方都將發(fā)揮自己的相對優(yōu)勢,并將開源協(xié)作的范圍提升到新的高度。
在 WSL 上為 GUI 支持所做的工作有可能極大地改善 Linux 上的遠(yuǎn)程桌面和 Windows 虛擬化體驗(yàn)。