Search
Duplicate
🖼️

마이크로커널 : Microkernel

Category
S/W 엔지니어
Tags
마이크로커널
Microkernel
Monolithic Kernel
Created time
2007/12/11

마이크로커널(microkernel)의 정의

커널, 즉 모듈의 기능과 OS의 확장을 위한 기반은 core로만 남아야 한다는 설계 철학

마이크로커널의 특징

마이크로 커널 아키텍처의 핵심은 (주소 공간 관리, 스래드 관리, IPC 등의) 가장 핵심적인 OS 기능만을 (커널 모드에서 동작하는) core에 담고 그 외 나머지는 사용자 모드로 넘긴다.
서비스라던가 덜 중요한 OS의 기능(device driver, file system, virtual memory manager, windowing system, security service 등)은 서버 프로세스로 구현하되, 이들간 통신은 core를 매개로 하는 메시지 전달(message passing)을 통해 peer 기반에서 이룬다.
(monolithic 커널과 같은) 기존의 계층적 방식(layered approach)은 수직적 바 방식(vertical bar approach)으로 변경되는데, 이는 계층적 방식이 모듈화를 이루고 있음에도 불구하고 한 계층의 변경이 인접한 타 계층의 변경을 야기하기 때문이다.
core에 어떤 기능이 포함되어야 한다는 정해진 규칙은 없다. 일반적으로 저수준 메모리 관리, IPC, I/O와 인터럽트 관리 기능이 core에 포함된다.

monolithic kernel과 microkernel의 구조적 비교

좌측은 monolithic kernel, 우측은 microkernel
monolithic kernel에서는 시스템 콜을 통해 OS의 기능에 접근하는 반면 microkernel에서는 peer 기반 하의 IPC를 통해 이루어지며 user mode에서 동작하는 service간 통신 역시 IPC를 통해 이루어진다.

마이크로커널의 장점

단일 인터페이스(Uniform Interface) : 커널 수준과 사용자 수준의 서비스를 구분하지 않으며, 모든 서비스는 메시지 전달을 통해 이룬다.
확장성(Extensiblity): 새로운 서비스 추가를 가능하게 한다.
유연성(Flexiblity): 새로운 기능 추가 및 기존 기능의 제거가 용이하다.
이식용이성(Protability): 새로운 프로세서로의 시스템 이주에서 필요한 변경은 오직 코어에서만 일어난다
신뢰성(Reliability): 모듈적 설계 및 작은 코어커널은 더 엄격하게 테스트될 가능성이 있다.
분산 시스템 지원: target machine에 대한 구체적 정보 없이도 메시지 전달이 가능하다.
개체지향 OS: 각 콤포넌트는 명확히 정의되고 상호 연결 가능한 인터페이스를 가진 개체(object)이다.

References

Operating Systems: Internals and Design Principles, 5/E by William Stallings