1. 운영체제의 구조
- 운영체제는 커널과 utility로 구성되어 있다.
1) Kernel
= Nucleus, Supervisor Program, Resident Program, Control Pprogram
- 운영체제의 자주 사용되는 기능들은 대부분 커널에 들어 있다.
- 어플리케이션을 위한 기능을 지원하며, 프로세스, 리소스 관리 기능을 주로 지원한다.
- 컴퓨터 시스템이 부팅된 후 메모리 안에 로딩되어 상주하는 영역
2) Utility
= Non-resident program, Service Program
- 사용자와의 interaction을 담당하는 영역
- UI 기능을 비롯해서, Service 기능을 지원한다.
- 컴퓨터 시스템이 부팅되어도 디스크에 남아 있을 뿐, 메모리에 상주하지 않는다.
- Utility 프로그램이 필요한 때에만 메모리에 들어가고, 끝나면 다시 나온다.
=> 핵심 기능인 kernel만 메모리에 상주하는 방식.
2. 부팅
1) 부팅
- 운영체제의 커널 영역을 디스크에서 찾아서 메모리로 이동, 로드하는 것을 의미한다.
2) 부팅으로 발생하는 일
(1) CPU Register 초기화
- CPU의 레지스터 값을 모두 0으로 초기화한다
(2) Device Controller 초기화
- 마우스 등 디바이스 컨트롤러를 0으로 초기화한다.
(3) 메모리 컨텐츠 초기화
- 주기억장치 내부, 커널 외의 사용자 메모리에 이상한 값이 올라와있지 않도록 초기화한다.
3) 부스트랩 로더(부스트랩 프로그램)
- 이렇게 부팅을 시키는 프로그램을 부스트랩 프로그램(부스트랩 로더)라고 한다.
- 부스트랩 로더는 ROM에 Firmware의 형태로 저장되어 있다.
4) 부팅의 과정
(1) 전원이 켜지면, ROM의 Firmware가 실행되면서 하드디스크 저장장치의 부스트랩 코드를 메모리에 올려서 실행한다.
- 이 코드는 하드디스크의 첫 번째 블록에 위치한다.
(2) 부스트랩 코드가 실행되고, OS 커널을 찾아서 메모리에 올려 실행함으로써 '부팅'이 이루어진다.
- 즉 부스트랩 프로그램이 부팅을 진행하는 것이며, 부팅은 부스트랩 프로그램을 통해 실행된다.