1. Boot, Booting, Bootstrapping
ㅇ 부트 (Boot)
- 일반적으로, 컴퓨터를 기동할 때 필요한 최소개의 기계 명령어 모음을 일컬음
ㅇ 부팅 (Booting) = 부트스트랩핑 (Bootstrapping)의 줄임말
- 시스템(컴퓨터 등)을 사용가능 상태(운영체제의 동작)로 되도록 하는 일련의 과정
. 운영체제 커널을 메모리에 적재하고 컴퓨터를 시동하는 초기화 과정
- 통상, 전원이 켜질 때 자동으로 실행되며,
. 이러한 실행(부팅) 과정이 저장된 프로그램을 부트 프로그램(또는 Bootstrap)이라고 함
※ 한편, `부트스트랩 (Bootstrap)` 이라는 용어는,
- `자동으로 설정되어지게 함`이라는 매우 일반적인 용어로도 쓰이고 있음
2. PC 상의 부팅 과정 : (BIOS 기반의 부팅인 경우)
ㅇ PC에 전원이 들어오면,
- 마더보드 상의 특정 논리회로가 CPU 리셋 핀에 특정 값을 넣어 줌
ㅇ 이로써, 내장 펌웨어 상에 있는, 특정 루틴이 시작됨
- (과거) BIOS 루틴이 주기억장치에 복사되고, 이를 실행시킴
- (현재) UEFI 루틴이 주기억장치에 복사되고, 이를 실행시킴
ㅇ 이로부터, POST 진단과정이 시작되고,
ㅇ 만일, 하드웨어 이상이 발견되지 않으면,
ㅇ 부팅용 드라이브 검색을 시작 함
- (이때, 설정에 따라 드라이브 검색 순위가 다를 수 있음)
- 例) HDD,USB,DVD,네트워크 등의 순서로
ㅇ 각 디스크 드라이브 검색 마다,
- 운영체제 적재용 부트 프로그램(부트 로더)을 찾고,
. 도스 기반의 파일시스템에서는, 하드디스크 맨 앞 MBR 영역에서 부트 로더를 찾음
- 만일 찾으면, 이를 통해 특정 운영체제 커널을 메모리에 적재하고,
ㅇ 최종적으로, 실행 권한을 메모리에 로드된 운영체제의 해당 커널에 넘겨 줌
- 이후, 커널은, 하드웨어를 초기화하고,
- 루트 파일 시스템을 마운트하게 되고,
- 각종 초기화 프로그램들을 실행시킴