环境搭建
Tools Used in 6.S081 下面以WSL2 (ubuntu)为例
sudo apt-get install git build-essential gdb-multiarch qemu-system-misc gcc-riscv64-linux-gnu binutils-riscv64-linux-gnu
如果程序在以下语句后挂起 qemu-system-riscv64 -machine virt -bios none -kernel 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 *** 如果提示找不到版本,可以尝试编译安装
(Building
QEMU for Linux)安装编译需要的工具
sudo apt-get install git libglib2.0-dev libfdt-dev libpixman-1-dev zlib1g-dev ninja-build 下载源码并解压
wget https://download.qemu.org/qemu-5.1.0.tar.xz
tar xf qemu-5.1.0.tar.xz 构建QEMU for riscv64-softmmu: cd qemu-5.1.0
./configure --disable-kvm --disable-werror --prefix=/usr/local --target-list="riscv64-softmmu"
make
sudo make install
启动Xv6
拉取xv6源码并且切换至util分支
git clone git://g.csail.mit.edu/xv6-labs-2020
cd xv6-labs-2020
git checkout util 编译并且运行xv6
make qemu 当出现 xv6 kernel is booting
hart 2 starting
hart 1 starting
init: starting sh 说明xv6启动成功。在命令行键入
ls将会见到如下输出 $ ls
. 1 1 1024
.. 1 1 1024
README 2 2 2059
xargstest.sh 2 3 93
cat 2 4 23664
echo 2 5 22504
forktest 2 6 13232
grep 2 7 26808
init 2 8 23312
kill 2 9 22432
ln 2 10 22296
ls 2 11 25848
mkdir 2 12 22568
rm 2 13 22552
sh 2 14 40560
stressfs 2 15 23528
usertests 2 16 142264
grind 2 17 36944
wc 2 18 24648
zombie 2 19 21808
console 3 20 0
键入Ctrl-a x退出xv6