WIPIVERSE

마이크로커널

마이크로커널(microkernel)은 컴퓨터 과학에서 운영체제가 제공해야 하는 메커니즘을 최소한으로 축소한 초소형 커널 구조를 의미한다. 이는 기존의 모놀리식 커널(monolithic kernel)이 대부분의 시스템 기능을 커널 공간에서 처리하는 것과 달리, 커널에는 필수 기능만 남기고 나머지 운영체제 서비스들은 사용자 공간(user space)의 독립된 서버 프로세스로 분리하여 실행하는 설계 철학에 기반한다.

마이크로커널이 제공하는 최소한의 핵심 기능으로는 낮은 수준의 주소 공간 관리, 스레드(thread) 관리, 프로세스 간 통신(IPC, Inter-Process Communication)이 포함된다. 하드웨어가 여러 개의 보호 링(ring)과 CPU 모드를 지원하는 환경에서, 마이크로커널은 최고 권한 수준(커널 모드 또는 수퍼바이저 모드)에서 실행되는 유일한 소프트웨어이며, 그 외의 모든 서비스(파일 시스템, 네트워킹, 장치 드라이버 등)는 사용자 모드에서 서버 프로세스로 동작한다. 소스 코드 크기 측면에서 마이크로커널은 일반적으로 10,000줄 이하의 코드로 구성되며, 예를 들어 미닉스 3(MINIX 3)의 경우 약 6,000줄 이하의 코드로 이루어져 있다.

마이크로커널의 주요 장점으로는 높은 안정성과 보안성을 꼽을 수 있다. 각 서비스가 독립된 사용자 공간 프로세스로 분리되어 있기 때문에, 특정 서비스에 오류가 발생하더라도 커널 전체나 다른 서비스에 영향을 주지 않아 시스템이 중단되지 않는다. 또한 모듈성이 뛰어나 유지보수와 확장이 용이하며, 이식성도 높아 다양한 하드웨어 플랫폼에 적용하기 쉽다. 단점으로는 서비스 간 통신이 IPC를 통해 이루어지므로, 모놀리식 커널에 비해 컨텍스트 스위칭과 메시지 전달 과정에서 성능 저하가 발생할 수 있다는 점이 지적된다.

마이크로커널 개념은 1980년대 컴퓨터 시스템의 변화에 대응하여 기존 모놀리식 커널의 복잡성 문제를 해결하기 위해 개발되었다. 당시 새로운 장치 드라이버, 프로토콜 스택, 파일 시스템 등이 지속적으로 추가되면서 커널 코드 관리가 어려워졌고, 이에 대한 대안으로 마이크로커널 아키텍처가 제안되었다. 대표적인 마이크로커널 기반 운영체제로는 카네기멜론 대학교에서 개발된 Mach, QNX 소프트웨어 시스템의 QNX, 앤드루 타넨바움(Andrew S. Tanenbaum)이 교육용으로 개발한 MINIX, 그리고 L4 마이크로커널 계열 등이 있다. 현대의 많은 운영체제들은 순수한 마이크로커널보다는 마이크로커널의 장점을 일부 채택한 하이브리드 커널(hybrid kernel) 구조를 사용하여 성능과 안정성 간의 균형을 추구하고 있다.

둘러보기

더 찾아볼 만한 주제

    전체 문서 보기