상세 컨텐츠

본문 제목

2.10 시스템 부트

Computer Science/OS Concepts

by RACC8N 2020. 4. 17. 15:16

본문

Bootstrapping (booting)

- 커널을 적재하여 컴퓨터를 시작하는 절차

 

Bootstrap loader

- 커널을 찾아서 메모리에 적재하고 수행을 시작하는 일을 하는 ROM에 저장된 코드

- 대개 시스템을 진단(diagnostic)하는 작업을 수행하고, 시스템 전체를 초기화 한 후에 운영체제를 시작시킴

 

Firmware

- bootstrap 코드의 변경이 가능하도록 ROM 대신 EPROM에 저장함

- 하드웨어와 소프트웨어의 중간 특성을 가져서 firmware라고 부름

- 실행속도가 RAM에서 실행하는 것 보다 느려서 대개 빠른 수행을 위해서 RAM에 복사하여 실행함

 

운영체제는 대개 디스크에 저장하지만, 일부 시스템은(smartphone, game console등) 운영체제 전체를 firmware(EPROM/flash메모리)에 저장함

 

시스템 부트 과정

다단계 부팅 과정

1. bootstap loader : reset location in ROM

 - 부트 디스크의 boot block을 메모리에 적재 후 시행

2. simple boot code : single block at block 0 of a boot disk(boot disk)

 - 나머지 bootstrap 프로그램(full bootstrap program)에 대한 디스크 주소와 길이만 알고 있는 간단한 코드

3. complex boot code (full bootstrap program)

 - 파일 시스템을 탐색하여 OS커널을 찾고, 메모리에 적재하여 실행을 시작

 - EX) GRUB (Grand Unified Bootloader)

4. operating system kernel

 -  운영체제가 커널을 실행하고 프로세스를 시작함

 

1,2 단계 - 프로그램이 없기떄문에 파일 시스템을 못 읽는다.

3단계 - 파일시스템을 탐색하여 os커널을 찾고 메모리에 적제 한다.

 

UEFI (Unified Extensible Firmware Interface)

- BIOS를 대체할 목적으로 개발됨

- 파일 시스템을 지원하여 boot sector에 의존없이 OS 커널 부팅 가능

 

'Computer Science > OS Concepts' 카테고리의 다른 글

3.2 프로세스 스케줄링  (0) 2020.04.17
3.1 프로세스 개념  (0) 2020.04.17
2.9 운영체제 생성  (0) 2020.04.17
2.8 운영체제 디버깅  (0) 2020.04.17
2.7 운영체제 구조  (0) 2020.04.17

관련글 더보기

댓글 영역