System Boot

less than 1 minute read

 

시스템 부트

 

일반적으로 컴퓨터 시스템에 전원이 들어오면

CPU는 메모리 상의 특정 주소에서 명령을 가져와서 실행 가능하도록 되어있다.

대부분 이 특정 주소는 컴퓨터의 펌웨어가 달려있는 ROM 영역에 해당한다.

예를 들어 Intel 의 경우 전원이 들어오면 메모리 상의 ffff0 번부터 명령을 실행한다.

PC의 경우 이것이 ROM BIOS의 코드에 해당한다.

 

하드웨어가 운영 체제를 시작할 수 있게

운영 체제는 하드웨어에 접근 가능하게 만들어져야 한다.

시스템이 부트되는 방식에는 두 가지가 있다.

  • ROM이나 EEPROM에 저장된 작은 코드로 이뤄진 bootstrap loader

    운영 체제 커널의 위치를 찾고 이를 메모리로 올려서 시작하는 방식

  • ROM 코드가 고정된 장소인 disk 앞부분에서 로드해오는 boot block

    다시 disk에서 bootstrap loader를 로드해오는 방식

 

흔히 쓰이는 bootstrap loader 인 GRUB는 여러 디스크, 버전, 커널 옵션에서 커널을 선택할 수 있다.

커널이 로드되면 시스템이 running 상태가 된다.

bootstrap loader 의 경우 bootstrap loader 가 ROM에 하드 코딩된다.

=> 매번 동일한 위치의 동일한 OS를 부팅시키므로 유연성이 떨어진다.

일반적으로 두 번째 방식을 사용한다. 이를 통해 운영 체제를 두 개 깔 수 있다.