Q: 每个运行中的进程都包含什么?
A:指令:实现了程序的运算;数据:用于运算过程的变量;栈:管理了程序的过程调用
Q:进程如何使用内核服务的?
A:进程通过系统调用使用内核服务。所以进程总是在用户空间和内核空间之间交替运行。
Q:内核如何保证用户进程职能访问自己的内存空间呢?
A:内核使用CPU的硬件保护机制来保证用户进程只能访问自己的内存空间。内核拥有实现保护机制所需的硬件权限(hardware privileges)
Q:Shell是什么?
A: Shell是一个普通的程序,它接受用户输入的命令并且执行它们,它也是传统Unix系统中最基本的用户界面。shell作为一个普通程序,而不是内核的一部分,充分说明了系统调用借口的强大:shell并不是一个特别的用户程序。这也意味着shell是很容易被替代的,实际上这导致了现代Unix系统有着各种各样的shell,每一个都有着自己的用户界面和脚本特性。
Q: xv6的进程组成部分是什么?
A:由两部分组成,一部分是用户内存空间(指令,数据,栈),另一部分是仅对内核可见的进程状态。
Q: 文件描述符是什么?
A:文件描述符是一个整数,它代表了一个进程可以读写的被内核管理的对象。进程可以通过多种方式获得一个文件描述符,如打开文件、目录、设备,或者创建一个管道(pipe),或者复制意境存在的文件描述符。
Q:什么是管道 ?
A:管道是一个小的内核缓冲区,它以文件描述符对的形式提供给进程,一个用于写操作,一个用于读操作。从管道的一端写的数据可以从管道的另一端读取。管道提供了一种进程间交互的方式。