基础环境搭建

 
Mac下,安装好 Homebrew 后
brew tap riscv/riscv
brew install riscv-tools
增加环境变量:
PATH=$PATH:/usr/local/opt/riscv-gnu-toolchain/bin
然后安装 QEMU
brew install qemu
测试是否安装成功:
$ riscv64-unknown-elf-gcc --version
riscv64-unknown-elf-gcc (GCC) 10.2.0
...

$ qemu-system-riscv64 --version
QEMU emulator version 6.0.0
下载xv6代码:
git clone git://github.com/mit-pdos/xv6-riscv.git
git clone git://github.com/mit-pdos/xv6-riscv-book.git
安装xv6
cd xv6-riscv
make
make qemu
问题:make qemu后无响应
notion image
原因:QEMU版本为6.0,版本过高,有兼容问题,手动降级即可:
brew uninstall qemu        # 先卸载 qemu
wget https://download.qemu.org/qemu-5.1.0.tar.xz  # 下载
tar -xf qemu-5.1.0.tar.xz  # 等待解压完成
cd qemu-5.1.0/             # 进入目录
./configure                # 默认安装所有目标平台,产物路径为/usr/local/bin
make && make install       # 编译并安装
也可以手动进入 https://download.qemu.org/ 找到 5.1.0 版本,手动下载。
安装成功后,我们再次 make qemu,成功:
notion image

实验环境搭建

Vscode 格式化 自动排序头文件问题
需要注意的是,一定不要对#include头文件自动排序,要设置SortIncludes: false不然头文件顺序不对会报错。
比如排序前:
#include "kernel/types.h"
#include "kernel/stat.h"
#include "user/user.h"
自动格式化后
#include "kernel/stat.h"
#include "kernel/types.h"
#include "user/user.h"
就会报错:
notion image
解决方法:
notion image
{BasedOnStyle: Google, IndentWidth: 2, ColumnLimit: 120, SortIncludes: false}

备注

教材参考 xv6 book
我学习本课程的目的并非是为了考试,做这些笔记也只是为了让自己更好的理解。因此这里会用令人比较容易理解的语言去描述(为了以后即使我忘了,但看到自己的笔记又能快速想起这些知识)。
注:用词上可能会为了容易理解而不够严谨,如果谬误,欢迎提出。

代码

这里我把教材中要用的代码放到 Github 上,大家可以自行下载:(链接待补充@TODO)

参考文档

你觉得这篇文章怎么样?
YYDS
比心
加油
菜狗
views

Loading Comments...