7-9页
1.CPU字长决定了所能管理的地址空间的最大长度。地址空间的最大长度被称为虚拟地址空间。2.Linux将虚拟地址空间分为两部分:用户空间和内核空间。TASK_SIZE是一个特定于计算机体系结构的常数。系统中每个用户进程都有自身的虚拟地址范围,即0到TASK_SIZE,该空间叫用户空间。其余的(即TASK_SIZE之上的)保留给内核专用叫内核空间。
3.不同进程的用户空间彼此分离,但每个进程的内核空间是同样的。
4.64位计算机实际用于创建虚拟地址空间的位数一般小于64位。
5.特权级别:英特尔处理器分为四个特权级别,内环(0)权限更高。Linux仅分为两种状态:核心态和用户状态。用户状态禁止访问内核空间。
6.从用户状态到核心态的转换通过系统调用的特定转换手段完成。普通进程若想执行影响系统的操作,需要更大权限,通过系统调用向内核申请。申请通过,内核代为执行。执行完后返回用户状态。
7.内核还能被异步硬件中断激活,激活后运行于中断上下文。与在进程上下文运行的区别是,中断上下文不能访问用户空间,且不能进入睡眠状态。
8.内核线程也不能访问用户空间,但可以进入睡眠状态。
9.将虚拟地址空间映射到物理地址空间的数据结构是页表。虚拟地址空间中的页叫页。物理地址页叫页帧。
10.Linux采用四级页表。