riscv 相关工具链安装:https://pdos.csail.mit.edu/6.S081/2020/tools.html
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
后无响应
原因:
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
,成功:
实验环境搭建
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"
就会报错:

解决方法:

{BasedOnStyle: Google, IndentWidth: 2, ColumnLimit: 120, SortIncludes: false}
备注
教材参考
xv6 book
我学习本课程的目的并非是为了考试,做这些笔记也只是为了让自己更好的理解。因此这里会用令人比较容易理解的语言去描述(为了以后即使我忘了,但看到自己的笔记又能快速想起这些知识)。
注:用词上可能会为了容易理解而不够严谨,如果谬误,欢迎提出。
代码
这里我把教材中要用的代码放到 Github 上,大家可以自行下载:(链接待补充@TODO)
Loading Comments...