(15) 接着介绍缓冲区初始化,首先介绍一个全局量 end ,表示 源代码编译的终点,随后就是缓冲区:
上图里也介绍了关于缓冲区的其它几个全局变量。全局数组 hash_table 的位置肯定是在 end 以前定义的。end 后为随机数据缓冲区。
(16) 接着介绍缓冲区头部 buffer_head 这个结构体:
(17) 由于初始化了缓冲区后,得出操作系统指导的内存分布图:
(18) 接着介绍硬盘初始化时的全局变量与结构:
(19) 接着要使 0 号进程转到用户态。书中说:linux 操作系统规定,所有进程都要由已存在的进程在 3 特权级创建。
给出 move_to_user_mode() 这个 宏定义的源码:
执行上面代码的时候 , CPU 里的重要的寄存器都已赋值 : GDTR 、 LDTR 、TR 、 IDTR 、 CR0 、 CR3 、 ESP 等。
(20)
谢谢