5. 부팅 프로세스: Init

우리가 배운 바와 같이, init 프로세스는 리눅스 부팅 과정에서 가장 먼저 실행되는 프로세스입니다. 이는 다른 모든 프로세스의 부모이며, 시스템을 사용 가능한 상태로 만드는 데 필수적인 서비스를 시작할 책임이 있습니다. 그렇다면 어떻게 이를 달성할까요?

리눅스 init 시스템에는 서비스를 관리하는 방식이 다른 세 가지 주요 구현체가 있습니다.

System V Init

sysvinit라고도 불리는 System V init 은 리눅스의 전통적인 init 시스템입니다. 이는 스크립트로 정의된 순차적인 시작 절차를 따릅니다. 시스템의 상태는 런레벨 (예: 단일 사용자 모드, 네트워킹을 포함한 다중 사용자 모드) 을 통해 관리되며, 각 런레벨은 시작하거나 중지해야 할 특정 서비스 집합을 가집니다. 이는 클래식 리눅스 부팅 과정에서 오랫동안 표준이었습니다.

Upstart

이전 Ubuntu 버전에서 발견된 Upstart 는 이벤트 기반 init 시스템입니다. 이는 System V 의 엄격한 순차적 모델에서 벗어났습니다. 대신, Upstart 는 네트워크 장치가 사용 가능해지는 것과 같은 시스템 이벤트에 응답하여 서비스 (작업이라고 함) 를 시작하고 중지합니다. 이를 통해 더 유연하고 빠른 부팅 시간을 얻을 수 있습니다.

systemd

리눅스 init 시스템의 현대적 표준은 systemd입니다. 이는 의존성을 공격적으로 관리하는 목표 지향적 시스템입니다. 단순히 서비스 목록을 시작하는 대신, 그래픽 인터페이스와 같은 목표 상태를 정의하면, systemd는 해당 목표에 대한 모든 의존성을 충족시키기 위해 작동하며, 종종 서비스를 병렬로 시작하여 부팅 프로세스를 크게 가속화합니다.

Init 시스템에 대한 전체 과정이 있으며, 이들 각 시스템에 대해 더 자세히 다룰 예정입니다.

로그인하여 학습 진행 상황을 저장하세요

로그인

연습 문제

연습이 완벽을 만듭니다! 리눅스 프로세스와 시스템이 이를 관리하는 방식을 이해하는 데 도움이 되는 몇 가지 실습 랩이 있습니다:

  1. 리눅스 프로세스 관리 및 모니터링 - 전경 및 배경 프로세스와 상호 작용하고, ps로 검사하고, top으로 리소스를 모니터링하고, kill로 종료하는 것을 연습합니다. 이 랩은 init이 작동하는 방식의 기본이 되는 프로세스의 수명 주기와 제어를 이해하는 데 도움이 될 것입니다.

이러한 랩은 이러한 개념을 실제 시나리오에 적용하고 리눅스 프로세스 관리에 대한 자신감을 구축하는 데 도움이 될 것입니다.

퀴즈

가장 새로운 init 표준은 무엇입니까? (소문자 영어 알파벳으로만 답하십시오)