커널이란?
운영체제의 핵심 요소로, 응용 프로그램과 하드웨어 수준의 처리 사이의 가교 역할 을 하는 것이다. 그렇다면 운영체제가 바로 커널이 아닌가? 라는 질문을 할 수 있는데, 이것은 커널을 어떻게 구성하느냐에 따라 달라질 수 있다.
커널의 구성 방식에는 일체형 커널과 마이크로 커널이 있다.
일체형 커널과 마이크로 커널의 비교
항목 | 일체형 커널 | 마이크로 커널 |
---|---|---|
영문 | 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/프로세스 간 통신