개요

모든 OS의 기능은 하나의 kernel에 모여 있다. 장점은 퍼포먼스가 좋다는 것이지만, 단점은 조그만한 실수도 커널 전체에 영향을 줄 수 있다는 것이다. 따라서 유지와 관리가 힘들다는 단점이 있다. 예시로는 Windows, BSD, Linux와 같은 것이 있다.

기능

모놀리식 커널 방식은 보다 근대적인 설계 방법으로 여겨지는 마이크로 커널 방식의 OS에 비해, 운영 체제의 기능의 거의 모든 것이 단일 메모리 공간에서 행해지고, 동일한 프로세스를 처리할 때 사용되는 문맥 교환이나 프로세스 간 통신 등에 의한 과부하는 상대적으로 적어서, 실질적인 성능 면에서 유리하다는 주장이 있다. 실제로 프로세서의 동작 클럭이 수MHz에서 수십MHz 정도이던 시절, 문맥교환이 남발되는 등으로 인해 발생하는 실행 비용 문제가 심각했다.

1980년대에 데뷔한 상용 유닉스는 그 대부분이 모놀리식 커널 방식을 채용하고 있다.

그러나 프로세서의 동작 클럭은 20세기 말에서 21세기 초에 이르기까지 장족의 진보를 이루어 처리 능력이 몇 배 향상했다. 이렇게 실행 환경이 진보하면서 L4 프로젝트에서 프로세스 간 통신의 튜닝 등을 통한 마이크로 커널 구현 시의 고속화 기법이 진전되고, 또 필요에 따라서 마이크로 커널적인 구조를 기반으로 하면서 일부 성능이 요구되는 하부조직만 커널 공간에 추가한다든지, 모놀리식 커널을 기반으로 하면서도 유연성이나 신뢰성이 요구되는 부분에 마이크로 커널적인 설계 방법을 도입하는 등, 보다 현실적인 하이브리드 커널로 부를 수 있는 설계 방법도 등장하였다. 이로써 모놀리식 커널의 성능의 원리 상의 우위성, 양자의 엄밀한 구별은 모호해졌다.

2005년 기준으로, 순수한 모놀리식 커널 방식으로 개발하는 경우 이점이 적다는 의견이 있다. 그러나 동일한 기능을 포함했을 경우 그 원리 상, 실행 시의 (컴퓨터 메모리 상의) OS 커널 추적 비중을 상대적으로 줄이는 비선점형(non-preemptive) 제약을 부가하면, 서비스를 추가할 때에 고려해야 할 일이 줄어 들어, 개발이 용이해지는 것 등을 이점으로 들 수 있다.

한편, 모놀리식 커널에 여러 기능을 중도에 추가하여 덩치가 커지게 되면 운영 체제의 기능을 동적으로 바꾸거나 갱신하거나 하는 것이(마이크로 커널과 비교했을 경우에) 어렵게 되는 문제가 발생할 가능성이 높다.

연구 개발의 세계에서는 커널의 기능을 최소한으로 하는 마이크로 커널이 주류가 된 1990년대 당초, 모놀리식 커널을 시대착오라고 생각되기도 했다. 그러나 구현 수준의 차이가 작동 상의 치명적인 설계 문제는 아니며, 현재는 필요한 기능을 필요한 성능 수준으로만 제공할 수 있으면 문제가 없다고 결론되었다.

윈도 NT는 처음부터 마이크로 커널 방식으로 구현을 모색하고 있었지만, 과부하를 줄이기 위해서 NT 4.0에서 윈도 하부 조직과 그래픽스 장치 드라이버가 커널 공간에서 직접 보이는 것처럼 수정되었다. 윈도 2000 이후부터는 하드웨어 관리 기능 중 일부를 마이크로 커널 직할 모듈인 외부 모듈에서 커널 제어부 본체에 의한 제어 방식으로 전환하여, 순수 마이크로 커널로부터 벗어난 상황이다. NT 4.0에서는 800킬로바이트 미만이었던 NTOSKRNL(윈도우 NT 계열의 커널 시스템)은 윈도 XP에서 2메가바이트에 이르기까지 비대해졌다(단, 윈도 비스타는 동작의 안정성이나 시스템 전체의 견고함을 고려하여 일부 특성은 그대로 유지되었다). 마이크로 커널의 구조적 특성은 여전히 남아 있으므로 마이크로 커널과 모놀리식 커널을 절충한 하이브리드 커널이 구현되어 있다.

또, 마하에서 파생된 OS X도 BSD 하부 조직이나 파일 시스템, 네트워크 등을 커널 공간에 통합하고 있어, 순수 마이크로 커널에서는 멀어진 상황이다. 윈도와 같이, 마이크로 커널과 모놀리식 커널 양쪽 모두의 이점을 살린 설계이다.