커널
- 운영체제의 주요 구성 요소이며 컴퓨터 하드웨어와 프로세스를 잇는 핵심 인터페이스이다.
- 전원이 켜짐과 동시에 메모리 위에 올라간다.
- 운영체제가 하드웨어에 있는 자원에 접근할 수 있게 한다.
커널의 핵심 기능
- CPU제어(스케쥴링)
- 프로세서 관리
- 프로세스 관리
- 메모리 관리
- 파일 시스템 관리
- 디바이스 제어
- 네트워크 관리
단일형 구조 커널
- 커널의 핵심 기능을 구현하는 모듈을 구분없이 하나로 구성하여 운영체제를 구현하는 방식
- 커널 내부에서 서비스들이 서로 시스템 자원을 공유하며 효율적으로 관리할 수 있게 한다.
- OS서비스들을 시스템 콜 형태로 사용할 수 있게 한다.
- 초기의 커널은 단일모듈로 구성되어 유지관리가 어려웠지만 최신의 커널은 여러개의 모듈로 구성되어 유지관리가 쉬워졌다.
- 버그나 오류 발생시 상호 의존성이 높아 처리가 까다롭고 구현이 어렵다.
- 성능이 좋다.
ex) 유닉스, BSD, 리눅스, 솔라리스, . . .
계층형 구조 커널
- 기능별로 모듈을 계층화하고 계층 간 통신을 통해 운영체제를 구현하는 방식이다.
- 단일형 구조보다 버그나 오류를 쉽게 처리할 수 있고 디버깅이 쉽다.
- 하나의 계층에 문제가 생기면 주변 계층도 동작하지 않을 수 있다.
- 운영체제가 커지고 복잡해질수록 많은 계층들이 발생하게 되어 커널의 크기가 커지고 하드웨어 용량이 늘어난다.
마이크로 구조 커널
- 프로세스 관리, 메모리 관리, IPC 관리 등 기본적인 기능만 제공하고 다른 부분들은 사용자 영역에 맡기는 운영체제 구현 방식이다.
- 즉, 커널 모드가 아닌 유저 모드에서 처리하는 커널 구조이다.
- 프로세스가 각각의 서버 영역에서 수행되어 하나의 서비스가 오작동 하여도 시스템에 문제가 생기지 않는다.
- 하나의 커널로 다수의 운영체제를 동시에 수행시킬 수 있다.
- 이식성이 좋다.
- 잦은 통신이 필요하기 때문에 성능이 저하 될 수 있다.
혼합형 커널
- 성능 향상을 위해 추가적인 코드를 커널 공간에 넣은 것이다.
- 순수 마이크로커널과 비슷하여 수정 마이크로커널이라고도 한다.
나노 커널
- 모든 커널 코드의 양이 매우 작은 커널이다.
- 실질적으로 모든 서비스를 책임진다.