마이크로커널 (Microkernel)은 운영 체제의 커널 구조 중 하나로, 최소한의 기능만을 커널 공간에 두고 나머지 기능들은 사용자 공간에서 서버 형태로 구현하는 방식이다. 이러한 설계는 커널의 크기를 줄이고 모듈성을 높여, 시스템의 안정성, 유연성, 확장성을 향상시키는 것을 목표로 한다.
특징
- 최소 기능: 마이크로커널은 프로세스 간 통신 (IPC), 메모리 관리, CPU 스케줄링 등 가장 핵심적인 기능만을 제공한다.
- 사용자 공간 서비스: 파일 시스템, 네트워크 스택, 장치 드라이버 등의 운영 체제 서비스는 사용자 공간에서 별도의 프로세스 (서버) 형태로 실행된다.
- IPC 기반 통신: 커널 공간과 사용자 공간의 프로세스 간 통신은 IPC 메커니즘을 통해 이루어진다. 이는 커널의 역할을 중재자로 제한하고, 서비스 간의 직접적인 접근을 차단한다.
- 모듈성: 기능들이 독립적인 모듈 형태로 구현되므로, 새로운 기능을 추가하거나 기존 기능을 수정하기 용이하다.
- 안정성: 사용자 공간의 서비스에 오류가 발생하더라도 커널 자체에는 영향을 미치지 않아 시스템 전체의 안정성을 높일 수 있다.
장단점
장점:
- 높은 안정성: 사용자 공간에서 발생하는 오류가 커널에 영향을 미치지 않아 시스템 크래시의 위험을 줄인다.
- 유연성 및 확장성: 새로운 기능 추가나 수정이 용이하며, 다양한 환경에 적응하기 쉽다.
- 보안성: 커널 공간의 코드 크기가 작아 보안 취약점 발생 가능성이 낮다.
단점:
- 성능 저하: 사용자 공간과 커널 공간 간의 빈번한 전환 및 IPC 오버헤드로 인해 성능이 저하될 수 있다.
- 복잡한 설계: 시스템 전체의 구조가 복잡해지고, 디버깅이 어려워질 수 있다.
예시
마이크로커널 기반 운영 체제의 예시로는 QNX, MINIX 3, seL4 등이 있다. 과거에는 Mach 커널도 마이크로커널로 분류되었으나, 현재는 하이브리드 커널로 분류되는 경향이 있다.
관련 개념
- 모놀리식 커널 (Monolithic Kernel): 운영 체제의 모든 기능을 커널 공간에 통합하는 방식.
- 하이브리드 커널 (Hybrid Kernel): 모놀리식 커널과 마이크로커널의 장점을 혼합한 형태. 일부 기능은 커널 공간에, 일부 기능은 사용자 공간에 구현한다.