/ Lesson  

Nachos第六周课堂笔记User-level processes

系统调用
运行时刻的应用程序如何陷入内核

coff:Unix世界中的格式
noff:Nachos专用格式,一个简化版的二进制文件格式
Noff header文件头:从一开始开始,包含了各个段的指针,描述其他部分。unix用magicnumber标识文件类型。
nachos现版本每次只支持一个进程运行,因为逻辑地址和物理地址是一对一的。若要支持多道程序运行,进程的切换需要写页面blabla,用nachos另外两个内核函数
Nachos的程序跑在虚拟的MIPS架构的Machine上,但Nachos本身不在Machine上跑。Nachos的上下文切换对比真实机器难度下降,因为两者跑的层次不同,对次序没有限制。
进程可以使用系统调用,因为他其中存在一个系统调用的表
系统调用号送到指定地方(r2寄存器)后调用syscall,syscall读取来得知需要做什么。要区分调用与syscall。
每个进程里边有一个表,作为系统调用的存根。每一个名字和一个系统调用号关联(参考start.s,nachos给出13条,现在只有halt是完整的,剩余12条需要自己补足)
syscall是一条非特权指令。
syscall.h中全都是声明而非实现。