커널이란?

운영체제의 핵심 요소로, 응용 프로그램과 하드웨어 수준의 처리 사이의 가교 역할 을 하는 것이다. 그렇다면 운영체제가 바로 커널이 아닌가? 라는 질문을 할 수 있는데, 이것은 커널을 어떻게 구성하느냐에 따라 달라질 수 있다.

커널의 구성 방식에는 일체형 커널과 마이크로 커널이 있다.

일체형 커널과 마이크로 커널의 비교

항목 일체형 커널 마이크로 커널
영문 Monolithic kernel Micro kernel
설명 - 운영체제의 모든 서비스가 커널 내에 포함된 경우
- 이 때엔 커널이 곧 운영체제라고 볼 수 있다.
- 운영체제 요소의 대부분을 커널 외부로 분리한 경우
- 커널 내부에는 핵심적인 부분, 즉 메모리 관리, 멀티태스킹, 프로세스 간 통신 (IPC) 등 최소한의 핵심 요소들만 커널 내에 남긴다.
장점 - 모든 서비스가 커널 내부에 있으므로 커널 내부 요소들이 효율적으로 통신할 수 있음 - 새로운 서비스를 추가해 운영체제 확장이 쉬움 (위험성 적음)
- 유지보수가 용이하고 안정성이 우수함
단점 - 하나의 요소라도 오류가 발생하면 시스템 전체에 장애가 발생할 수 있음.
- 시스템이 복잡해질수록 유지보수가 어려워진다.
- 커널 외부 요소들 사이에는 IPC가 필요하므로, 성능저하가 발생한다.
예시 UNIX, Linux MINIX,

IPC란?

프로세스 간 통신 (Inter-Process-Communication) 으로, 프로세스들 사이에서 데이터를 주고받는 것을 말한다.

Reference

커널 : 운영체제(김진욱, 이인복 저)
마이크로커널 : https://ko.wikipedia.org/wiki/마이크로커널
IPC : https://ko.wikipedia.org/wiki/프로세스 간 통신