预备知识
主线讲义假设你只学过基础 C 语法:变量、分支、循环、函数、数组。超出这些的东西,主线里会用“预备”小框给一句话的解释,想弄透就来这里。
不用一口气读完。主线里哪个小框看不懂,就点它的链接跳过来,读完对应一节再回去。每页的例子都在 prereq/examples/,本机有 gcc 就能跑。
主题
内存、地址与十六进制
内存是按编号排好的字节;地址为什么常写成 0x80000000;一个 int 占几个字节。
指针、结构体与 volatile
& 和 *;-> 是什么;为什么内核到处传地址;volatile 告诉编译器什么。
二进制与位运算
第几位怎么数;& | ~ << >>;“只改某几位,其他不动”的固定写法。
RISC-V 汇编最小集
寄存器;指令的格式;Lab1 用到的十几条指令;栈和函数调用在汇编里长什么样。
特权级与异常
CPU 为什么要分权限;异常发生时 CPU 自动做了什么;mret 怎么“返回”。
Git 基础
提交、分支、远端;add / commit / push / pull 的日常流程。