6.S081课程实验
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 | wget https://download.qemu.org/qemu-4.1.0.tar.xz #获取qemu虚拟机安装包 |
其中prefix命令指示着安装的位置,这里建议直接安装到**/usr/local/bin**。
安装之后运行命令qemu-system-riscv64 -version
得到版本号为4.1.0
则为成功。
拉取XV6系统的代码并编译
在官方教程里提供的包因为一种莫名其妙原因无法拉取,暂时未解决,直接找了xv6的源码仓库拉取,然后进行编译。
1 | make |
不出意外的话在这里就可以正常的启动xv6的操作系统了。
1 | xv6 kernel is booting |
之后如果需要启动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.