모놀리틱 커널과 마이크로 커널

 커널의 구조와 구현에 대한 구조와 설계에 대한 철학등에 따라 구분하는 이름인데
 현대에 와서는 필요에 따라 상대의 특징을 흡수하는 등 그 경계가 허물어 지고 있습니다.

 
 모놀리틱 커널은 대표적으로 유닉스 계열의 OS 들이 있는데
 특히 리눅스의 경우 상업적으로도 성공한 현재의 주류 OS라고 할수 있죠

 그에 비해 마이크로 커널의 경우 
 마이크로 커널의 경우 과거시점과 달리 새로운 구현과 기능 향상으로 상당한 위치에 와 있습니다.

 대표적인 몇가지 마이크로 커널을 소개하자면 

 - Pistachio
 - Fiasco
 - P4
 - OKL4
 
 네가지 정도 외에 몇가지가 더 있지만 활발하지는 않은것 같습니다.

 먼저 OKL4 의 경우 현재 호주에 위치한 기업에서 상용서비스를 하고 있고
 P4 의 경우도 라이선스가 상용이라고 합니다.
 Fiasco 의 경우 GPL 과 상용 라이선스 두가로 되어 있어 접근성이 좋습니다.
 마지막으로 Pistachio 의 경우 BSD 라이선스이고 이구아나 프로젝트라는 이름으로
 오픈되어 있지만 주로 퀄컴의 칩에 사용되어 다른 아키텍쳐에 대한 지원이 조금 아쉽네요

 그중에서 Fiasco 의 경우 쉽게 접할수 있는 freescale 의 i.MX6 칩에 대한 지원이 되고 있습니다.
 특히 저렴한 sabrelite 보드도 지원하고 있습니다.
 (지원한다고 해서 바로 돌려 볼 수 있을 거란 기대는 하면 안됩니다^^)

 어쨋든 마이크로 커널의 경우 구조적으로 마이크로 커널위에 호스트를 서비스 할수 있는
 두개의 주요 root-task 와 root-pager 가 있고 그 기반으로 리눅스든 펌웨어든 동작을 하게 됩니다.
 이러한 서비스를 리눅스에서는 xen 이나 kvm 과 같은 가상화를 통해서 구현하고 있죠.

 여러분이 많이 쓰시던 스마트폰 이전의 폴더폰에는 적지 않게 Pistachio 의 iguana 가 올라가 있었다는
 사실을 아신다면 의외일 것입니다.

 시간이 된다면 Fiasco를 한번 사용해 보도록 하죠.