부트로더(bootloader)란 무엇인가?

2025. 10. 21. 14:18·Embedded Systems/리눅스

부트로더는 OS가 시동되기 이전에 미리 실행되면서 kernel이 올바르게 시동되기 위해 필요한 모든 관련 작업을 마무리 하고 최종적으로 OS를 시동시키기 위한 목적을 가진 프로그램을 말한다.

즉, 메모리 / 하드웨어(네트워크, 프로세스 속도, 인터럽트), 코드&데이터&스택 영역 설정 및 초기화 / 커널 로더 로딩 / 커널 이미지 로딩 / 커널 로더를 실행해 커널 이미지를 메모리에 올리기를 수행한다.

다시 말해, 임베디드 리눅스 시스템에서 부트로더는 시스템을 기본 수준(basic level)으로 초기화하고 커널을 로드하는 두 가지 주요 작업을 수행한다고 할 수 있다.

 

전원을 켜거나 리셋한 뒤 부트로더 코드의 첫 줄이 실행될 때, 시스템은 초기 상태에 있다. DRAM 제어기는 시작하지 않았기에 메모리에는 접근할 수 없다. 마찬가지로, 다른 인터페이스도 구성되지 않았기 때문에 NAND 플래시 제어기, MMC 제어기 등을 통해 접근하는 저장소도 사용할 수 없다. 흔히 처음에 동작하는 자원은 하나의 CPU 코어와 약간의 온칩 정적 메모리, 부트 롬이다.

시스템 bootstrap은 몇 단계의 코드로 이루어지고, 각각은 시스템의 더 많은 부분을 작동시키며, 마지막 동작으로 커널을 램에 로드하고 그를 위한 실행 환경을 만든다. 부트로더와 커널 사이의 인터페이스는 아키텍처별로 다르지만, 두가지 공통된 일을 한다.

  1. 부트로더는 HW 구성정보를 담고 있는 구조체의 포인터를 전달한다.
  2. 커널 명령줄(kernel command line)의 포인터를 전달한다.

부트로더의 종류는 LILO, GRUB, BLOB, ARMBOOT, RedBoot, U-Boot 등이 있다.

'Embedded Systems > 리눅스' 카테고리의 다른 글

[Linux] 디바이스 드라이버란 무엇일까?  (0) 2025.10.27
[Linux] 리눅스의 프로그래밍 도구 (GCC, make, gdb 유틸리티)  (0) 2025.10.27
[linux] gcc를 이용한 소스 코드 빌드 과정  (0) 2025.10.21
/bin/bash^M: bad interpreter: No such file or directory 오류  (0) 2022.06.09
[WSL] Conda: "command not found" 에러 (우분투 환경)  (0) 2022.03.16
'Embedded Systems/리눅스' 카테고리의 다른 글
  • [Linux] 리눅스의 프로그래밍 도구 (GCC, make, gdb 유틸리티)
  • [linux] gcc를 이용한 소스 코드 빌드 과정
  • /bin/bash^M: bad interpreter: No such file or directory 오류
  • [WSL] Conda: "command not found" 에러 (우분투 환경)
jh-rrr
jh-rrr
기술의 깊이에 집중하며 성장하길 지향합니다.
  • jh-rrr
    Embedded World
    jh-rrr
  • 전체
    오늘
    어제
    • 분류 전체보기 (64)
      • 소프트웨어 (17)
        • 프로그래밍 (2)
        • C (10)
        • Python (1)
        • 운영체제 (3)
        • 네트워크 (0)
      • Embedded Systems (16)
        • 리눅스 (10)
        • MCU 기본 (2)
        • 임베디드 레시피 (0)
      • Projects (1)
        • Cortex-M3 (1)
        • 재난 구조 로봇 (0)
      • AI (11)
        • Computer Vision (2)
        • Deep Learning (3)
        • cs224n (2)
        • cs231n (2)
      • 취업 준비 (0)
        • 프로젝트 & 자격증 (1)
      • 엔지니어링 뉴스 (3)
      • Paper Reviews (4)
      • Insights (8)
        • Seminar ! (2)
        • 서평 (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    일귀
    커널 이미지란
    stm32f 시리즈를 이용한 arm cortex-m3/m4 구조와 응용
    kernel image 란
    커널 이미지
    conda: command not found
    리눅스 오류
    리눅스
    OS 이미지
    essential deep learning paper reading
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
jh-rrr
부트로더(bootloader)란 무엇인가?
상단으로

티스토리툴바