개요

OS Kernel을 매우 다른 단위로 쪼개서, 서로 다른 영역에서 작동시키는 것을 말한다. 커널은 스케쥴링이나 IPC와 같은 최소한의 기능만을 구현하고 User Application, Memory module, Process module, File module과 같은 Kernel functionality를 절단 시킨 구조를 가지고 있다. 하드웨어가 여러 개의 링과 CPU 모드를 제공한다면 마이크로커널은 최고 권한 수준(일반적으로 수퍼바이저 및 커널 모드로 부름)에서 실행되는 유일한 소프트웨어가 된다. 소스 코드 크기 측면에서 마이크로커널은 일반적으로 10,000줄 이하의 코드를 지니는 경향이 있다. 이를테면 미닉스 3의 경우 6,000줄 이하의 코드가 있다. Mach나 L4와 같은 운영체제가 여기에 속한다.

모놀리틱 커널과의 비교

모놀리틱 커널은 마이크로 커널에 비해서 속도의 측면에서 장점이 있다. 예를 들어서 시스템 콜과 같은 경우 모놀리틱 커널은 단 2개의 context switching만을 필요로 하지만, 마이크로 커널은 경우에 따라서 2개 이상, 4개 6개 처럼 다수의 context switching을 요구하는 경우도 있다. 이러한 단점을 줄이기 위해서 Fast transition function, cache optimization과 같은 매우 많은 기법들이 등장하였지만, 아직도 마이크로 커널은 모놀리틱 커널에 비해서 느리다고 생각되어 진다.