7.1. 도입

리눅스 시스템 부팅은 여러 작업들을 수반한다. 이 과정 중에는 반드시 가상, 실제 파일 시스템을 모두 마운트하고, 장치 초기화, 스왑 활성화, 파일 시스템 무결성 확인, 스왑 파티션 또는 파일 마운트, 시스템 시계 설정, 네트워크 시작, 시스템에 필요한 데몬 시작, 사용자가 필요로 하는 사용자 지정 작업들을 수행해야 한다. 이 절차는 작업들이 올바른 순서로 수행되도록 구성되어야 하지만 동시에 가능한 한 빨리 실행되어야 한다.

7.1.1. System V

System V는 약 1983년부터 리눅스 등 유닉스와 유닉스 계열 시스템에서 사용되고 있는 고전적인 부팅 절차이다. login(getty를 통한)같은 기본 프로그램을 시작하고 스크립트를 실행하는, init이라는 작은 프로그램으로 구성되어 있다. 보통 rc라는 이름의 이 스크립트는 시스템 초기화에 필요한 작업을 수행하는 추가적인 스크립트들의 실행을 관리한다.

init 프로그램은 /etc/inittab 파일에 의해 제어되며 사용자가 실행할 수 있는 run level들로 구성되어 있다:


0 — 시스템 종료(halt)
1 — 단일 사용자 모드(Single user mode)
2 — 네트워크 미지원 다중 사용자 모드(Multiuser, without networking)
3 — 다중 사용자 모드(Full multiuser mode)
4 — 사용자 정의 가능(User definable)
5 — 디스플레이 관리자가 있는 다중 사용자 모드(Full multiuser mode with display manager)
6 — 재부팅(reboot)

보통 기본 run level은 3이나 5이다.

장점

  • 철저히 분석되어 확고하게 자리잡은 검증된 시스템.

  • 쉽게 사용자 정의 가능.

단점

  • 비교적 느린 부팅 속도. 평균적인 속도의 LFS 시스템은 첫 번째 커널 메시지부터 로그인 프롬프트까지 부팅 시간을 측정했을 때 8-12초가 걸린다. 네트워크 연결은 일반적으로 로그인 프롬프트 후 약 2초 후에 수립된다.

  • 부팅 작업의 직렬 처리. 이것은 위에서 말한 바와 관련이 있다. 파일 시스템 확인과 같은 어떤 절차가 지연되면, 전체 부팅 절차가 지연된다.

  • 제어 그룹(cgroups), 사용자별 공평 분배 스케줄링과 같은 고급 기능을 직접 지원하지 않는다.

  • 스크립트를 추가하려면 수동적이고 고정적인 순서대로 판단해야 한다.