본문 바로가기
OS

[32bit] 첫 걸음, 부트스트랩( Bootstrap )

by 올리고당 2021. 7. 27.

목차

  • 부트스트랩이 뭔가요?
  • 부트스트랩 과정

 


부트스트랩이 뭔가요?

OS 분야에서 부트스트랩은 CPU에 전원이 들어오고 나서, OS 커널이 로드되기까지 외부 입력 없이 스스로 진행하는 일련의 과정을 뜻합니다. 다른 분야에서도 각각 다른 의미로 쓰이는 용어이니, 혼동 없으시길 바랍니다.

 


부트스트랩 과정

일반적인 PC의 부트스트랩 과정을 살펴보겠습니다.

 

reset vector : CPU가 전원이 들어오면, 가장 먼저 확인하는 장소. 이곳에서 첫 명령어를 확인합니다. 롬처럼 각인된( hard-coded ) 레지스터가 있어 전원이 들어오지 않더라도 저장된 명령어 값이 유지됩니다. jump 명령어를 통해 바이오스( BIOS )로 실행 흐름을 넘겨줍니다.

 

BIOS ( Basic Input/Output System ) : 사용하는 하드웨어를 점검하고, OS 커널( kernel )을 준비해주는 펌웨어. 보통 컴퓨터의 메인보드의 바이오스 롬( BIOS ROM )에 저장되어있습니다. 바이오스 롬으로 과거에는 EEPROM이 쓰였으나, 요즘에는 플래시 메모리( Flash memory )가 쓰입니다.

 

POST ( Power on self test ) : 하드웨어를 점검하는 과정입니다. 하드웨어가 적절한 상태가 아닐 때, 보통 비프 ( beef ) 음으로 사용자에게 해당 정보를 알려줍니다. 관심 있으신 분들은 여기에서 좀 더 자세한 정보를 얻으실 수 있습니다.

 

drive : HDD( hard disk drive ) 또는 SSD( solid state drive )를 지칭합니다. vmware로 시뮬레이션할 때, 드라이브( drive ) 대신 플로피 디스크( floppy disk )를 사용할 예정입니다.

 

boot sector : 드라이브 내의 first-stage boot loader가 저장되어 있는 0 ~ 512Byte 사이의 영역입니다. MBR( master boot record ) 영역이라고도 합니다.

 

first-stage boot loader : 보통 second-stage boot loader를 불러오는 역할을 수행하지만, 작성할 OS kernel이 매우 간단하기 때문에, 이 부트로더만 만들 예정입니다.

 

second-stage boot loader : 원래 OS 커널을 직접 불러오는 역할을 하지만, 작성할 OS 커널이 매우 간단하기 때문에, 이 부트로더는 만들지 않을 예정입니다.

 


그림출처 - 번역 및 수정

https://en.wikipedia.org/wiki/Booting#/media/File:Flow-diagram-computer-booting-sequences.sv

 

각종 용어 검색

https://en.wikipedia.org/

 


이번 글에서는 부트스트랩이 무엇인지 알아보았습니다.

다음 글에서는 부트섹터에서 프로그램을 꺼내 실행시켜보겠습니다.

 

감사합니다.