컴퓨터 시스템은 크게 3가지의 컴포넌트로 구성된다. 이 세 가지 컴포넌트는 다음과 같다.

  • 하드웨어 : 기본적인 컴퓨팅적 자원을 제공한다. Ex) CPU, 메모리, I/O 장치
  • 운영체제 : 여러가지 어플리케이션과 사용자 간의 하드웨어의 사용을 제어한다. HW와 어플리케이션 프로그램 사이에 중간 다리 역할을 한다.
  • 어플리케이션 프로그램 : 시스템 자원을 사용하여 사용자의 컴퓨팅적인 문제를 해결한다. Ex) 워드 프로세서, 웹 브라우저, DB 시스템, 비디오 게임

컴퓨터를 시작하는 프로세스 : Bootstrap

  1. bootstrap은 컴퓨터 전원을 켜거나 재부팅을 할 때 메모리에 load된다.
  2. bootstrap은 일반적으로 firmware로 알려져 있는 ROM이나 EEPROM에 주로 저장되어있다.
  3. 시스템을 초기화하고 필요한 하드웨어를 확인한다.
  4. OS 커널을 메인 메모리에 올리고 실행한다.

컴퓨터가 실행되는 과정(부트로더 흐름)

      1. 전원을 켜거나 재부팅할 경우 ROM BIOS가 먼저 실행된다. bootstrap은 BIOS의 일부분이다.
      2. BIOS는 HW적으로 오류가 있는지 확인한다 (POST : power on self test라고도 한다).
      3. BIOS가 디스크의 sector 1번인 Master Boot Record를 읽어온다. MBR에 부트로더가 존재한다.
      4. 부트로더의 GPIO 설정, 클록 활성화, RAM 설정, 부팅 루틴 복사 등을 한다.
      5. 부트로더가 UART(universal asynchronous receive and transmit), 타이머, 플래시, 이더넷 등을 초기화한다.
      6. 자동 부팅 메시지를 출력하고 임의의 키를 입력하면 수동 부팅 모드(명령어 모드)로 실행하고 그게 아니면 자동 부팅모드로 실행한다.
      7. Boot loader가 커널이 올라가야 할 메모리의 위치에 이미지를 올리면 1번 프로세스부터 동작하고 OS가 동작한다.

부트로더는 assembler와 C언어로 구성되어 있다. HW와 더 가까운 작업은 assembler가 수행한다.

'운영체제' 카테고리의 다른 글

[OS] 여러 가지 운영체제 구조  (0) 2021.12.30
[OS] 운영체제의 기능과 목적  (0) 2021.12.30

+ Recent posts