linux0.11进程2及其以后的进程为什么不能直接使用..
时间:2007-04-10 来源:pywj777
1. linux0.11进程2及其以后的进程为什么不能直接使用内核代码?
(1) 答:因为进程1在使用fork()创建进程2时,进程2占用的线性地址空间范围是128~192MB,它同样会复制进程1的页表项,但随后它运行execve()函数开始加载并执行shell程序时,该系统调用会释放从任务一复制的页目录项和页表项及相应的内存页面。然后为新的执行程序shell重新分配设置相关页目录项和页表项。这时它的页目录和页表项不在映射到内核代码中,所以它无法直接执行内核代码。而随后的进程都是由它创建的,都是复制它的页表项,所以也无法执行内核代码。
相关阅读 更多 +