WSL2:Windows 親生的 Linux 子系統


作 者:道哥,10+年的嵌入式開發老兵。

公眾號:【IOT物聯網小鎮】,專注於:C/C++、Linux操作系統、應用程序設計、物聯網、單片機和嵌入式開發等領域。 公眾號回復【書籍】,獲取 Linux、嵌入式領域經典書籍。

轉 載:歡迎轉載文章,轉載需注明出處。

在上一篇文章中,我們主要聊了一下:在 Windows 系統中,安裝 WSL 子系統

文章在此:WSL:在 Windows 系統中開發 Linux 程序的又一神器

但是 WSL 只是長得像 Linux 而已,雖然在這個子系統中,我們可以執行 Linux 程序,但是到了底層,WSL 調用的還是 win32 API

也就是說:WSL 只是一個適配層

后來,微軟終於放出了 WSL2 這個真正的 Linux 子系統,這是一個真正的 Linux 完整內核,與傳統的虛擬機 VitualBoxVMWare 一樣,但是它與宿主機的互操作性更好。

為了完整性,我們就繼續把這個流程給走完。

在這個過程中遇到的問題、需要的安裝軟件等資源,已經上傳到網盤,在文末有下載地址。

安裝 WSL2 的前提條件

在開始之前,我們先來看一下目前電腦中的 WSL 的版本。

Windows 命令行窗口,輸入指令: wsl --list --verbose(或者輸入簡化版本: wsl -l -v),得到結果:

可以看到我們上一篇文章中安裝的 Ubuntu-18.04,而且 WSL 的版本是 1

如果要升級到 WSL2Windows 操作系統的內核版本必須滿足一定的要求,如下:

我們就按照官方的要求,檢查一下自己的電腦是否滿足需求:選擇 Windows 徽標鍵 Win + R,然后鍵入 winver,選擇 “確定”。

看來我的系統能滿足要求,那就繼續下一個步驟!

如果你的內核版本不滿足這個需求,可以搜索關鍵字 “WIN10 獲取內部預覽版本”,就可以找到解決方案。

安裝 WSL2

繼續以管理員身份啟動 PowerShell,然后執行指令:

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

此時,又到了重啟電腦的時候!

重啟之后,繼續在 PowserShell 中,把 Ubuntu-18.04 設置為 WSL2 版本。

輸入的指令是:

wsl --set-version Ubuntu-18.04 2

這個步驟可能會遇到這樣的問題:

解決方法:從微軟的官網下載 WSL2 Linux 內核升級包,下載地址是:

WSL2 Linux 內核升級包

也可以從文末的網盤中下載

下載之后,一路 Next 安裝即可。

此時,在 PowerShell 中重新執行 wsl --set-version Ubuntu-18.04 2 指令(需要等待一段時間,大概 1 分鍾左右吧):

同時,把 WSL 的默認版本改為 2wsl --set-default version 2

此時,我們再執行指令 wsl -l -v 來查看一下,就變成 WSL2 版本了:

現在,重新啟動一下 Ubuntu-18.04 系統,雖然還是黑乎乎的窗口,但是它可是一個完整、純正的 Linux 操作系統

安裝桌面環境

這部分的操作,參考:https://autoize.com/xfce4-desktop-environment-and-x-server-for-ubuntu-on-wsl-2/。

關於 Linux 的桌面環境,它與 Windows 桌面環境的理念有一些不一樣。

Linux 系統中,桌面環境是一個獨立的應用程序,不屬於操作系統的一部分。

換句換說,即使沒有桌面環境,也可以很愉快的玩 Linux 系統,比如那些服務器之類的設備。

Linux 中的桌面由客戶端服務端組成,它們之間通過一個協議來通信,俗稱:X11

服務端:負責圖形的顯示;

客戶端:根據系統設置的 DISPLAY 環境變量,把顯示圖形的請求發送給服務端;

因此,為了讓我們的 Ubuntu 顯示圖形界面,我們就需要安裝一個服務端軟件和客戶端軟件。

注意:這里的服務端軟件是安裝在 Windows 系統中的,客戶端是安裝在 Ubuntu-18.04 系統中的。

安裝客戶端

Ubuntu-18.04 的終端窗口中,執行如下指令安裝客戶端軟件 xfce4

sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install xfce4

配置 DISPLAY 環境變量

因為 Ubuntu 中的客戶端 xfce4 需要把顯示請求,通過網絡發送給 Windows 上的服務端,因此需要知道 Windows 系統的 IP 地址,在 Windows 系統中的命令行窗口中查看:ipconfig

然后在 Ubuntu-18.04 中把這個 IP 地址,配置到家目錄下的 .bashrc 文件中:

$ cd
$ vi .bashrc

在文件末尾添加:

export DISPLAY=192.168.192.1:0

保存、關閉文件之后,執行:source ~/.bashrc 更新即可。

安裝服務端

圖形界面有 VcXsrvXming 兩款軟件,我們選擇前面的 VcXsrv

同樣的,我已經把 vcxsrv-64.1.20.9.0.installer.exe 放在網盤里,下載后一路 Next 安裝。

安裝之后,啟動 Windows 桌面上的 XLaunch 程序:

然后,按照參考文檔中的配置,如下:

在最后一個步驟,可以把配置信息保存在桌面上。

啟動客戶端

Ubuntu-18.04 系統中的命令行窗口,執行指令:startxfce4

此刻,神器的事情就發生了:你的 Windows 系統中是不是就跳出了下面這個窗口

可以打開桌面上 File System,是不是看到了很多熟悉的身影?

在打開 mnt 目錄,是不是看到了 Windows 系統中的盤符

但是,中文信息顯示的都是亂碼!那我們就來安裝中文語言支持包。

中文支持

Ubuntu-18.04 系統命令行窗口,設置 locale:

此時,我們可以使用桌面環境中的終端窗口,如下圖所示:

sudo vi /etc/locale.gen

把下圖中的藍色這一行復制,然后去掉前面的 #空格,然后保存、退出。

然后在終端中執行指令: sudo locale-gen

單機右上角的用戶名,選擇 【Log Out..】

此時,Ubuntu 虛擬機的 WSL 窗口中的 xfce4 客戶端會退出,再次執行 startxfce4 啟動客戶端:

再次,在桌面中的終端窗口中,把 locale 改為中文:

sudo vi /etc/default/locale

LANG=C.UTF-8 改為 LANG=zh_CN.UTF-8

然后,把下面這個幾個中文語言包給它安裝進去:

sudo apt install language-pack-zh-hans
sudo apt install language-pack-gnome-zh-hans
sudo apt install language-pack-kde-zh-hans

此刻,你再看一下剛才的那些亂碼,是不是已經正確顯示中文了?


------ End ------

接下來,你還可以安裝各種 IDE,探索它們是如何共享文件的...

文中需要安裝的軟件,已經上傳到網盤中了。

請在公眾號后台回復721(不是留言區啊),即可收到下載地址,謝謝!

推薦閱讀

【1】C語言指針-從底層原理到花式技巧,用圖文和代碼幫你講解透徹
【2】一步步分析-如何用C實現面向對象編程
【3】原來gdb的底層調試原理這么簡單
【4】內聯匯編很可怕嗎?看完這篇文章,終結它!

其他系列專輯精選文章C語言Linux操作系統應用程序設計物聯網

星標公眾號,能更快找到我!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM