Windows 11最優秀的部分就是對WSL的明顯改進
在外媒 Ars Technica 本周早些時候發佈的評測中,給 Windows 11 系統的整體評價是”lukewarm”(不溫不火)。 不過在後續評測中,外媒認為 Windows 11 系統中最優秀的部分就是改善了對 Linux 系統的支援。
自上線以來,Windows 10 系統中的 Windows Subsystem for Linux(WSL)為那些需要使用 Windows 和 Linux 兩種環境的開發者、系統管理員等提供了便利。 但 WSL 也存在兩個問題:第一個問題就是安裝過程比較複雜。 第二個問題就是雖然能夠讓圖形應用程式工作,但整個過程比較痛苦,而且需要藉助一些晦澀的第三方應用。
在 Windows 11 系統中,微軟終於解決了這兩個問題。 雖說 Windows 11 上的 WSL 仍然不完美,但它比 Windows 10 上的 WSL 有了巨大的改進。
在 Windows 11 上安裝 WSL
想要在 Windows 系統上安裝 WSL 並不是簡單的事情,不過自 Windows 10 Version 2004 以來微軟一直嘗試進行改進。 只要打開一個高級命令提示符(開始–>輸入 cmd–>點擊以管理員身份運行),在提示符下輸入 wsl –install,你就可以開始了。 值得慶幸的是,Windows 11 沒有改變這個過程。
一個簡單的 wsl –install,沒有其他參數,就可以得到Hyper-V和WSL的其他基礎,以及 Ubuntu 的主流版本。 如果你不是Ubuntu的粉絲,你可以用 wsl –list –online 命令查看有哪些其他容易安裝的發行版。 如果你決定喜歡一個不同的發行版,你可以用–例如,wsl –install -d openSUSE-42 來安裝它。
如果你不確定你喜歡哪個發行版,不要著急。 你可以隨心所欲地安裝,只需重複 wsl –list –online 來列舉你的選項,然後 wsl –install -d distroname 來安裝你喜歡的任何一個。
安裝第二個發行版並不會卸載第一個發行版;它創建了一個獨立的環境,與其他發行版無關。 你可以隨心所欲地同時運行這些已安裝的環境,而不必擔心一個環境會擾亂另一個環境。
WSL 現在支援圖形和聲音
除了易於安裝之外,Windows 11 上的 WSL 還支援 WSL 應用程式中的圖形和音訊。 這並不完全是第一次–微軟在 4 月份通過 Windows 10 Insider Build 21364 首次推出 WSLg。 但 Windows 11 是第一個支援 WSLg 的生產型 Windows 版本。
WSLg 是 Windows Subsystem for Linux GUI 的簡稱,你可以從 Ubuntu(或其他發行版)的命令行中安裝 GUI 應用程式(例如 Firefox)–並且它們會像預期那樣工作,包括聲音。 當外媒在 Framework 筆記本上的 Windows 11 上安裝 WSLg 時,從 Ubuntu 終端運行 Firefox 會自動彈出標誌性的瀏覽器。 在它裡面進入YouTube也是完美的,視頻中沒有掉幀,音訊中也沒有故障。
微軟決定面向未來,使用 Wayland 協定而不是越來越老的 X11/xorg。 為了使這一切順利進行,這意味著在 Wayland 的 Weston 參考合成器上建立圖形介面,與 XWayland 相連接以支援 X 用戶端,由 FreeRDP 提供本地 Windows 系統和在 WSLg 下運行的 X/Wayland 應用程式之間的連接。
那麼,我們可以在 Windows 11 上用 WSLg 做什麼?
我們看到的關於 WSLg 的最多的問題之一可以表述為「為什麼要這麼做? “這是因為Linux世界中的大多數 GUI “殺手級應用”並不是真正針對Linux的–絕大多數已經被直接移植到了 Windows 平臺上。 對於這些應用程式來說,運行本地 Windows 終端往往更有意義。
說到這裡,有一個明顯的 WSLg 的「殺手級應用」就是 virt-manager,這個源自 RedHat 的虛擬化管理工具。 virt-manager 是一個簡單的工具,它使用 Linux 內核的虛擬機來簡化虛擬機的創建、管理和操作。
通過 virt-manager,你可以看到你的虛擬機的簡單清單,以及當前與每個虛擬機相關的磁碟、網路和 CPU 活動的數量。 你還可以操縱它們的虛擬「硬體」–例如,通過添加或刪除記憶體、「磁碟」、網路介面等,並啟動、暫停或停止它們。 創建和銷毀虛擬機和管理一樣簡單–最後,virt-manager 允許你將一個圖形控制台直接拉到每個虛擬機上,其行為就像連接到裸機上的物理顯示器一樣。
如果所有這些都只在本地主機上工作,那麼在 WSLg 下就會很無用。 嵌套虛擬化是一個東西,但它通常不是你想在生產中做的事情。 然而,virt-manager 允許你管理任何你能 SSH 到的機器上的虛擬機,而不僅僅是本地主機。 在實踐中,外媒每天都使用這個遠端管理功能來管理幾十台主機(和幾千個虛擬機),包括本地和遠端。
Windows 11 上的 WSL 還無法做到哪些?
雖然 Windows 11 系統中的 WSL 功能已經獲得了增強,但它仍然不是一個真正的 Linux VM。
WSL 中沒有網路橋接模式。 這意味著很難在你的 WSLg 訪客上運行網路伺服器應用程式(Apache、Nginx、MySQL、Samba等)並將其服務暴露給網路上的其他機器。 這種自稱是”搞笑的不被支援的、未被批准的和試驗性的”工作方法似乎仍然是最接近真正的網络橋的東西–這極大地限制了基於 WSL 的應用伺服器的可用性。
你不能在 WSLg 下運行 GNOME 的軟體中心應用程式–更準確地說,你可以安裝和運行它,但它實際上是無用的。 我們不確定軟體中心到底出了什麼問題,但是它在控制台彈出了一個「連接 upower 失敗」的錯誤,並且未能列出任何可用的應用程式。 它也沒有列出我們所有已安裝的應用程式!
你也不能在 WSLg 下運行 GNOME shell 桌面環境本身。 運行apt install gnome-shell可以正常工作,並拉入了滿足該要求所需的巨大的依賴清單–但 gnome-shell 本身卻以不支援會話類型而會失敗,這實際上意味著它不喜歡 WSLg 的 Weston/XWayland 環境。
缺乏對 ZFS 原生加密
最後,Ubuntu 出色的內置 OpenZFS 支持不見了。 你可以毫不費力地安裝 zfsutils-linux,但是該軟體包依賴於 Canonical 的內部內核,並內置了 ZFS 支援,而微軟在其自己的 WSL2 內核中並沒有提供這種支援。
有決心的Ubuntu使用者仍然可以通過apt安裝 zfs-fuse,並期望這個使用者模式的實現能夠像在原生Ubuntu下一樣工作,但是我們不建議將其用於生產;FUSE的實現仍然停留在0.7.0,而內核內的版本是0.8.3。 這意味著缺乏對 ZFS 原生加密的支援,以及大量的其他功能、錯誤修復和增強功能,更不用說在 FUSE 而不是內核下運行的性能影響了。
總結
如果你已經是 Windows Subsystem for Linux(WSL)的使用者,Windows 11 與你習慣的 Windows 10 相比,提供了極大的改進體驗。 它的安裝更容易,提供了更多的功能,並提供了比舊的解決方法(如運行MobaXTerm的 X11 伺服器)更好的桌面集成。
而對於資深 Linux 用戶來說,新的 WSLg 功能仍不具備太多的吸引力。 但它確實為”被困”在 Windows 環境中的 Linux 使用者消除了很多痛點,同時也為新手提供了最簡單的方法,使他們能夠嘗試新的東西。
如果你還在為是否或何時升級 Windows 11 而猶豫不決,其新的和改進的 WSL 可能是最好的理由。