리눅스의 주요 구성 요소를 살펴보았으니, 이제 이들이 시스템 시작 시 어떻게 통합되는지 살펴보겠습니다. 전원 버튼을 누르는 순간부터 로그인 프롬프트에 도달하기까지의 전체 순서를 **리눅스 부팅 프로세스 (Linux boot process)**라고 합니다. 이는 전원이 꺼진 기계를 완전히 기능하는 운영 체제로 변모시키는 흥미로운 여정입니다.
리눅스 운영 체제의 부팅 프로세스는 네 가지 주요 단계로 단순화할 수 있습니다.
1 단계 BIOS
BIOS(Basic Input/Output System) 또는 그 현대적 후속 기술인 UEFI(Unified Extensible Firmware Interface) 는 컴퓨터 전원을 켤 때 가장 먼저 실행되는 소프트웨어입니다. POST(Power-On Self-Test) 를 수행하여 CPU, 메모리, 저장 장치와 같은 시스템 하드웨어를 초기화하고 확인합니다. 하드웨어 검사가 완료되면 BIOS 의 주요 임무는 저장 장치에서 부트로더를 찾아 로드하는 것입니다.
2 단계 부트로더
부트로더는 BIOS 로부터 제어권을 넘겨받습니다. 주요 책임은 리눅스 커널을 메모리에 로드하는 것입니다. 리눅스의 일반적인 부트로더는 GRUB(GRand Unified Bootloader) 입니다. GRUB 은 종종 메뉴를 표시하여 부팅할 운영 체제나 커널 버전을 선택할 수 있게 합니다. 선택하거나 시간 초과가 발생하면 선택된 커널과 초기 램 디스크 (initrd) 를 메모리에 로드한 다음 제어권을 커널에 넘깁니다.
3 단계 커널
커널이 메모리에 로드되면 시스템 제어권을 갖습니다. 먼저 자신을 압축 해제하고 핵심 하드웨어 및 메모리 관리를 초기화합니다. 그런 다음 커널은 시스템의 모든 파일이 포함된 루트 파일 시스템을 마운트합니다. 리눅스 부팅 프로세스에서 가장 중요하고 마지막 임무는 첫 번째 사용자 공간 프로그램인 init 프로세스를 실행하는 것입니다.
4 단계 Init
init 프로세스는 커널에 의해 시작되는 첫 번째 프로세스이며 시스템의 모든 다른 프로세스의 조상입니다. 주요 임무는 구성에 따라 필수 서비스 및 백그라운드 프로세스 (데몬) 를 시작하여 시스템을 사용 가능한 상태로 만드는 것입니다. 전통적인 System V init, Upstart, 그리고 현재 널리 채택된 systemd 와 같이 여러 init 구현이 있습니다.
이는 리눅스 부팅 프로세스가 따르는 것에 대한 개요를 제공합니다. 다음 강의에서 이 각 단계에 대해 더 깊이 탐구할 것입니다.