컴퓨터 시스템은 크게 3가지의 컴포넌트로 구성된다. 이 세 가지 컴포넌트는 다음과 같다.
- 하드웨어 : 기본적인 컴퓨팅적 자원을 제공한다. Ex) CPU, 메모리, I/O 장치
- 운영체제 : 여러가지 어플리케이션과 사용자 간의 하드웨어의 사용을 제어한다. HW와 어플리케이션 프로그램 사이에 중간 다리 역할을 한다.
- 어플리케이션 프로그램 : 시스템 자원을 사용하여 사용자의 컴퓨팅적인 문제를 해결한다. Ex) 워드 프로세서, 웹 브라우저, DB 시스템, 비디오 게임
컴퓨터를 시작하는 프로세스 : Bootstrap
- bootstrap은 컴퓨터 전원을 켜거나 재부팅을 할 때 메모리에 load된다.
- bootstrap은 일반적으로 firmware로 알려져 있는 ROM이나 EEPROM에 주로 저장되어있다.
- 시스템을 초기화하고 필요한 하드웨어를 확인한다.
- OS 커널을 메인 메모리에 올리고 실행한다.
컴퓨터가 실행되는 과정(부트로더 흐름)
- 전원을 켜거나 재부팅할 경우 ROM BIOS가 먼저 실행된다. bootstrap은 BIOS의 일부분이다.
- BIOS는 HW적으로 오류가 있는지 확인한다 (POST : power on self test라고도 한다).
- BIOS가 디스크의 sector 1번인 Master Boot Record를 읽어온다. MBR에 부트로더가 존재한다.
- 부트로더의 GPIO 설정, 클록 활성화, RAM 설정, 부팅 루틴 복사 등을 한다.
- 부트로더가 UART(universal asynchronous receive and transmit), 타이머, 플래시, 이더넷 등을 초기화한다.
- 자동 부팅 메시지를 출력하고 임의의 키를 입력하면 수동 부팅 모드(명령어 모드)로 실행하고 그게 아니면 자동 부팅모드로 실행한다.
- Boot loader가 커널이 올라가야 할 메모리의 위치에 이미지를 올리면 1번 프로세스부터 동작하고 OS가 동작한다.
부트로더는 assembler와 C언어로 구성되어 있다. HW와 더 가까운 작업은 assembler가 수행한다.
'운영체제' 카테고리의 다른 글
[OS] 여러 가지 운영체제 구조 (0) | 2021.12.30 |
---|---|
[OS] 운영체제의 기능과 목적 (0) | 2021.12.30 |