還在安裝雙系統? 試試 Windows 和 Linux 合體

作爲一個長期使用 Linux 作爲主力系統的開發人員,我經常向周圍的朋友安利 Linux ( Ubuntu )系統。但非常尷尬的是,大部分人都是淺嘗輒止,最後還是會回到 Windows 系統,佈道成功的並不多。畢竟習慣的力量非常強大,要從一個熟悉的系統轉向陌生的系統,需要有足夠的動力纔行。一句“ Linux 系統上能夠玩遊戲嗎?”就能讓我啞口無言,還有諸如網課、辦公、圖像處理軟件之類的問題。的確,Linux 系統在應用程序支持方面(特別是娛樂休閒類)一直是軟肋。雖然經過這麼多年的努力,但具有全平臺支持(Windows、Linux、Mac OS等)的軟件還是相當少,特別是國內的一些辦公軟件、網課客戶端,通常只開發了 Windows 版本。

在科技領域,向來是強者恆強, Linux 系統的生態要趕超 Windows,還有很長的路要走。這個時候,我們通常會選擇一些折中的方案,兼收兩系統之長處。這其中最常用的方法就是在電腦上安裝雙系統。娛樂辦公的時候進 Windows 系統,開發的時候進 Linux 系統。然而,電腦上的雙系統,並沒有做到像手機那樣“雙卡雙待”,在一個時間點,我們只能在其中一個系統中。比如如果要在寫代碼之餘,玩兩把遊戲,就需要退出 Linux 系統,然後進入 Windows系統。反之依然,要進入 Linux 系統,就需要退出當前的系統。這樣在兩個系統之間切換,甚是不便。

WSL

因爲戰略轉型,微軟開始積極擁抱 Linux 系統,目前已經是 Linux 社區最大的貢獻者。他們也意識到這一問題,所以在 Windows 10 中增加了 WSL(Windows Subsystem for Linux)。顧名思義, WSL 就是 Windows 系統的 Linux 子系統,但並非固化在 Windows 10中,而是作爲 Windows 組件, 出現在 Windows 10 系統中(1607 版本之後)。

重點:要體驗 WSL,需要將 Windows 10 更新到 1607 之後的版本。

關於 WSL,有幾點需要澄清:

  1. WSL 並不是 Linux發行版, 它本質上是系統層面對 Linux 內核的支持,爲了在 Windows 中使用,還需要在 Win10 的應用商店內搜索下載我們喜歡的 Linux 發行版。目前, WSL 支持Ubuntu, Kali Linux,OpenSUSE 等,後續會有更多 Linux 發行版支持 WSL 。

  2. WSL 作爲系統層的一部分,相較於應用層(虛擬機)會消耗更少的資源,並且與系統鍥合度更高。事實上,我們只需要打開一個類似 CMD 的Bash命令行窗口,就可以開始使用 WSL(相當於建立了一個 Session ,因爲 WSL 會一直伴隨 Win10 的運行而運行),相對於從虛擬機啓動既省時又省力。

  3. 由於 WSL 子系統依附於“系統”,所以“子系統”會有一些限制。不過也不用擔心,雖然 WSL 不是完整的 Linux 系統,絕大多數在完整 Linux 系統能做的事,在 WSL 中也可以做到。

WSL2

在試水了 WSL 之後,微軟迅速推出了 WSL2,這是一個全新的 WSL 版本。技術演進從來都不是一蹴而就的,所以目前 WSL 和 WSL2 是並存的。秉承着舊不如新的原則,建議大家選擇 WSL2 這個版本。爲什麼呢?

WSL2 使用了全新的體系結構,該體系結構可運行真正的 Linux 內核,可在 Windows 上運行 ELF64 Linux 二進制文件。它提高了文件系統性能,增加了完整的系統調用兼容性。

當然,你也可以選擇將 Linux 發行版作爲 WSL 或 WSL2 運行。而且,你可以隨時在這些版本之間切換。

安裝

Microsoft承諾在不久的將來爲 WSL2 提供流暢的安裝體驗,並能夠通過 Windows 更新來更新 Linux 內核。就目前而言,安裝過程稍顯複雜,但也不要畏懼,按照步驟操作即可。

本文介紹在 Windows 10 上安裝 Ubuntu 20.04,但這個過程對於微軟應用商店中的任何發行版都適用。

首先,你應該啓用 Windows Subsystem for Linux 可選功能。請以管理員身份打開 PowerShell 並運行以下命令:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

接下來,將系統更新爲 WSL2 。爲此,Windows 10 必須更新爲 2004 版或這之後的版本,並且必須在BIOS 設置中啓用英特爾的虛擬化技術。然後,以管理員身份啓動 PowerShell 並運行以下命令:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

重新啓動計算機以完成 WSL 安裝並更新到 WSL2 。然後,在安裝新發行版時,需要將 WSL2 設置爲默認版本。爲此,以管理員身份打開 PowerShell 並運行以下命令:

wsl --set-default-version 2

運行該命令後,你可能會看到此消息:WSL2 需要對其內核組件進行更新。有關信息,請訪問https://aka.ms/wsl2kernel。一旦安裝了內核,請再次運行該命令,它應該成功完成而不顯示消息。

最後一步也很重要,我們應該安裝 Linux 發行版。打開微軟應用商店,然後搜索 Ubuntu 20.04 LTS 。安裝後你應該可以在 Windows 的開始菜單中找到一個新添加的 Ubuntu應用程序 。啓動它並按照說明(主要是創建一個新的 Linux 用戶)完成安裝。

要檢查 WSL2 上是否安裝了 Linux 發行版,請運行:

wsl --list --verbose

如果結果表明它使用WSL 1,則可以通過運行:

wsl --set-version <發行名稱> <versionNumber>

對其進行更改。

這樣,你已經在 Windows 10 中安裝了完整的 Ubuntu 發行版!

安裝之後

準備好 Ubuntu 之後,我們可以安裝所需的任何東西。例如,如果你從事數據分析,則可以安裝最新的 Anaconda 發行版;如果你是前端工程師,則可以安裝 angular 和 npm 等。

然而,到目前爲止,WSL 還沒有對 Linux GUI 應用程序的支持,這意味這你只能在 WSL Linux 中使用命令行,關於 Linux 命令行,可以參考我前面的一篇文章:

掌握基本的命令行,邁向 Linux 第一步

沒法在 WSL Linux 中使用圖形應用程序,那編寫 Linux 應用程序怎麼辦?總不至於使用編程神器 vi 或 emacs 吧,這可不是普通程序員能 hold 得住的兩大神器。

在這裏,向大家隆重介紹 Visual Studio Code。VSC 是許多開發人員首選的 IDE 。藉助於遠程開發插件,我們可以使用在 Windows 下安裝的 VSC,通過 SSH 協議編輯位於 WSL2 上的源碼。VSC 有各種語言的智能提示,內置 git 支持,還有衆多的插件,你所能想到的需求,幾乎都可以通過插件來完成。所以編寫 Linux 應用程序,同樣和編寫 Windows 應用程序一樣簡單方便。

缺憾

WSL2 在不停的演化中,也許過不了多久,又會出現 WSL3、WSL4,對 Linux 系統的全面支持也越來越好。就目前而言,最大的缺憾之一就是前面提到的不支持 Linux GUI。另一個缺憾是對 GPU 的支持。在過去的幾年中,WSL、虛擬化、DirectX,Windows 驅動等團隊和其他合作伙伴一直在努力開發此項功能,相信要不了多久,就可以得到全面支持。那個時候,我們就可以在 WSL 中進行機器學習相關的開發。

雖然有着這些缺憾,但 WSL 作爲 Linux 入門的系統,還是非常推薦。經常有朋友向我抱怨,說在公司就做一些修改 BUG、CURD 操作之類的開發,一點技術含量沒有。與其抱怨,不如行動起來。目前幾乎所有的服務器後端都採用了 Linux 系統,其它的諸如 Android 系統開發、內核開發、機器學習、大數據,都是以 Linux 作爲首選系統。邁出轉變的第一步,也許前面的路就開闊了。

參考

  1. What is the Windows Subsystem for Linux?

  2. WSL 使用指南——01 WSL入門

  3. Dual Boot is Dead: Windows and Linux are now One

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章