패스트캠퍼스

운영체제 - 부팅

돌맹이시터 2020. 12. 18. 00:16

 

패스트캠퍼스 - 컴공전공 - 운영체제 - 부팅의 이해

 

 

 

부팅의 이해

 

 

- Boot 

 

•컴퓨터를 켜서 동작시키는 절차

•Boot program

: 운영체제 커널을 storage에서 특정 주소의 물리 메모리로 복사하고,

커널의 처음 실행위치로 PC를 가져다 놓는 프로그램

 

 

 

 

* 폰 노이만 구조에 따르면,

 

모든 코드는 메모리의 특정 영역에 위치하고,

그 코드를 cpu에 가져와서 실행시켜야 한다.

 

하지만

부팅 시 메모리에는 아무런 정보도 없는데

어떻게 저장매체의 특정 운영체제 커널을 복사해서 메모리로 가지고 올 수 있을까?

 

 

패스트캠퍼스 강의자료

 

ROM-BIOS 라는 칩이 존재한다.

(어떤 ROM 또는 특별한 RAM으로 구성되어 있는데, BIOS라는 프로그램이 내장되어 컴퓨터가 꺼져도 정보가 남아있다.)

read/write 모두 가능하다 (바이오스 업데이트가 가능하다)

 

컴퓨터가 켜지면 cpu가 ROM-BIOS의 특정 주소(FFFF0H)를 읽게 되며,

BIOS 프로그램이 있는 위치로 가서 프로그램의 일부가 실행이 되는데,

이 때 BIOS 프로그램을 메모리에 적재하게 된다.

 

ROM-BIOS의 처리속도가 느리기 때문에 

번거롭더라도 처리속도가 빠른 램에서 실행되도록 하는 것이다.

 

 

* BIOS 프로그램 

 

•컴퓨터 초기화 (하드웨어 초기화)

•저장매체 맨 앞의 특정 공간(첫부분)인  MBR(master boot record)이라고 하는데,

이 MBR 영역을 읽어온다. 

•MBR 영역에 있는 부트 로더라는 프로그램을 메모리에 로드

•부트로더 프로그램 실행 : 파티션 테이블

•해당 파티션에 '부트섹터' 공간이 있는데, 그것을 통해 저장매체의 부트섹터가 있는 주소로 찾아간다.

•부트섹터에는 '부트코드'가 있고, 부트코드를 메모리로 가져와서 실행한다.

( 해당 파티션 안에 커널 이미지 (실행파일)가 있는데,

운영체제의 실행파일의 주소를 알아내서 해당 주소부터 시작해 커널 이미지를 메모리로 가져온다. )    

•이 커널 이미지의 맨 처음으로 PC를 옮기면, 커널이 실행된다.