进程0需要具备的三种能力

进程0需要具备的三种能力

Content #

进程0是Linux操作系统中运行的第一个进程,也是Linux操作系统父子进程创建机制的第一个父进程。主要包含如下三方面的内容。

1)系统先初始化进程0。进程0管理结构task_struct的母本(init_task = {INIT_TASK,})已经在代码设计阶段事先设计好了,但这并不代表进程0已经可用了,还要将进程0的task_struct中的LDT、TSS与GDT相挂接,并对GDT、 task[64]以及与进程调度相关的寄存器进行初始化设置。 2)多进程轮询的能力。系统对时钟中断进行设置,以便在进程0运行后,为进程 0以及后续由它直接、间接创建出来的进程能够参与轮转奠定基础。 3)进程0要具备处理系统调用的能力。每个进程在运算时都可能需要与内核进行交互,而交互的端口就是系统调用程序。系统通过函数set_system_gate将 system_call与IDT相挂接,这样进程0就具备了处理系统调用的能力了。这个 system_call就是系统调用的总入口。

进程0只有具备了以上三种能力才能保证将来在主机中正常地运行,并将这些能力遗传给后续建立的进程。

From #

Linux内核设计的艺术