학사 나부랭이

Operating System - Boot loader 본문

Dot-Gabi/Operating System

Operating System - Boot loader

태양왕 해킹 (14세) 2021. 5. 14. 18:22

前触れ

 OS는 명령어가 구동되는 커널, 프로그램의 명령어를 커널에 전달하는 프레임워크, 커널과 프레임워크 위에서 구동되는 UI로 나뉘어요. 부팅은 일반적으로 커널을 로드하고 프레임워크를 실행시킨 뒤 UI를 실행해서 OS를 시동하는걸 일컬어요

 

Boot loader

 시스템의 하드웨어를 초기화(준비)하고 커널을 메모리에 적재(복사)시켜 실행시켜주는 시스템 프로그램이에요.

컴퓨터를 켜면 롬에 있는 BIOS가 로드되고 그 바이오스는 컴퓨터에 연결된 저장매체(HDD, 부팅 USB 등)에서 설정된 부팅 순서대로 부트로더를 불러와요. 만약 HDD가 첫 번째 부팅 장치라면 바이오스는 HDD의 부트 로더를 로드해요.

 HDD 파티션 정보는 MBR(Master Boot Record)이라는 HDD의 첫 섹터에 있는데 바이오스는 파티션 테이블을 읽은 후, (멀티 부팅 시) 활성화 되어있는 파티션의 PBR(Partition Boot Record)을 읽어 그 데이터로 부팅하게 되어요. 여기서 MBR과 PBR(멀티 부팅 시 사용)이 1차 부트 로더예요.

2차 부트 로더는 윈도우 비스타 이상의 경우 BOOTMGR, XP에는 NTLDR, 리눅스에는 GRUB, SYSLINUX 등이 있어요. 2차 부트 로더는 이렇게 파일 형식으로, 부팅 파티션의 루트 경로에 있죠.

 이렇게 1차, 2차가 나뉜 이유는 MBR/PBR은 최대 512바이트 밖에 되지 않아서 MS-DOS 같은 OS 정도에는 적합했을지도 모르지만 OS가 복잡해지며 이런 복잡해진 OS의 커널을 로드할 준비를 하기에 512바이트는 너무 적은 용량이었죠. 그래서 2차 부트 로더를 1차 부트 로더를 통해서 커널을 로드하듯이 로드하고 2차 부트 로더를 통해 커널을 로드하는 방식을 채용했어요.

'Dot-Gabi > Operating System' 카테고리의 다른 글

Operating System - DLL  (0) 2021.05.30
Operating System - Registry  (0) 2021.05.14
Operating System - Memory management  (0) 2021.04.06
Operating System - Compile to execute  (0) 2021.04.06
Operating System - Memory  (0) 2021.04.02
Comments