컴퓨터 과학(CS)/운영체제

컴퓨터 동작 원리: BIOS와 부트 로더

Bentist 2022. 1. 13. 10:22

참고: 운영체제(KOCW 양희재 교수님)

 

컴퓨터의 메모리 계층 구조를 공부하기 전에 컴퓨터가 동작하는 원리를 먼저 이해해야 속이 편한다.

https://bentist.tistory.com/62

 

컴퓨터 구조와 메모리 계층 구조(Memory hierarchy)

참고: 위키피디아, https://www.samsungsemiconstory.com 메인보드 컴퓨터 내에서 기본 회로와 부품들을 담고 있는 가장 기본적이고 물리적인 하드웨어이다. 마더보드(mother board) 또는 주기판이라고도 한

bentist.tistory.com

 

1. 컴퓨터가 처음에 켜지면?

컴퓨터가 켜지자마자 메인보드에 내장된 부품인 ROM을 자동으로 읽어서 해야 할 일들을 하나씩 수행한다. 그래서 가장 먼저 ROM에 기본으로 설치되어 있는 BIOS를 읽어들인다. BIOS운영 체제 중 가장 기본적인 소프트웨어이자 컴퓨터의 입출력을 처리하는 펌웨어로 메인보드에 필수로 내장되어 있다.

  • 펌웨어(펌 소프트웨어): 변경할 필요가 없는 소프트웨어를 ROM에 내장하여 하드웨어를 제어하는 프로그램

메인보드 제조사의 BIOS 초기 화면

1.2. BIOS: POST, Boot Loader

BIOS부팅 과정 중 컴퓨터에 연결된 키보드, , 디스크 드라이브 등의 하드웨어가 올바로 작동하는지 각종 테스트나 초기화를 하는 POST(Power On Self Test)를 진행한다. BIOSPOST를 성공적으로 마치면 하드디스크에 저장된 운영체제를 메인 메모리에 적재하는 Boot Loader를 실행시킨다. CPU가 곧바로 읽어들여야 하기 때문에 Boot Loader는 처음부터 Main Memory에 상주해있다. 부트 로더를 잘못 건드리면 OS가 실행이 되지 않기 때문에 건드리지 못하게 Memory 안에서도 ROM(Read Only Memory)라는 영역에 할당되어 있다.

Boot Loader와 달리 운영체제는 하드디스크에 저장되어 있기 때문에 누군가가 메모리로 로드를 해줘야 한다. 그래서 초기에는 스토리지(HDD, SSD)에 OS 프로그램이 있다가 Boot Loader에 의해 OS(window or Linux)가 메모리에 올라가게 된다. 이제 메모리에 올라간 OS 프로그램을 CPU가 읽어들이면서 OS를 실행하고 부팅 과정을 마치게 된다.

 

  • 부팅: PC가 켜진 후에 운영체제를 메인 메모리(DRAM)에 적재하는 일련의 과정

 

1.3. 프로그램 실행 원리: CPU, 메모리

CPU프로그램(명령어의 집합)을 메인 메모리(DRAM)에서만 가져와 처리할 수 있기 때문에 프로그램을 실행하려면 반드시 프로그램이 메모리에 할당되어 있어야 한다. 보조기억장치에 있던 운영체제는 ROM에 있는 부트 로더메모리에 적재해주었지만, 다른 응용 프로그램(게임, 워드 등)들은 어떻게 메인 메모리에 적재할 수 있는 걸까?

 

바로 운영체제의 커널이 그 역할을 해준다. 커널은 💡전원이 켜져 있는 동안에는 메인 메모리에 계속 상주하면서 시스템 자원을 관리한다. 커널응용 프로그램이나 데이터를 메인 메모리에 적재하는 것을 로드(Load)라고 하며 그 과정을 로딩이라고 한다. 프로그램이 메모리에 적재되면 비로소 CPU는 메모리에 있는 프로그램 명령어들을 읽어와 실행을 한다.