init: 사용자 스레드입니까, 아니면 커널 스레드입니까?

init: 사용자 스레드입니까, 아니면 커널 스레드입니까?

init는 커널이 로드된 후 실행되는 첫 번째 작업입니다. 그렇죠? 그렇다면 그 주인은 누구인가?

[swaper/0] [swaper/1] ..... [swaper/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인 사용자 공간 프로세스입니다. 모든 것이 준비되면(즉, 기본 장치 드라이버가 초기화되고 루트 파일 시스템이 설치됨) 커널이 생성하는 첫 번째 사용자 공간 프로그램이 됩니다. 첫 번째 프로세스가 시작되면 의미 있는 상위 프로세스가 없습니다.

발췌문의 다른 "프로세스"는 실제로 커널 작업입니다.

관련 정보