init 是内核加载后执行的第一个任务,对吧?那么它的主人是谁呢。
我还可以看到 [swapper/0] [swapper/1] ..... [swapper/7] 的 pid 0
PID PPID CPU TASK ST %MEM VSZ RSS COMM
0 0 0 c180b020 RU 0.0 0 0 [swapper/0]
0 2 1 f7550ca0 RU 0.0 0 0 [swapper/1]
0 2 2 f7554bc0 RU 0.0 0 0 [swapper/2]
0 2 3 f7570ca0 RU 0.0 0 0 [swapper/3]
0 2 4 f7574bc0 RU 0.0 0 0 [swapper/4]
0 2 5 f75c8ca0 RU 0.0 0 0 [swapper/5]
0 2 6 f75ccbc0 RU 0.0 0 0 [swapper/6]
0 2 7 f75f0ca0 RU 0.0 0 0 [swapper/7]
1 0 2 f7480000 IN 0.1 4676 2568 init
2 0 5 f7480ca0 IN 0.0 0 0 [kthreadd]
答案1
init
是一个始终具有 PID=1 且 PPID=0 的用户空间进程。一旦一切准备就绪(即初始化基本设备驱动程序并安装根文件系统),它就是内核生成的第一个用户空间程序。当第一个进程启动时,它没有有意义的父进程。
摘录中的其他“进程”确实是内核任务。