WSL 玩玩就好,使用真正的Ubuntu Desktop 來工作吧!
WSL(Windows Subsytem For Linux)  是微軟推出可以在Windows 下執行Linux 的方式。它是使用Windows 的虛擬化平台技術執行一個 Ubuntu Linux 容器(container)。這觀念其實與在Linux 使用 docker 執行容器服務比較起來是非常平凡的一件事。但容器的優點是輕薄短小,讓應用程式可以隨處移動,但容器要拿來跑 Ubuntu 桌面,就好像是將整個貨櫃塞滿,不僅沈重且擁擠不堪,微軟勢必會拿掉不相干的部分,也就是說整個WSL 的發展,已經是另外一個Linux 版本,不是原汁原味的Ubuntu Desktop 了。即便是現行的WSL2  還僅支援指令介面,要等到未來的WSLg 才會原生支援圖型介面,那你為何不現在就用RDP 或 VNC 直接連Ubuntu遠端桌面會比較快?其實Linux 桌面已是成熟的應用,已經可以獨當一面,實在沒有必要躲在Windows 底下運作了。

下面就是五大不使用 WSL 來工作的理由

WSL 會消耗電腦硬體資源

當開發者使用Windows 電腦要在Linux 環境做開發時,你的確可以執行WSL 容器來運作Linux。但那是執行在你的個人電腦上消耗你的硬體資源。如果你要在 WSL 上執行大量運算,你要確保你的Windows電腦有足夠資源可用,否則你要一邊跑Linux 運算,一邊執行Windows 程式的話,電腦可能會變得很慢。但是如果是透過網路連線Ubuntu 桌面伺服器主機,運算資源是完全分開的,這對老舊的Windows 電腦要使用 Linux 環境會是比較好的方式。尤其現在WSL 還不支援圖型介面,遠端桌面對於需要Linux 桌面應用的Windows使用者來說是最佳選擇。其實你也可以直接用Ubuntu 電腦RDP 連回Windows 桌面,這樣還是可以達到同時操控兩種作業系統的目的。

WSL 的運作是在獨立的網段

你在 Windows 電腦執行WSL 後,基本上容器是 NAT 的獨立 IP 而非橋接的 IP。這代表你的容器可以對外連線,但是在網路上的其它電腦無法連進此容器。你可能需要設定port forwarding 來達成連線。但這對開發人員是很麻煩的一件事。例如今天你在公司執行了 WSL,回到家想要再連進WSL,你無法直接連線,甚至要作檔案傳輸也會有問題。你可能需要坐在電腦前面才能操控此容器,並不是很方便。反觀使用遠端桌面連線Ubuntu就沒有這個問題,隨時可連,傳檔也沒問題。

成本考量

如果你希望買一台Windows 筆電來跑 WSL 的話,還不如買一台 Ubuntu Linux 筆電來工作。你不僅省下Windows 作業系統的費用還省下買Office 及其他應用程式的費用。因為 Ubuntu Linux 已經包含眾多開源程式,可以取代眾多商業軟體。即便你目前沒有預算買新電腦,想要在舊Windows 電腦執行WSL 可能無法安裝或跑不動。唯一可以做的是就是直接改裝成 Ubuntu Desktop,不僅效能加倍,還一併有眾多開源軟體可用,拿來工作其實都還夠用。

WSL 安裝很花時間

WSL 其實安裝起來要花一些時間。你至少要Win 10 或是 Win 11 以上的特定版本才行。實際測試為了安裝 WSL 你要不斷更新作作業系統到最新並且要啟動虛擬化平台及WSL功能,最後還要安裝 patch 及下載Ubuntu 才能用,零零總總居然花了我一整個上午才勉強執行成功。而這麼多工作只得來一個指令操作介面。如果現行要跑圖型介面還需要安裝第三方的 X server 軟體,這又要花時間研究如何設定。可是如果你在實體主機或虛擬機上安裝 Ubuntu Desktop,可能只要10-15 分鐘就全部搞定了。

WSL 用途太單純

使用 WSL 最多的可能是程式開發人員。我不知道用 ssh 或遠端桌面操控Linux 會不會比直接使用WSL來得不方便,但一定要在Windows 裡面裝一個Linux 子系統實在是見人見智。如果你不是程式開發人員,作業系統大部份會二選一,因為沒有太多理由要不斷在兩個作業系統做切換。如果你懂得用一些開源程式做Windows 系統的工作,我會見議就勇敢切換到 Ubuntu Desktop 吧!如果真的還會用到 Windows,那就用遠端桌面連回Windows 舊電腦就行了。

結論

因為Ubuntu Desktop 或是其他Linux 桌面愈來愈多人用,其實WSL 是微軟用來留住這些改變心意的使用者。但是這種容器化的桌面作業系統肯定會與Ubuntu Desktop 分道揚鑣,也就是所有開源的努力不會在WSL 實現,反到是真正的Ubuntu Desktop  才是全功能的主流工作平台。你可以玩玩 WSL 但不要太認真。你會少掉很多操控 Ubuntu 桌面的功能及接觸眾多開源程式的機會,那才是真正的樂趣所在!

分享


為何開發者應該轉向到 Linux 環境做開發?