编译运行xv6(环境搭建)


环境搭建

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


文章作者: codesimp1e
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 codesimp1e !
  目录