OS实践-1: Windows 11 配置 WSL
很早就收到 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 就行了)
所以实验成功