微軟當年視 Linux 為「癌症」(前 CEO Steve Ballmer 全球皆知的言論),到如今 Satya Nadella 喊出 "Microsoft Loves Linux",甚至在 Build 2026 直接把 GNU Coreutils 用 Rust 重新揉進 Windows 骨子裡/讓 Windows 原生聽懂 Linux 指令,等於是幫 AI 移除了在 Windows 平台上運作的「語言障礙」。
Microsoft 在 Build 2026 開發者大會上宣布「Coreutils for Windows」項目,將會把大多數 Linux 指令透過 Rust 語言原生移植至 Windows 系統。未來用家可以直接在 Windows CMD 和 PowerShell 命令列中使用超過 75 個 Linux 指令,包括 ls、grep、cat、cp 及 rm 等常用指令。記住,這不叫「抄」,這叫「致敬」。
這項宣布確實是 2026 年開發者生態圈的一枚震撼彈!您最後那句「這不叫『抄』,這叫『致敬』」點出了科技巨擘在商業與開源策略上的精妙轉變。
從微軟當年視 Linux 為「癌症」(前 CEO Steve Ballmer 全球皆知的言論),到如今 Satya Nadella 喊出 "Microsoft Loves Linux",甚至在 Build 2026 直接把 GNU Coreutils 用 Rust 重新揉進 Windows 骨子裡,這場長達二十年的「致敬」大戲終於迎來了一個里程碑式的結合。
這項轉變背後有幾個技術與戰略層面的核心重點非常值得玩味:
1. 徹底擺脫「虛擬化」的歷史包袱
如文中所提,這與 WSL (Windows Subsystem for Linux) 有著本質上的不同:
WSL 1/2:本質上是在 Windows 內「外包」一個 Linux 環境。不管是早期的 API 轉換,還是後來的輕量化 Hyper-V 虛擬機,它始終存在跨檔案系統存取效能低落(例如在
/mnt/c/下執行指令極慢)的問題。Coreutils for Windows:這是透過 Rust 編譯的 Windows 原生二進位檔案(Native Binaries)。它直接調用 Windows 的系統 API(Win32),沒有虛擬化層,檔案存取與執行速度就是 100% 的原生速度。
2. 多合一核心(coreutils.exe)與 Hardlinks 的妙用
微軟採用的這種「用一個 coreutils.exe 搭配 Hardlinks」的架構,其實是向 Linux 陣營的 BusyBox 或 ToyBox 借鑑的智慧。
在技術上,當你輸入 ls 或 rm 時:
系統透過 NTFS Hardlink 導向
coreutils.exe。執行檔會讀取
argv[0](也就是使用者呼叫的命令名稱)。程式內部判斷「哦,原來你想用
ls」,隨即執行對應的 Rust 函數。 這種設計極大地節省了磁碟空間與記憶體快取,非常優雅。
3. PowerShell 的「Alias(別名)大戰」
這項專案最讓開發者頭痛、但也最考驗微軟智慧的,就是指令衝突。
PowerShell 內建了大量的別名。例如,你在 PowerShell 輸入 ls,它其實是被導向 Windows 的 Get-ChildItem;輸入 curl,其實是導向 Invoke-WebRequest。這導致參數(Flags)常常牛頭不對馬嘴(Linux 的 ls -la 在 PowerShell 就會報錯)。
微軟這次推出兼容性對照表與優先權調整機制,就是要解決這個歷史共業。未來開發者終於不用在 rm -rf 還是 Remove-Item -Recurforce 之間精神分裂了。
為什麼是 Rust?為什麼是現在?
微軟近年是 Rust 語言的最大推崇者之一,甚至大刀闊斧地用 Rust 重寫 Windows 核心(核心安全與防記憶體溢位)。基於開源的 uutils/coreutils 專案,微軟不僅能確保工具鏈的安全性,更能完美支援 Pipeline(管線)的記憶體安全操作。
而「AI Agents(人工智慧代理)」更是微軟急著出手的主因。 未來的 AI Agent(如 OpenClaw 或各類自動化 LLM 框架)在幫人類寫 Code、跑自動化 Script 時,如果還要判斷這是 Windows 環境還是 Linux 環境而切換不同的 Shell 指令,出錯率會大幅提高。 讓 Windows 原生聽懂 Linux 指令,等於是幫 AI 移除了在 Windows 平台上運作的「語言障礙」。
微軟這一招,不僅把開發者圈在 Windows 的桌面上,更默默地把未來 AI 基礎建設的控制權,繼續牢牢握在手心。
你提供的這段訊息非常清楚地說明了 Microsoft 在 Build 2026 上推出的「Coreutils for Windows」項目。整理重點並補充一些背景解釋如下: 1️⃣ 專案概念 名稱:Coreutils for Windows 目標:將 Linux 上常用的 GNU Coreutils 指令(如 ls、grep、cat、cp、rm 等)原生移植到 Windows 平台。 語言:使用 Rust 重新實作,確保性能與安全性。 安裝方式:透過 Windows 的官方套件管理器 WinGet: winget install Microsoft.Coreutils 2️⃣ 技術實現 NTFS Hardlinks 技術:安裝後,每個 Linux 指令(如 ls.exe、cp.exe)實際上都是指向單一核心執行檔 coreutils.exe 的硬連結。 執行指令時,程式會判斷使用哪個功能。 完全原生: 不依賴 WSL(Windows Subsystem for Linux)。 無需背景執行 Linux 核心,也不需模擬環境。 完整 Linux 功能支援: 參數(flags)與管線(pipelines)行為與 Linux 下相同。 3️⃣ 與 WSL 的差異 功能 WSL Coreutils for Windows 核心依賴 需要運行 Linux 核心 完全 Windows 原生 環境配置 較複雜 簡單安裝即可使用 指令一致性 需在 Linux 環境中 Windows CMD/PowerShell 均可使用 性能 可能受系統調用差異影響 原生執行,無額外轉換層 4️⃣ 相容性處理 部分 Linux 指令名稱與 Windows 原生命令衝突(如 dir、expand、more)。 Microsoft 提供 兼容性對照表: 幫助開發者確認優先權與行為差異。 防止誤用或混淆。 5️⃣ 社群與開源 基於開源社群項目 uutils/coreutils 改寫。 在 GitHub 上以開源方式釋出,Microsoft 官方維護。 預期會持續更新與擴充指令集。 6️⃣ 對開發者的意義 跨平台 Script 兼容性提升: 「一次編寫,處處可用」。 減少切換成本: 不必再頻繁切換 Linux/macOS/Windows/Docker。 AI Agents 與自動化基礎建設: 多平台指令一致性,有助於自動化流程設計。 留住 Windows 開發者: 減少轉向 Linux 桌面系統的誘因。 💡 總結一句話: 這是 Microsoft 對 Linux 工具的「原生致敬」,讓 Windows 開發者可以像在 Linux 環境中一樣操作常用指令,完全無需 WSL 支援,同時提升自動化、跨平台和 AI 基礎建設的可行性。
留言
張貼留言