문제
다음 ( 괄호 ) 안에 들어갈 내용으로 알맞은 것은?
리눅스가 부팅을 시작하면 커널이 ( ㉠ ) 프로세스를 발생시키고, ( ㉠ ) 프로세스는 시스템 운영에 필요한 데몬 등을 비롯하여 다른 프로세스들은 ( ㉡ ) 방식으로 생성한다.
① ㉠ init ㉡ exec ② ㉠ init ㉡ fork ③ ㉠ inetd ㉡ exec ④ ㉠ inetd ㉡ fork
정답
2번
해설
정답: 2. 부팅 시 커널이 가장 먼저 띄우는 프로세스는 init(PID 1)이며, 이후의 모든 프로세스는 부모를 복제하는 fork 방식으로 생성된다. 따라서 ㉠ = init, ㉡ = fork 다.
오답 풀이
- 1번: ㉠ init 은 맞지만 ㉡ 에 exec(대체)를 넣어 프로세스 "생성" 메커니즘과 어긋난다.
- 2번: ㉠ init, ㉡ fork 로 부팅 직후 init 이 fork 로 자식들을 만드는 흐름과 일치하므로 옳다(이 문항의 정답).
- 3번: inetd 는 슈퍼 데몬일 뿐 커널이 처음 띄우는 1번 프로세스가 아니다.
- 4번: ㉠ 을 inetd 로 본 것 자체가 틀렸고 ㉡ fork 만으로는 정답이 아니다.
보충 개념 부팅 흐름: 커널 → init(또는 systemd, PID 1) → fork 로 자식 프로세스 생성. fork 는 복제, exec 는 대체이며 자식은 fork 후 exec 로 실제 프로그램을 적재한다.