该系列课程需要使用到RISC-V(极简指令集)版本的四个工具:
1. QEMU 5.1+
2. GDB 8.3+
3. GCC
4. Binutils
Ubuntu 安装:
sudo apt-get install git build-essential gdb-multiarch qemu-system-misc gcc-riscv64-linux-gnu binutils-riscv64-linux-gnu
下面逐个介绍这四个工具。
课程官网:https://pdos.csail.mit.edu/6.828/2023/index.html
GCC
GNU Compiler Collections,GNU系统中的编译器套件。
GDB
GNU Debugger,GNU系统中的调试器。
QEMU
开源的硬件虚拟化仿真器(Emulator)。是一个托管的虚拟机,通过动态的二进制转换,模拟CPU。并通过提供一组设备模型,能使它运行多种未修改的客户机OS。QEMU可以执行用户进程级的CPU仿真,通过VMM形式,从而可以使为某一架构编译的程序在另一架构上运行。
Binutils
全称为:GNU Binary Utilities。GNU系统的通用二进制工具。用于创建或者管理二进制程序/目标文件/profile文件和汇编源码的工具集。
实验目的(课程目的)
使用一个基础的操作系统(xv6),这是一个RISC-V版本的多任务操作系统。后续的实验基本上就是在次基础上扩充这个操作系统。通过后续的实验,我们将着重于以下的内容:
1. 虚拟内存
2. 文件系统
3. 线程
4. 上下文切换
5. 内核
6. 中断
7. 系统调用
8. 进程间通信(IPC)
9. 软硬件的协作和交互
关于 XV6
xv6是使用ANSI C语言在Unix v6基础上重制的一款针对x86和RISC-V的多任务操作系统。该操作系统是专为本门课制作的。
实验源码仓库的建立:
1. 从 git://g.csail.mit.edu/xv6-labs-2023 中将源代码拿出来。
2. 在远程仓库平台建新仓(我选的是gitee),并且在本地登录远程平台或者进行ssh认证(注册)。
3. git remote add gitee git@gitee.com:yikcode/xv6-labs-2023.git
4. git push -u git "util"
上面的步骤即可将原实验仓库放到自己的远程仓库中,然后进行开发。