Develop xv6 on Windows 10 (WSL) - yaodio/xv6-vi GitHub Wiki

有了 wsl 后,在 Win 10 上开发 xv6 变成了一件非常容易的事情。当然你也可以选择如 vmware 和 virtual box 这样的虚拟机,但是 wsl 的启动速度、运行速度更快,配合 xserver 更是可以获得接近原生的体验。

安装 wsl 的过程这里就不详述了。安装完成后,把该装的都装上,并根着我们的 README 来编译本项目。你可以直接使用 make qemu-nox 来在控制台里运行 xv6。不过遗憾的是,我们的 vi 需要绘制屏幕,所以只能使用 make qemu。这条命令会在屏幕上弹出一个窗口,如果你的 linux 有屏幕的话。而 wsl 默认是没有的。这时就需要用到 xserver。

简单来说,xserver 是运行在 windows 上的一个 server,它接收 wsl (client) 发来的绘图信号完成绘图。xserver 的选择很多,比较主流的是 VcXsrv(开源免费)、MobaXterm(个人版免费) 和 X410(收费,在微软商店里买)。

以 MobaXterm + wsl2 为例,Win 10 上安装好后,在 wsl 里输入 export DISPLAY=`cat /etc/resolv.conf | grep nameserver | awk '{print $2}'`:0.0。把这个变量输出出来你会看到类似 172.21.64.1:0.0 的值,这个 ip 就是你本机的 ip(wsl2 的 ip 是独立的,和本机不一样)。大概意思就是把屏幕变量 DISPLAY 设为你本机的屏幕。如果你嫌麻烦的话,可以把这行命令存成文件,要用的时候 source 一下。

接着需要先打开 MobaXterm,然后就可以 make qemu 了。你会看到 qemu 的窗口弹出来,就像在 linux 桌面版一样。事实上有了 xserver,用云上的 linux 服务器也是基本一样的操作。