整理 | 祝濤
微軟官方今天宣布,Windows Subsystem for Linux (簡稱WSL) 作為應用程式在微軟商店中普遍提供給 Windows 11 PC。
WSL 預覽版登陸微軟商店将給使用者帶來巨大的便利:使用者可以更快地獲得最新的 WSL 更新和功能,而不需要更新 Windows 作業系統。這一變化将這些二進制檔案從 Windows 鏡像的一部分轉移到從應用商店安裝程式的一部分。這使得 WSL 與 Windows 版本脫鈎,使用者可以通過微軟商店進行更新。

微軟在Windows 10 一周年更新中引入了名叫 Windows Subsystem for Linux(WSL) 的 Linux 相容層,這是一個在Windows 10上能夠運作原生Linux二進制可執行檔案(ELF格式)的相容層。它是由微軟與Canonical公司合作開發,其目标是使純正的Ubuntu、Debian等映像能下載下傳和解壓到使用者的本地計算機,并且映像内的工具和實用工具能在此子系統上原生運作。2020 年的Windows 10 build 2004更新到了 WSL2。
盡管如此,在 Windows 上使用 Linux 面臨兩大障礙:安裝 WSL 沒有本應該做到的那麼容易,安裝 Linux 圖形應用也不輕松。Windows 11 解決了這兩大問題,比之前有了巨大的進步。
一旦目前的預覽版功能最終确定下來,包括 GUI 應用支援、GPU 計算和 Linux 檔案系統驅動器安裝等,你不需要更新整個 Windows 作業系統,也不需要加入 Windows Insider 預覽版,隻需要從微軟商店更新 WSL 應用即可。
安裝和使用方法
微軟在其官網釋出博文,分享了在微軟商店安裝和使用 WSL的方法。
首先要確定你擁有這些先決條件:
- 正在使用 Windows 11 版本或更高版本。(Windows Build 22000 或更高)
- 啟用虛拟機平台的可選元件。
- 你可以通過在PowerShell提示符下運作:
來完成。dism.exe/online/enable-feature/featurename:VirtualMachinePlatform/all
- 點選這個連結進入 WSL 商店頁面,點選“安裝”來安裝WSL,然後你可以安裝一個選擇的Linux發行版來開始使用它。
常見問題
微軟官方還對一些常見問題進行了解答。
Q:如果已經安裝了WSL,還可以從微軟商店安裝WSL嗎?
A:可以,如果使用者已經安裝了windows版本的WSL,同樣也可以從微軟商店安裝WSL預覽。它們可以同時安裝在使用者的裝置上,并且使用者仍然可以通路所有完全相同的WSL發行版。微軟商店提供的WSL版本總是優先的,是以當它安裝在裝置上時,使用者将優先體驗這個版本的WSL。
Q:還可以使用WSL 1發行版嗎?
A:可以,使用者也可以使用WSL 1發行版,但是需要啟用WSL可選元件。
Q:如何從微軟商店解除安裝WSL并傳回到Windows版本?
A:如果使用者已經從微軟商店安裝了WSL,并且想要傳回到Windows版本,可以遵循以下步驟:
- 在開始菜單中搜尋“WSL”,右鍵單擊應用程式并單擊“解除安裝”,解除安裝商店版本。
- 確定WSL可選元件已打開。
- 完成這些步驟後,您将回到使用windows版本的WSL。
Q:WSL在Windows 11中還有什麼新功能?
A:随着Windows 11的釋出,微軟想再次強調一些現在普遍可用的WSL新特性:
- WSLg(支援WSL的GUI應用程式)現已捆綁為WSL應用程式的一部分。
- Linux二進制檔案現在可以通過Windows GPU用于人工智能和機器學習開發場景等。
- 可以将Linux檔案系統格式化的硬碟裝入WSL。
- 安裝微軟提供的WSL預覽版,以便從Microsoft Store獲得更快的更新。
其他釋出說明
下面是微軟商店 WSL 釋出的其他說明:
- WSLg 現在作為 WSL 應用程式的一部分被捆綁在一起。
- 更新 Microsoft.WSLg 到 1.0.29 版本。
- 為 WSLg 切換到 msrdc.exe。
- 為 ARM64 啟用 virtio 以啟用 WSLg 共享記憶體。
- 允許 WSLG 使用的環境變量被 WSLENV 覆寫。
- 新的 wsl.exe -mount 功能。
- 增加 mount --vhd,使挂載 VHD 檔案更容易。
- 為 wsl.exe --mount 實作檔案系統檢測。如果在使用 wsl.exe -mount時沒有指定–type,這一改變實作了檔案系統類型檢測。
- 為 wsl.exe --mount 增加 -name 功能。這項修改增加對通過 WSL 挂載磁盤時可選擇命名挂載點的支援。
- 更新 Linux 核心到 5.10.60.1。
- 啟用額外的 USB 核心配置選項,以便通過 USB 與 Arduino 進行互動。
- 更新到上遊穩定核心版本 5.10.60。
- 啟用 virtio-pmem,支援 PCI BAR 相關位址。
- 在 Hyper-V 下啟用 ARM64 的 vPCI 支援。
- 啟用 io_uring 支援。
- 啟用 USB over IP 支援。
- 啟用 x86_64 的準虛拟化自旋鎖支援。
- 重新整理 dxgkrnl 驅動程式,以獲得錯誤 Bug 修複和代碼清理。
- 啟用對 NFSv4.1 的 NFS 用戶端支援,改進 9p 或 fstab 挂載失敗時的錯誤資訊。
- 修複 ARM64 上的 \wsl$\ 和 \wsl.localhost\ 問題。
- 切換到 mkfs.ext4 而不是預先格式化的 ext4 VHD。
- 切換到使用 mkswap 和 swapon 而不是自定義交換檔案邏輯。
- 添加邏輯,動态更新 NAT 網絡的 MTU。
- 修複/etc/wsl.conf generateResolvConf 不能按預期工作的問題。
- 增加了進度訓示器輔助功能,用于在轉換過程中顯示帶有動畫圓點的請等待資訊,向使用者顯示 WSL 仍在運作。
- 切換 wslhost.exe 為 win32 應用程式。
- 切換 wsl.exe --install 不需要-distribution 參數,但保留了對它的支援,以避免破壞現有的腳本。
- 添加 wsl.exe --version 指令
- 在 wsl.exe --status 和 wsl.exe --version 中增加了 Windows 版本。
- 清理 wsl.exe 的無效參數處理,使文法錯誤更容易自我診斷。
- 如果應用程式是通過 tile 啟動的,在關閉控制台視窗前提示使用者進行輸入。
- 為 wslg.exe 添加錯誤資訊對話框。
- 簡化不支援的指令行參數的列印。
- 如果使用者在已經安裝了 WSL 的情況下運作 wsl.exe -install,則列印一個更好的錯誤資訊。
- 為不存在自定義核心和不支援自定義核心(ARM64)添加特殊的錯誤代碼。
- 更新 wsl.exe --update,以便與已解除的軟體包一起工作–這将啟動商店頁面。
- 改進了 localhost relay 穩定性和性能。
- 額外的性能和穩定性改進。