本系列基于MIT为操作系统本科生高级课程开发的简易类UNIX操作系统xv6,本文为前期平台搭建与准备。
一、平台
- Linux系统,首推Ubuntu 18.04及以上版本,内核版本不要太老旧。WSL也可以。
- qemu虚拟机工具包。
- make工具。
- gcc编译器。
- xv6-rev9
你可以通过你自己的方式安装除了xv6之外的平台,或者根据接下来内容来安装。
二、工具下载
使用以下代码进行工具下载。
bash
sudo apt update && sudo apt upgrade
sudo apt install make gcc cmake gdb
三、安装
1、qemu
安装qemu虚拟机工具需要你安装了python,这里推荐直接安装Anaconda/Miniconda来使用base虚拟环境安装以下库:
bash
pip install sphinx numpy
安装完成后,到qemu官网下载安装压缩包安装(直接使用以下脚本):
bash
VERSION="10.2.0"
wget https://download.qemu.org/qemu-${VERSION}.tar.xz
tar xf qemu-${VERSION}.tar.xz
./configure --disable-kvm --disable-werror --prefix=/usr/local
make -j$(nproc)
sudo make install
安装完成后,输入 qemu-x86_64 --version 得到以下输出即可验证qemu安装成功:
qemu-x86_64 version 10.2.0
Copyright (c) 2003-2025 Fabrice Bellard and the QEMU Project developers
2、xv6
xv6分为两个版本,分别是原始版本和RISC-V版本。
- 原始版本:xv6-public
- RISC-V版本:xv6-riscv
原始版本
xv6-rev9是原始版本的一个tag,进入原始版本的仓库,注意到下面的Releases,点进去


红色框里框住的部分,从Releases切换到Tags,然后进入绿色框里的版本。

复制压缩包的链接,然后wget下载,此处下载tar.gz格式的。解压缩,进入目录:
bash
tar -zxvf xv6-rev9.tar.gz
cd xv6-public-xv6-rev9
之后在目录下执行以下命令即可完成内核编译并进入qemu虚拟机:
bash
make
make qemu
# 可选项
# make qemu-gdb # 启动gdb调试
# make qemu-nox # 常见的qemu启动
这里需要提醒一点(非常重要 ),高版本的gcc编译器会将make过程中的Werror识别成错误而非警告,进而导致内核编译失败,所以你需要进入目录下的Makefile文件,把所有的 -Werror 字段都删掉。在这之后再运行上面的命令就可以了。当然如果你使用的低版本gcc那当我没说。
启动成功后可以看到以下输出(使用make qemu)
dd if=/dev/zero of=xv6.img count=10000
10000+0 records in
10000+0 records out
5120000 bytes (5.1 MB, 4.9 MiB) copied, 0.018037 s, 284 MB/s
dd if=bootblock of=xv6.img conv=notrunc
1+0 records in
1+0 records out
512 bytes copied, 0.000300446 s, 1.7 MB/s
dd if=kernel of=xv6.img seek=1 conv=notrunc
390+1 records in
390+1 records out
199832 bytes (200 kB, 195 KiB) copied, 0.00135198 s, 148 MB/s
qemu-system-i386 -serial mon:stdio -drive file=fs.img,index=1,media=disk,format=raw -drive file=xv6.img,index=0,media=disk,format=raw -smp 4 -m 512
VNC server running on 127.0.0.1:5900
xv6...
cpu0: starting
sb: size 1000 nblocks 941 ninodes 200 nlog 30 logstart 2 inodestart 32 bmap start 58
init: starting sh
$
RISC-V版本
Appendices
1、作者的配置
- 系统:Linux 6.6.87.2-microsoft-standard-WSL2 #1 SMP PREEMPT_DYNAMIC Thu Jun 5 18:30:46 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
- 版本:Ubuntu 24.04
- 虚拟环境:Miniconda3
- qemu:10.2.0
- make:4.3
- gcc:13.3.0
- cmake:3.28.3
- gdb:15.0.50.20240403
2、参考文献
《操作系统原型------xv6分析与实验》作者:罗秋明 2021年7月第一版