패스트캠퍼스 - 컴공전공 - 운영체제 - 부팅의 이해
부팅의 이해
- 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를 옮기면, 커널이 실행된다.
'패스트캠퍼스' 카테고리의 다른 글
패스트캠퍼스 '컴퓨터 공학전공필수 올인원 패키지' 챌린지 참여후기 (0) | 2020.12.26 |
---|---|
자료구조/알고리즘 - 프림 알고리즘 (0) | 2020.12.18 |
운영체제 - 파일 시스템 (0) | 2020.12.17 |
자료구조/알고리즘 - 해시(Hash) (2) | 2020.12.15 |
자료구조/알고리즘 - AVL 트리 (0) | 2020.12.15 |