xv6-riscv 开发环境搭建

本文介绍如何搭建 xv6-riscv 的开发环境。

简介

xv6 是 Dennis Ritchie 和 Ken Thompson 的 Unix Version 6 (v6) 的重新实现。xv6 的主要目的是作为 MIT 6.1810 的教学操作系统[1]

环境

我使用的系统环境:

  • Ubuntu 24.04.1 LTS

安装

我们需要安装相关交叉编译工具,以及 QEMU 以模拟 RISC-V 芯片。以下命令修改自 mmikaitis/xv6-tools-container/xv6-tools-container.def[2]

1
2
sudo apt update
sudo apt install -y build-essential gcc-riscv64-linux-gnu qemu-system-riscv64 gdb-multiarch

下载 xv6-riscv

1
2
git clone git@github.com:mit-pdos/xv6-riscv.git
cd xv6-riscv

编译和运行

1
2
make
make qemu

此时看到如下输出,说明编译和运行成功:

1
2
3
4
5
6
xv6 kernel is booting

hart 2 starting
hart 1 starting
init: starting sh
$

要退出 QEMU,可以按下 Ctrl + A,然后按下 X

QEMU 启动后无响应

我在搭建环境的时候遇到了 make qemu 启动后无响应的问题,最终查找到了这个 issue,相关的 PR 提供的解决方案是可用的。经过我的尝试,也可以将系统和 QEMU 更新到最新版本。我最终使用的是 Ubuntu 24.04.1 LTSQEMU emulator version 8.2.2 (Debian 1:8.2.2+ds-0ubuntu1.2)

IDE 远程连接

项目位于远程 Linux 服务器上,如果我们希望在本地使用一个强大的 IDE 进行开发,而不是在服务器使用 vim 等文本编辑器,可以使用 Clion 通过 SSH 连接到服务器进行开发。

在 Clion 中创建 SSH 连接

选择项目路径和 IDE 版本

连接后即可和本地项目一样进行开发,在 terminal 中执行 make qemu 即可运行 xv6-riscv。

IDE 界面

References

  1. xv6-riscv. Archived on 2024-07-23. Retrieved 2024-10-15.
  2. xv6-tools-container.def. Retrieved 2024-10-15.
  3. 【99%环境搭建系列】xv6-riscv内核调试教程. Retrieved 2024-10-15.

xv6-riscv 开发环境搭建
https://blog.zhanganzhi.com/zh-CN/2024/10/4036f0443a57/
作者
Andy Zhang
发布于
2024年10月15日
许可协议