很早就收到 Windows 11 的推送,但一直在觀望,最近終於更新了。可惜的是我筆記本是 Win10 家庭版,升級 Win 11 之后仍是家庭版,導致我開啟 Hyper-V 還要另外折騰一番 ;-(
一、安裝 WSL
在 Microsoft Store 搜索 Ubuntu,選 18.0/20.0 都可以,我這里選最新的了
下載完后打開,會見到以下頁面。主要關注這幾行,輸入用戶名(是普通用戶不是 root)和密碼就行
之后上面這個窗口便可以關閉,我們可以去 Visual Code 配置 WSL了
二、在 Visual Code 配置 WSL
打開 Visual Code,按下 Ctrl J,選擇 Terminal,選擇剛才安裝的 Ubuntu
我先改改 root 用戶的密碼,因為默認密碼是什么我也不知道
此時可以先為 Ubuntu 更換包管理器的源為國內,效果是加快諸如 apt-get install 的下載速度,參考鏈接
(以下步驟是可選項:安裝 zsh ——一個能更改命令符主題的軟件,當然還有其他功能,而且這里我直接使用 oh-my-zsh 的配置)
先安裝 zsh,再配置 oh-my-zsh。查看 zsh 版本發現不存在,故先安裝zsh
接下來配置 oh-my-zsh 需要用到 git,還好 Ubuntu 20.x 自帶 git
另外, git clone 速度慢的甚至連接失敗的可以參考 linux 公社這篇解決方案
這里手工安裝oh-my-zsh,照着官方鏈接一步步敲命令即可(我這里跳過了第二步備份),過程就不演示了,按着來就行
值得一提的是第四步我使用 chsh -s $(which zsh) 回車后沒效果(需要重啟終端 Terminals)
點亮 zsh 效果如下
接下來配置oh-my-zsh主題和插件,參考官方鏈接選主題
一旦選好主題就修改配置,我這里自己魔改一個主題
我在官方 ”bira“ 主題基礎上稍微修改下
然后用 source ~/.zshrc 命令更新zsh
魔改主題,”bira”的配置在 ~/.oh-my-zsh/themes/ 下
找到”PROMPT=”開頭的行,我想用顏文字做一個這樣的 prompt,配置地址。(最后配置完要 source ~/.zhsrc )
最后效果如下
zsh 還有其他可玩的地方,比如插件,我這里也配置幾個常用插件(wd、zsh-syntax-highlighting、zsh-autosuggestions)
第一步是安裝,只有wd是內置的,所以需要安裝后兩個 git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ~/.oh-my-zsh/plugins/zsh-syntax-highlighting 以及 git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/plugins/zsh-autosuggestions
修改配置,輸入 vi ~/.zshrc ,找到 plugins=(git) 打頭的這行
別忘了 source ~/.zshrc ,效果如下
(以上為安裝和配置 zsh,非必需)
三、部署開發環境
查看版本發現缺少 gcc 和 g++
敲以下三條命令直接安裝所有GNU開發組件(需要root權限)
apt-get install build-essential gdb //GNU開發組件和gdb apt-get install gcc-multilib //64位機器的32位支持(后面是進行32位OS學習所以裝32位支持)
之后安裝 bochs
由於Bochs的啟動需要X-Display(一種GUI)支持,安裝Xming用以在Windows直接運行Bochs(相關知識點網上搜 ” WSL 啟動 Xserver ”),因此現在安裝Xming(隨便一個 X-Server 軟件即可,這里用 Xming )
之后全部默認即可,安裝完成后啟動 Xming(需要注意的是有兩個 Xming,其實用哪個都行,只不過要先設置顯存頁面,所以先啟動帶 Launch 的)
第一次啟動是這樣的, 直接默認下一步即可,值得一提是顯存分頁貌似是 0-7 都可以,只是你要記住你選了哪一頁,以后啟動 X-GUI 時需要顯式寫上這一頁(不顯式啟動 X-Server 也可以,但要修改配置,后文會談及)
然后看看任務欄有無圖標,有就成功了
注意,要使用 X11,需要先在 WSL 中設置 SSH(以下 WSL GUI 設置參考文章)
# 刪除默認 ssh sudo apt-get remove --purge openssh-server # 更新一下 sudo apt-get update sudo apt-get upgrade -y # 安裝 SSH sudo apt-get install -y openssh-server
然后修改 ssh 的配置文件,文件是 /etc/ssh/sshd_config
找到 X11Forwarding 打頭的行,作出以下修改
最后,開啟 OpenSSH 服務, service ssh start
然后在 ~/.zshrc 文件里添加下面兩句:
export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf 2>/dev/null):0 export LIBGL_ALWAYS_INDIRECT=1
執行 source ~/.zshrc 使之立即生效
現在便可以開始配置Bochs配置文件了
[注1] 如果想知道Bochs安裝在哪里,可以用 dpkg -L bochs 來查詢,一般來說包管理安裝軟件是放在 /usr/bin/ ,其文檔是放在 /usr/share/doc/
[注2]WSL下 /mnt/d 相當於Windows的D盤,其他盤同理,這里我在D盤某個位置新建了個文件夾用來做實驗,然后開始寫Bochs配置文件
現在開始配置Bochs,先寫配置文件,如下
現在開始創建剛才配置寫上的軟盤(啟動Bochs需要image),所以接下來先創建軟盤。這里借助 Bochs 的 bximage 創建軟盤, /usr/bximage 創建軟盤如下
創建軟盤參數參考(需要注意的是最后一句話 The follow line should … ,這句話其實上面已經加入了,在上兩張圖寫 bochsrc 配置那里,所以這里忽略就好)
目前為止本地文件夾所有文件如下
這些事情完成后可以啟動 Bochs 了,但要注意我們是用 Xming 啟動的 Bochs,本來應該是 DISPLAY=:0 /usr/bin/bochs 啟動,但上面我們在 ~/.zshrc 添上了啟動配置,所以現在也可以直接 /usr/bin/bochs 啟動
這里有個坑,WSL2 安裝的 bochs 缺少了些東西,導致報錯缺少 ROM,參考 ROM: couldn't open ROM image file '/usr/share/bochs/BIOS-bochs-latest' ,輸入 sudo apt-get install -y bochsbios 安裝這個 ROM 解決
之后再繼續執行 /usr/bin/bochs
按下回車后,桌面左上角會彈出 Bochs,這里我們只需要驗證有這個窗口彈出來就行了,就說明啟動成功了。(由於目前軟盤是空軟盤,所以就算輸入”c”運行Bochs 也是提示 [PANIC],但這里我們只驗證能不能開啟 GUI 就行了)
所以實驗成功