目的:方便快速学习操作系统相关知识,它一个课程资源,在网上很容易就能搜到,本文主要描述
整个环境搭建过程。
一、系统环境
我使用的是ubuntu 22.04,不过推荐使用20.04版本,因为环境依赖一些库,有些是针对20.04发行
的,所以在20.04上相对会顺利些,其他版本会遇到问题,不过有问题解问题,方法总比困难多嘛
二、源码下载
执行:
git clone git://g.csail.mit.edu/xv6-labs-2020
依赖环境:
sudo apt-get install git build-essential gdb-multiarch qemu-system-misc gcc-riscv64-linux-gnu binutils-riscv64-linux-gnu
详情可以参考:
注意:环境依赖中有个qemu-system-misc,在后续执行make qemu后,会出现
qemu-system-riscv64 -machine virt -bios none -kernel/kernel -m 128M -smp 3 -nographic -drive file=fs.img,if=none,format=raw,id=x0 -device virtio-blk-device,drive=x0,bus=virtio-mmio-bus.0
之后就不继续执行了,呈现被挂起的状态,原因是qemu-system-misc不兼容,需要执行旧版本的
执行:
sudo apt-get remove qemu-system-misc
sudo apt-get install qemu-system-misc=1:4.2-3ubuntu6
由于当前ubuntu版本是22.04,找不到qemu-system-misc对应的上述版本,因为上版本是针对
20.04发行的,所以这里需要手动安装下,方法如下:
找到 qemu-system-misc,在Index of /ubuntu/pool/main/q/qemu
另外还需下载安装 qemu-system-misc依赖的库,分别执行
wget http://security.ubuntu.com/ubuntu/pool/main/b/brltty/libbrlapi0.7_6.0+dfsg-4ubuntu6_amd64.deb
wgethttp://security.ubuntu.com/ubuntu/pool/main/n/nettle/libnettle7_3.5.1+really3.5.1-2ubuntu0.2_amd64.deb
下载到最新的qemu-system-misc版本后,分别执行:
sudo dpkg -i libbrlapi0.7_6.0+dfsg-4ubuntu6_amd64.deb
sudo dpkg -i libnettle7_3.5.1+really3.5.1-2ubuntu0.2_amd64.deb
sudo dpkg -i qemu-system-misc_4.2-3ubuntu6.28_amd64.deb
三、编译执行
cd xv6-labs-2020
此时会发现无任何文件,需要切换分支才可以看到对应代码,执行git branch --remote,查看分支
执行:git checkout origin/util
这时候就有代码了,执行:
make qemu
出现以下界面,就表示成功了
推出qemu模拟环境的话,执行Ctrl + a,再输入x即可
后续可以按照自己的需求书写对应代码,设置makefile编译执行就可以了。