操作系统通过接口为程序提供服务。xv6只包含一些基本的接口,如上图。
xv6采用kernel的方式。kernel是一种特殊的程序为一般程序提供服务。计算机中有许多进程但是只有一个进程。
当一个进程需要使用kernel服务,需要进行system call。
system call后,进入Kernel空间,kernel执行服务并返回。
进程从用户空间和内核空间切换。
内核会使用硬件保护机制使进程内存只能访问自己的内存。
用户程序只能看到接口名。
shell程序读入用户输入的命令然后执行它们。(shell是用户程序,不是内核的一部分)。