📌컴퓨터의 부팅 과정
- 부팅(Booting)이란 컴퓨터 본체를 누르고 사용자가 시작할 수 있는 상태가 될 때 까지의 과정
- 컴퓨터에 전원을 공급하고 운영체제 가동 및 시스템을 사용하기 위해 준비하는 과정을 부팅이라고 함
1. 컴퓨터 전원 ON
- 컴퓨터의 전원을 켜면 메인보드에 전력이 들어옴(Power ON)
- 메인보드에 장착된 장치들(CPU, 메모리, 디스크 등)에도 전력이 공급됨
2. ROM BIOS 동작
- 메인보드에 장착된 CPU가 ROM(Read Only Memory)에 저장된 BIOS(Basic Input/Output System)를 실행
✔️ ROM(Read-Only Memory)
- 주기억장치(메모리)에는 ROM, RAM 두 종류가 있습니다. ROM은 말 그대로 Read-Only Memeory이기 때문에 오직 읽기만 가능합니다. ROM에 저장된 데이터들은 비휘발성이기 때문에 전원 공급이 끊겨도 저장된 데이터들이 사라지지 않습니다.
- 따라서 ROM에는 사라지지 않고 항상 저장되어 있어야 하는 데이터들이 존재해야 하는데, 컴퓨터를 켤 때 가장 먼저 시작되는 BIOS라는 펌웨어가 이 ROM에 저장되어 있습니다.
- BIOS는 컴퓨터의 하드웨어 장치들의 I/O을 관리하는 펌웨어(Firmware)
- 컴퓨터에 전원이 공급되면 ROM에 저장되어 있던 BIOS가 가장 먼저 실행됨
- 컴퓨터 하드웨어 장치들(H/W) ↔️ BIOS(Firmware) ↔️ 운영체제(S/W)
- 컴퓨터의 하드웨어 장치들과 운영체제(OS)사이에 위치하여 운영체제가 하드웨어의 I/O를 제어할 때 BIOS를 통해 제어하게 됨
- 최근 PC들은 기존의 Legacy BIOS를 대체하는 UEFI가 탑재됨
(출처 : https://mamu2830.blogspot.com/2020/04/bios-post-mbr.html)
- 위의 사진에서 두 개의 ROM이 있는데 하나는 주로 사용되는 M_BIOS(Main BIOS)가 저장되어 있고, 나머지 하나는 Main BIOS가 고장났을 때를 대비하기 위해 백업용도의 B_BIOS(Backup BIOS)가 저장되어 있음
- 펌웨어(Firmware)란 사용자가 임의로 수정할 수 없는 프로그램을 말합니다. BIOS는 컴퓨터의 전원을 켰을 때 가장 먼저 실행되어야 하기 때문에 삭제되지 않고 어딘가에 저장되어야 합니다. 따라서 BIOS는 비휘발성인 ROM에 저장되어 삭제되지않고 컴퓨터 Power ON 시 가장 먼저 실행될 수 있습니다.
✔️ UEFI(Unified Extentiable Firmware Inteface)
- 일반적으로 BIOS는 Legacy BIOS를 일컫는데 UEFI는 기존의 Legacy BIOS를 대체할 수 있는 최신 버전의 펌웨어
- Legacy BIOS는 디스크의 첫 섹터에 저장된 MBR을 읽고 부팅과정을 진행하지만 UEFI는 특정 섹터를 지정하지 않고 저장 가능한 GPT파티션 사용
- 부팅장치로 MBR이 아닌 GPT를 사용하여 기존의 MBR은 장치의 최대 용량이 2TB였던 것에 비해 GPT은 최대 9ZB까지의 용량을 사용할 수 있음
3. BIOS의 POST 과정
-
CPU에 의해 실행된 BIOS는 컴퓨터의 하드웨어 장치들(CPU를 제외한 메모리, 디스크 등)을 검사하는 POST(Power On Self Test) 과정을 진행
-
BIOS는 POST과정이 진행된 후 부팅할 수 있는 보조기억장치(USB, 디스크 등)를 선택
(출처 : https://mamu2830.blogspot.com/2020/04/bios-post-mbr.html)
- BOOT ORDER Priorities(부팅 우선 순위)에 따라 부팅할 보조기억장치를 찾는데 위 사진에서는 USB Hard Disk로 선택되어 있기 때문에 USB가 정상적으로 컴퓨터에 꽂혀 있고 제대로 인식이 되는지 확인하고 USB 내에 부팅과 관련된 부팅 이미지 파일(.iso 형식의 파일 등)을 먼저 읽음
- POST 과정에서 오류가 발생하면 비프음(삡-삡-삡)이 발생
4. RAM에 OS를 적재(Loading)
- BIOS는 주변 하드웨어 장치들을 검사하는 POST 과정 이후, 부팅할 보조기억장치를 선택하고 부팅할 하드디스크의 MBR(Master Boot Record)에 저장되어 있는 부트로더(Boot Loader)를 실행
- 부트로더는 하드디스크의 첫 섹터인 MBR내 OS를 RAM에 로드(OS Loading)
✔️ Boot Loader
- 부트로더(Boot Loader) : 운영체제를 시작하기 위해 OS를 RAM에 올려주는 부팅 전용 프로그램
- 부팅할 장치의 MBR은 보조기억장치의 첫 섹터(512 byte)에는 부트로더가 포함되어 있음