复习
本次课回答的问题
本次课主要内容
一万行代码得到一个真正的、好用的操作系统

接近完整的 UNIX Shell 体验

它真的是一个 “可用” 的操作系统!
这是一份包含了很多 Good Practice 的代码
RTFM
RTFSC
RTFSC: Makefile
make -nB复习:“程序的执行 (状态变化序列) 有时比代码 (状态机) 更容易理解”
compile_commands.json?
回顾:进程 = 运行的状态机 (user/)
init.c 和 sh.c (sh-xv6.c 的真身)MAXVA 处有两个神奇的页面
试一试 init 进程
proc.c 中包含一段 initcodeb *0)_initadd-symbol-file user/_init 加载调试信息使用 QEMU
info memp/x $stvecb *$stvec)RISC-V user-level ecall 指令
在 xv6 中
trampoline.S (汇编代码)
struct trapframetf->kernel_trapstruct proc *p = myproc()
p/x *pp/x *p->trapframe (a7 = 0x7)scause == 8 (syscall)usertrapret() 返回