Categories
程式開發

微軟不會將Windows遷移至Linux


這裡的重點甚至不在Windows 或者Linux,而是我們該先選擇Hyper-V 還是KVM。解決了這個問題,Windows 與Ubuntu 棧都能通過些許調整在對方之上順暢運行。

最近的一連串事件,不由得令人懷疑微軟是不是打算在Linux 內核之上對Windows 加以重構。

我個人對於微軟積極參與Linux 項目倒是有一點自己的見解。作為Canonical 桌麵團隊的一員,我負責在Windows Subsystem for Linux(WSL)上交付Ubuntu。當時,我經常跟眾多參與Linux 及其他開源項目的微軟員工交流,也能拿到關於微軟產品及發展策略的最新簡報。但這裡要向大家聲明,以下內容只是我的個人猜想,且不會公開任何不宜發布的內容。

我很高興能夠在微軟與Linux 社區之間找到自己的位置。兩個社區都不乏極富創造力、善良且極具個人魅力的成員。隨著社區間邊界的逐漸模糊,無數新的成果也接踵而至。這有點像是自然界中的異花授粉,會讓每個植株都變得更富活力。

默認情況下,WSL 不會進行無人值守升級,因為其中沒有systemd 這樣的傳統init 在後台執行升級。你可以在Windows 任務管理器中設置基本任務,在登錄時以root 用戶身份運行apt update,而後向任務中添加運行apt upgrade 的操作:

微軟不會將Windows遷移至Linux 1

使用Windows 任務管理器在WSL 的Ubuntu 上運行自動更新

我對微軟出於產品及工程方面的考慮,而有可能將Windows 操作系統內核轉移至Linux 內核的觀點深表懷疑。下面請大家聽聽我的想法。

首先,我這樣理解Slashdot 與Hacker News 近期經常發布此類觀點的原因:

  1. 典型的標題黨行為。
  2. 對於開源及Linux 倡導者們來說,這是他們一直期盼的結局。
  3. 當今世界上,Windows 所扮演的角色正在發生變化。在這塊巨大的系統市場蛋糕中,Android、iOS、MacOS、Chrome OS 以及Ubuntu 牢牢把持著自己的一塊。

隨著在Azure 與WSL 上使用Linux 成為可能,這種猜測的合理性開始增加。

Windows 與Linux 的存在代表著宇宙的雙重性。這是兩股相互對立、但又彼此補充的力量,缺一不可。而將二者融合起來,則像是一種神奇的魔法。 “在與Windows 及MacOS 的競爭過程中,Linux 逐漸成長為優秀的操作系統。”

而我認為Windows 不大可能改用Linux 內核的理由如下:

  1. Windows 中的NT 內核能夠提供一定程度的向下兼容性、長期支持與驅動程序可用性,而這一切都是Linux 最近才正在努力的方向。在Linux 中重現這些能力需要耗資數百萬美元。微軟的很多付費客戶也將在未來繼續支持Windows 系統。正如微軟方面所言,Windows 並不是他們的負擔,因此並不存在為了節約開支而轉向Linux 內核的情況。另外,即使真的轉向Linux,也有可能在單一內核的背景之下導致畸形文化。事實上,正是在與Windows 及MacOS 的競爭過程中,Linux 逐漸成長為優秀的操作系統。更合理的結果應該是,開源創新繼續在所有操作系統之間往來傳播。 Windows 與Linux 開源貢獻者將共享這兩大生態系統中的精華。

  2. 目前尚不清楚Windows 用戶空間能否從NT 重新遷移至Linux 內核,同時繼續保持Windows 強大的兼容性,特別是企業級客戶以付費方式獲得的關鍵任務應用程序兼容性。 Windows 在內核空間與用戶空間方面並沒有像Linux 那樣做出嚴格劃分。 NT 內核中大約包含400 項明確記錄的syscalls,外加約1700 項明確記錄的Win32 API 調用。要在這一背景之下保證Windows 開發者及其工具擁有精確的兼容性,必然涉及大量重新實現工作。 Linux 在amd64 上則只有313 項syscalls,但即使是這樣,微軟在將WSL 1 中syscall 事務層轉向WSL 2 中虛擬內核以重新實現開發者此前已經在使用的數十種非標準Linux ABI 操作方法時,也遇到了巨大的阻力。很明顯,在Linux 上的SQL Server 中實現NT 相關兼容性相對容易,但為數百萬開發人員的應用程序提供兼容性保證則絕對不是嘴上說說這麼簡單。

  3. 微軟近年來在Windows 身上砸下巨額資源。微軟此前在Windows 10 的可用性、新功能以及性能改進方面做出努力,也獲得了不錯的回報。這些改進,加上OEM 合作以及Surface 的推出,再次振興了一度遭受iPad 與Chromebook 雙重衝擊的PC 市場。微軟一直努力使Windows 成為出色的開發平台,相關項目包括Windows Terminal, PowerToys, Windows Subsystem for Linux 以及Visual Studio 2019。 Insiders 計劃也非常成功。 Windows 為大多數Surface 設備產品線提供支持,這也成為微軟目前的工作重點。 2018 年與2020 年的內部重組也表明,Surface 已經成為Windows 未來發展中的一大重要元素。 Windows 也在為Xbox 提供支持,同時繼續掌控著龐大的PC 遊戲市場。最後,微軟提出了Windows 10X 的構想,表示10X 將成為Windows 10 之後的下一代操作系統概念,有望匹配Surface Neo 等未來硬件平台。

  4. 微软无需使用 Linux 内核,也同样能够在市场上拥有旺盛的生命力。在移动市场上遭遇滑铁卢后,微软意识到设备的格局正在发生变化。在操作系统与平台市场上,包括 Android、Ubuntu、iOS、MacOS、Alexa、Chrome OS 正在为 x86 乃至 ARM 等多种计算设备提供底层支持。微软也证明,他们完全有能力在其他平台上提供强大的产品与服务,同时继续保持自家 Windows 传统平台的显著竞争力。微软还立足 Android 推动移动领域的创新,包括移植 Office 应用、推出主屏幕启动器以及新的 Surface Duo。在 Ubuntu 上,微软拿出了面向 Linux 工作站的 Code、.NET、Azure 工具、Teams、PowerShell、Sysinternals for Linux,已经即将推出的 Edge 浏览器与配套微软 Web 开发工具。想在 Azure 上运行 Ubuntu?微软已经提供现成服务,并与 Canonical 紧密合作以带来更出色的使用体验。

更重要的問題,並不是微軟是否打算將Windows 遷移至Linux,而是Windows 打算在開源道路上走多遠。我們已經見證了Windows Terminal、PowerToys 等組件要么開始使用開源成果,要么正籌劃轉向開源。因此更現實也更合乎邏輯的目標,應該是以能夠使其他操作系統受益的方式持續開放Windows 組件乃至Windows 本體的開發過程。在這輪轉型中,Insiders 計劃還僅僅只是第一步。

Windows 甚至採取了Ubuntu 的版本發布節奏,開始在每年4 月和10 月發布新版本,同時在固定發行版中引入擴展支持。

微軟發布的一篇博文與我的個人判斷相互印證,即桌面操作系統的對抗時代即將結束。我們正在邁進一個新時代,屆時高端工作站將同時運行多種操作系統(類似於運行時)。因此這裡的重點甚至不在Windows 或者Linux,而是我們該先選擇Hyper-V 還是KVM。解決了這個問題,Windows 與Ubuntu 棧都能通過些許調整在對方之上順暢運行。微軟為Linux 內核提供補丁程序,保證Linux 能夠在Hyper-V 上正常運作;同時也調整了Windows,使其與KVM 良好對接。

由於整個微軟都在趨於開源,因此Ubuntu 的一部分將進入Windows,而Windows 的一部分則將進入Linux。

微軟不會將Windows遷移至Linux 2

其中最關鍵的背景,在於開源已經成為軟件世界中的王,而微軟也為自己在開源開發模式中的貢獻感到無比自豪。

Windows 與Ubuntu 都只有一條道路可走———通過開源不斷完善自身。雙方都將發揮自己的相對優勢,並將開源協作的範圍提升到新的高度。

微軟不會將Windows遷移至Linux 3

在WSL 上為GUI 支持所做的工作有可能極大地改善Linux 上的遠程桌面和Windows 虛擬化體驗。

原文鏈接

否,Microsoft不會將Windows遷移到Linux