Linuxpia/데스크톱 리눅스

리눅스의 시스템 부팅 과정

Linuxpia4U 2024. 9. 15. 14:28
반응형

리눅스의 시스템 부팅 과정

리눅스의 시스템 부팅 과정은 컴퓨터가 켜진 후 운영 체제가 완전히 로드되어 사용자가 시스템을 사용할 수 있는 상태에 이르기까지의 일련의 단계입니다. 이 과정은 크게 다섯 단계로 나눌 수 있습니다: BIOS/UEFI, 부트로더(bootloader), 커널 로딩, 초기 램디스크(initramfs/initrd), 그리고 시스템 초기화(System Initialization)입니다. 각 단계를 자세히 설명하면 다음과 같습니다.

1. BIOS/UEFI 단계

  • BIOS(Basic Input/Output System) 또는 UEFI(Unified Extensible Firmware Interface)는 시스템이 전원을 켜면 가장 먼저 실행되는 펌웨어(firmware)입니다.
  • 하드웨어 초기화 및 시스템의 기본적인 하드웨어를 검사하고, 부팅 가능한 디스크를 찾습니다.
  • 부트 장치(디스크, USB 등)의 첫 번째 섹터(MBR 또는 GPT)에 있는 부트로더를 메모리로 로드하고 제어를 넘깁니다.
  • 현대적인 시스템에서는 BIOS보다 유연하고 강력한 UEFI가 더 널리 사용됩니다.

2. 부트로더(bootloader) 단계

  • 부트로더는 운영 체제의 커널을 로드하는 작은 프로그램입니다. 가장 널리 사용되는 부트로더로는 GRUB(Grand Unified Bootloader)가 있습니다.
  • GRUB는 부팅 메뉴를 제공하며, 사용자가 부팅할 커널을 선택하거나 부트 옵션을 수정할 수 있습니다.
  • GRUB는 디스크에서 커널 이미지(vmlinuz)와 초기 램디스크(initramfs 또는 initrd)를 메모리로 로드합니다.
  • 이후 커널에 제어를 넘깁니다.

3. 커널 로딩(Kernel Loading) 단계

  • 커널이 메모리로 로드되면 시스템의 제어권을 갖게 됩니다.
  • 이 단계에서 커널은 하드웨어를 초기화하고 필요한 드라이버를 로드하며, 시스템의 핵심 기능(메모리 관리, 프로세스 관리 등)을 설정합니다.
  • 장치 드라이버를 로드하고, 가상 파일 시스템을 초기화하며, 루트 파일 시스템을 마운트 할 준비를 합니다.

4. 초기 램디스크(initramfs/initrd) 단계

  • initramfs 또는 initrd(initial ramdisk)는 루트 파일 시스템을 마운트하기 전에 필요한 임시 파일 시스템입니다.
  • 이 단계에서는 커널이 루트 파일 시스템을 마운트 할 수 있도록 필요한 모듈과 드라이버를 제공합니다.
  • 예를 들어, RAID, LVM(Logical Volume Manager), 암호화된 파일 시스템 등 특수한 설정이 있는 경우에 필요합니다.
  • 커널은 이 단계에서 initramfs를 마운트하고 필요한 초기화 작업을 수행한 후, 실제 루트 파일 시스템을 마운트 합니다.

5. 시스템 초기화(System Initialization) 단계

  • 루트 파일 시스템이 마운트 된 후, 커널은 첫 번째 사용자 공간 프로세스를 시작합니다. 전통적으로 이는 /sbin/init 프로세스입니다.
  • 현대 리눅스 배포판에서는 주로 systemd, SysVinit, 또는 Upstart와 같은 초기화 시스템이 사용됩니다.
  • systemd는 가장 널리 사용되는 초기화 시스템으로, 병렬로 서비스를 시작하고 시스템을 부팅하는 데 필요한 여러 가지 작업을 수행합니다.
  • 이 단계에서는 다양한 서비스(네트워킹, 디스플레이 매니저, 데이터베이스 등)를 시작하고, 시스템을 사용자에게 사용할 수 있는 상태로 만듭니다.
  • 부팅이 완료되면 사용자 로그인 프롬프트 또는 그래픽 로그인 화면을 표시합니다.

리눅스민트 부팅

정리

리눅스의 부팅 과정은 시스템의 펌웨어(BIOS/UEFI)에서 시작하여 부트로더(GRUB)로 넘어가고, 커널 로딩을 거쳐 초기 램디스크(initramfs)를 로드하며, 최종적으로 시스템 초기화 단계(systemd 등)에서 필요한 서비스를 시작하는 복잡한 일련의 과정입니다. 각 단계는 시스템이 안정적으로 운영될 수 있도록 하드웨어 초기화, 커널 로딩, 파일 시스템 마운트, 서비스 시작 등의 작업을 수행합니다.

반응형