...

Windows 11最優秀的(de)部分就(jiù)是(shì)對WSL的(de)明顯改進

2021-10-13

在(zài)外媒 Ars Technica 本周早些時(shí)候發布的(de)評測中,給 Windows 11 系統的(de)整體評價是(shì)“lukewarm”(不(bù)溫不(bù)火)。不(bù)過在(zài)後續評測中,外媒認爲(wéi / wèi) Windows 11 系統中最優秀的(de)部分就(jiù)是(shì)改善了(le/liǎo)對 Linux 系統的(de)支持。

自上(shàng)線以(yǐ)來(lái),Windows 10 系統中的(de) Windows Subsystem for Linux(WSL)爲(wéi / wèi)那些需要(yào / yāo)使用 Windows 和(hé / huò) Linux 兩種環境的(de)開發者、系統管理員等提供了(le/liǎo)便利。但 WSL 也(yě)存在(zài)兩個(gè)問題:第一(yī / yì /yí)個(gè)問題就(jiù)是(shì)安裝過程比較複雜。第二個(gè)問題就(jiù)是(shì)雖然能夠讓圖形應用程序工作,但整個(gè)過程比較痛苦,而(ér)且需要(yào / yāo)借助一(yī / yì /yí)些晦澀的(de)第三方應用。

在(zài) Windows 11 系統中,微軟終于(yú)解決了(le/liǎo)這(zhè)兩個(gè)問題。雖說(shuō) Windows 11 上(shàng)的(de) WSL 仍然不(bù)完美,但它比 Windows 10 上(shàng)的(de) WSL 有了(le/liǎo)巨大(dà)的(de)改進。

在(zài) Windows 11 上(shàng)安裝 WSL

想要(yào / yāo)在(zài) Windows 系統上(shàng)安裝 WSL 并不(bù)是(shì)簡單的(de)事情,不(bù)過自 Windows 10 Version 2004 以(yǐ)來(lái)微軟一(yī / yì /yí)直嘗試進行改進。隻要(yào / yāo)打開一(yī / yì /yí)個(gè)高級命令提示符(開始-->輸入 cmd-->點擊以(yǐ)管理員身份運行),在(zài)提示符下輸入 wsl --install,你就(jiù)可以(yǐ)開始了(le/liǎo)。值得慶幸的(de)是(shì),Windows 11 沒有改變這(zhè)個(gè)過程。

一(yī / yì /yí)個(gè)簡單的(de) wsl --install,沒有其他(tā)參數,就(jiù)可以(yǐ)得到(dào) Hyper-V 和(hé / huò) WSL 的(de)其他(tā)基礎,以(yǐ)及 Ubuntu 的(de)主流版本。如果你不(bù)是(shì) Ubuntu 的(de)粉絲,你可以(yǐ)用 wsl --list --online 命令查看有哪些其他(tā)容易安裝的(de)發行版。如果你決定喜歡一(yī / yì /yí)個(gè)不(bù)同的(de)發行版,你可以(yǐ)用--例如,wsl --install -d openSUSE-42 來(lái)安裝它。

如果你不(bù)确定你喜歡哪個(gè)發行版,不(bù)要(yào / yāo)着急。你可以(yǐ)随心所欲地(dì / de)安裝,隻需重複 wsl --list --online 來(lái)列舉你的(de)選項,然後 wsl --install -d distroname 來(lái)安裝你喜歡的(de)任何一(yī / yì /yí)個(gè)。

安裝第二個(gè)發行版并不(bù)會卸載第一(yī / yì /yí)個(gè)發行版;它創建了(le/liǎo)一(yī / yì /yí)個(gè)獨立的(de)環境,與其他(tā)發行版無關。你可以(yǐ)随心所欲地(dì / de)同時(shí)運行這(zhè)些已安裝的(de)環境,而(ér)不(bù)必擔心一(yī / yì /yí)個(gè)環境會擾亂另一(yī / yì /yí)個(gè)環境。

WSL 現在(zài)支持圖形和(hé / huò)聲音

除了(le/liǎo)易于(yú)安裝之(zhī)外,Windows 11 上(shàng)的(de) WSL 還支持 WSL 應用程序中的(de)圖形和(hé / huò)音頻。這(zhè)并不(bù)完全是(shì)第一(yī / yì /yí)次--微軟在(zài) 4 月份通過 Windows 10 Insider Build 21364 首次推出(chū) WSLg。但 Windows 11 是(shì)第一(yī / yì /yí)個(gè)支持 WSLg 的(de)生産型 Windows 版本。

WSLg 是(shì) Windows Subsystem for Linux GUI 的(de)簡稱,你可以(yǐ)從 Ubuntu(或其他(tā)發行版)的(de)命令行中安裝 GUI 應用程序(例如 Firefox)--并且它們會像預期那樣工作,包括聲音。當外媒在(zài) Framework 筆記本上(shàng)的(de) Windows 11 上(shàng)安裝 WSLg 時(shí),從 Ubuntu 終端運行 Firefox 會自動彈出(chū)标志性的(de)浏覽器。在(zài)它裏面進入 YouTube 也(yě)是(shì)完美的(de),視頻中沒有掉幀,音頻中也(yě)沒有故障。

微軟決定面向未來(lái),使用 Wayland 協議而(ér)不(bù)是(shì)越來(lái)越老的(de) X11/xorg。 爲(wéi / wèi)了(le/liǎo)使這(zhè)一(yī / yì /yí)切順利進行,這(zhè)意味着在(zài) Wayland 的(de) Weston 參考合成器上(shàng)建立圖形界面,與 XWayland 相連接以(yǐ)支持 X 客戶端,由 FreeRDP 提供本地(dì / de) Windows 系統和(hé / huò)在(zài) WSLg 下運行的(de) X/Wayland 應用程序之(zhī)間的(de)連接。

那麽,我們可以(yǐ)在(zài) Windows 11 上(shàng)用 WSLg 做什麽?

我們看到(dào)的(de)關于(yú) WSLg 的(de)最多的(de)問題之(zhī)一(yī / yì /yí)可以(yǐ)表述爲(wéi / wèi)“爲(wéi / wèi)什麽要(yào / yāo)這(zhè)麽做?”這(zhè)是(shì)因爲(wéi / wèi) Linux 世界中的(de)大(dà)多數 GUI “殺手級應用”并不(bù)是(shì)真正針對 Linux 的(de)--絕大(dà)多數已經被直接移植到(dào)了(le/liǎo) Windows 平台上(shàng)。對于(yú)這(zhè)些應用程序來(lái)說(shuō),運行本地(dì / de) Windows 終端往往更有意義。

說(shuō)到(dào)這(zhè)裏,有一(yī / yì /yí)個(gè)明顯的(de) WSLg 的(de)“殺手級應用”就(jiù)是(shì) virt-manager,這(zhè)個(gè)源自 RedHat 的(de)虛拟化管理工具。virt-manager 是(shì)一(yī / yì /yí)個(gè)簡單的(de)工具,它使用 Linux 内核的(de)虛拟機來(lái)簡化虛拟機的(de)創建、管理和(hé / huò)操作。

通過 virt-manager,你可以(yǐ)看到(dào)你的(de)虛拟機的(de)簡單列表,以(yǐ)及當前與每個(gè)虛拟機相關的(de)磁盤、網絡和(hé / huò) CPU 活動的(de)數量。你還可以(yǐ)操縱它們的(de)虛拟“硬件”--例如,通過添加或删除内存、"磁盤"、網絡接口等,并啓動、暫停或停止它們。創建和(hé / huò)銷毀虛拟機和(hé / huò)管理一(yī / yì /yí)樣簡單--最後,virt-manager 允許你将一(yī / yì /yí)個(gè)圖形控制台直接拉到(dào)每個(gè)虛拟機上(shàng),其行爲(wéi / wèi)就(jiù)像連接到(dào)裸機上(shàng)的(de)物理顯示器一(yī / yì /yí)樣。

如果所有這(zhè)些都隻在(zài)本地(dì / de)主機上(shàng)工作,那麽在(zài) WSLg 下就(jiù)會很無用。嵌套虛拟化是(shì)一(yī / yì /yí)個(gè)東西,但它通常不(bù)是(shì)你想在(zài)生産中做的(de)事情。然而(ér),virt-manager 允許你管理任何你能 SSH 到(dào)的(de)機器上(shàng)的(de)虛拟機,而(ér)不(bù)僅僅是(shì)本地(dì / de)主機。在(zài)實踐中,外媒每天都使用這(zhè)個(gè)遠程管理功能來(lái)管理幾十台主機(和(hé / huò)幾千個(gè)虛拟機),包括本地(dì / de)和(hé / huò)遠程。

Windows 11 上(shàng)的(de) WSL 還無法做到(dào)哪些?

雖然 Windows 11 系統中的(de) WSL 功能已經獲得了(le/liǎo)增強,但它仍然不(bù)是(shì)一(yī / yì /yí)個(gè)真正的(de) Linux VM。

WSL 中沒有網絡橋接模式。這(zhè)意味着很難在(zài)你的(de) WSLg 訪客上(shàng)運行網絡服務器應用程序(Apache、Nginx、MySQL、Samba 等)并将其服務暴露給網絡上(shàng)的(de)其他(tā)機器。這(zhè)種自稱是(shì)“搞笑的(de)不(bù)被支持的(de)、未被批準的(de)和(hé / huò)試驗性的(de)”工作方法似乎仍然是(shì)最接近真正的(de)網絡橋的(de)東西--這(zhè)極大(dà)地(dì / de)限制了(le/liǎo)基于(yú) WSL 的(de)應用服務器的(de)可用性。

你不(bù)能在(zài) WSLg 下運行 GNOME 的(de)軟件中心應用程序--更準确地(dì / de)說(shuō),你可以(yǐ)安裝和(hé / huò)運行它,但它實際上(shàng)是(shì)無用的(de)。我們不(bù)确定軟件中心到(dào)底出(chū)了(le/liǎo)什麽問題,但是(shì)它在(zài)控制台彈出(chū)了(le/liǎo)一(yī / yì /yí)個(gè)“連接 upower 失敗”的(de)錯誤,并且未能列出(chū)任何可用的(de)應用程序。它也(yě)沒有列出(chū)我們所有已安裝的(de)應用程序!

你也(yě)不(bù)能在(zài) WSLg 下運行 GNOME shell 桌面環境本身。運行 apt install gnome-shell 可以(yǐ)正常工作,并拉入了(le/liǎo)滿足該要(yào / yāo)求所需的(de)巨大(dà)的(de)依賴列表--但 gnome-shell 本身卻以(yǐ)不(bù)支持會話類型而(ér)會失敗,這(zhè)實際上(shàng)意味着它不(bù)喜歡 WSLg 的(de) Weston/XWayland 環境。

缺乏對 ZFS 原生加密

最後,Ubuntu 出(chū)色的(de)内置 OpenZFS 支持不(bù)見了(le/liǎo)。你可以(yǐ)毫不(bù)費力地(dì / de)安裝 zfsutils-linux,但是(shì)該軟件包依賴于(yú) Canonical 的(de)内部内核,并内置了(le/liǎo) ZFS 支持,而(ér)微軟在(zài)其自己的(de) WSL2 内核中并沒有提供這(zhè)種支持。

有決心的(de) Ubuntu 用戶仍然可以(yǐ)通過 apt 安裝 zfs-fuse,并期望這(zhè)個(gè)用戶模式的(de)實現能夠像在(zài)原生 Ubuntu 下一(yī / yì /yí)樣工作,但是(shì)我們不(bù)建議将其用于(yú)生産;FUSE 的(de)實現仍然停留在(zài) 0.7.0,而(ér)内核内的(de)版本是(shì) 0.8.3。這(zhè)意味着缺乏對 ZFS 原生加密的(de)支持,以(yǐ)及大(dà)量的(de)其他(tā)功能、錯誤修複和(hé / huò)增強功能,更不(bù)用說(shuō)在(zài) FUSE 而(ér)不(bù)是(shì)内核下運行的(de)性能影響了(le/liǎo)。

總結

如果你已經是(shì) Windows Subsystem for Linux(WSL)的(de)用戶,Windows 11 與你習慣的(de) Windows 10 相比,提供了(le/liǎo)極大(dà)的(de)改進體驗。它的(de)安裝更容易,提供了(le/liǎo)更多的(de)功能,并提供了(le/liǎo)比舊的(de)解決方法(如運行 MobaXTerm 的(de) X11 服務器)更好的(de)桌面集成。

而(ér)對于(yú)資深 Linux 用戶來(lái)說(shuō),新的(de) WSLg 功能仍不(bù)具備太多的(de)吸引力。但它确實爲(wéi / wèi)“被困”在(zài) Windows 環境中的(de) Linux 用戶消除了(le/liǎo)很多痛點,同時(shí)也(yě)爲(wéi / wèi)新手提供了(le/liǎo)最簡單的(de)方法,使他(tā)們能夠嘗試新的(de)東西。

如果你還在(zài)爲(wéi / wèi)是(shì)否或何時(shí)升級 Windows 11 而(ér)猶豫不(bù)決,其新的(de)和(hé / huò)改進的(de) WSL 可能是(shì)最好的(de)理由。


來(lái)源:cnBeta