我正在寻找初始化第一个进程pid = 0的linux内核(2.4.x)中的代码。
许多搜索提供了许多线索,但我仍然无法找到它。
任何指针,任何人?
答案 0 :(得分:8)
初始任务结构由INIT_TASK()
中定义的宏include/linux/init_task.h
设置。所有其他任务结构都由do_fork
创建。
答案 1 :(得分:1)
答案 2 :(得分:1)
内核初始化的第一个进程是交换进程或空闲线程。这个线程永远运行。当系统中没有其他进程处于活动状态时,此线程[在ARM体系结构的arch / arm / kernel / process.c中找到的cpu_idle()函数]调用依赖于体系结构的pm_idle函数,该函数将CPU折叠直到定时器中断或其他一些中断唤醒它。
交换器进程[pid = 0]由宏INIT_TASK在arch / arm / kernel / init_task.c中初始化。