6.S081课程实验

HarderHeng Lv5

Lab1:环境搭建

这里根据官方教程并不能够有预想的效果,所以就尝试理解原理并逐步安装所需要的工具。撰写本文的时间是2024/12/5,所有的软件版本和github仓库都以目前的时间为准。

目前使用的环境是

  • Windows11 24H2
  • WSL2
  • Ubuntu 22.04LTS

在WSL中进行环境的搭建。

安装riscv-gnu-toolchain

实验使用的xv6操作系统现在只有riscv的版本还在维护,所以我们使用riscv的交叉编译工具链来编译xv6系统,并运行在qemu的虚拟机上。

在这里直接按照官方教程中的进行操作。

sudo apt-get install git build-essential gdb-multiarch qemu-system-misc gcc-riscv64-linux-gnu binutils-riscv64-linux-gnu

这样就安装了交叉编译环境。

安装qemu虚拟机

qemu是一个开源的虚拟机平台,可以在多个平台上模拟出各种指令集和操作系统,并且支持虚拟化加速(WSL就是Windows下的虚拟机,再套一层qemu虚拟机,目前不清能不能够加速)。一般来说要使用qemu模拟器都是在linux环境下使用。

按照上面的命令直接下载APT包的qemu-system-misc是比较新的一个版本,会出现一些兼容性问题(我直接下载得到的6.1.0版本在启动xv6系统时直接卡住没法启动)。

所以我们在这里尝试直接安装旧版本的qemu虚拟机。

1
2
3
4
5
6
wget https://download.qemu.org/qemu-4.1.0.tar.xz #获取qemu虚拟机安装包
tar xf qemu-4.1.0.tar.xz #解压包

./configure --disable-kvm --disable-werror --prefix=/usr/local/bin --target-list="riscv64-softmmu" #配置自动生成
make #编译项目
sudo make install #安装程序

其中prefix命令指示着安装的位置,这里建议直接安装到**/usr/local/bin**。

安装之后运行命令qemu-system-riscv64 -version得到版本号为4.1.0则为成功。

拉取XV6系统的代码并编译

在官方教程里提供的包因为一种莫名其妙原因无法拉取,暂时未解决,直接找了xv6的源码仓库拉取,然后进行编译。

1
2
make
make qemu

不出意外的话在这里就可以正常的启动xv6的操作系统了。

1
2
3
4
xv6 kernel is booting

$ hart 2 starting
$ hart 1 starting

之后如果需要启动xv6操作系统,可以直接在源代码文件夹下使用命令

1
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

如果要在别的地方使用这个命令,kernel和fs.img需要添加文件的绝对位置。

  • Title: 6.S081课程实验
  • Author: HarderHeng
  • Created at : 2024-12-05 10:39:15
  • Updated at : 2024-12-23 15:24:23
  • Link: https://harderheng.life/2024/12/05/6-S081课程实验/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments