init:是用户线程还是内核线程?

init:是用户线程还是内核线程?

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 的用户空间进程。一旦一切准备就绪(即初始化基本设备驱动程序并安装根文件系统),它就是内核生成的第一个用户空间程序。当第一个进程启动时,它没有有意义的父进程。

摘录中的其他“进程”确实是内核任务。

相关内容