커널의 구조는 다음과 같이 나뉩니다.
OS 내부에서 모든 것을 해결할 수 있기 때문에 성능적 측면에서 Microkernel의 우위를 점합니다.
e.g. S1에서 S2를 필요로 할 때 내부 함수 call로 직접 호출이 가능합니다.
Address spaces, Interprocess communication(IPC), Basic scheduling을 제외한 것들은 커널 외부로 빠집니다. 때문에, 커널의 크기가 작다는 장점이 있습니다.
e.g. S1에서 S2를 필요로 할 때 커널을 경유해야하기 때문에 성능측면에서 Monolithic kernel보다 떨어집니다.
UNIX, LINUX, Windows는 범용 OS,
iOS, Android는 모바일,
Realtime OS는 임베디드 시스템에 사용됩니다.여기서 Realtime OS은 어떤 event가 발생하면 일정 시간 내에 반응해야 하는 OS로, 이러한 이유 때문에 성능적 측면에서 우위를 점하는 monolithic kernel을 사용합니다.
처음 컴퓨터가 개발될 때에는 하드웨어와 운영체제를 동시에 개발했습니다.
즉, 하드웨어와 운영체제를 맞춰서 개발을 하다보니 하드웨어가 바뀔 때마다 그에 맞춰 운영체제를 다시 개발해야했고, 운영체제의 수정에도 어려움이 있었습니다.
이 단점을 극복하기 위해 Bell Lab에서 Unix 운영체제를 개발했습니다.(1971)
80년대 중반에 들어서, PC가 일반화(상용화)되면서 PC에도 Unix 운영체제를 적용하고자 하는 노력 또한 하게 되었습니다.(BSD)
UNIX kernel의 모습입니다. systemcall interface의 층이 따로 만들어져 있습니다.
PC에서 사용하고자 만든 UNIX계열의 OS입니다.(IBM PC)
오픈소스로 제공되어, 누구든 코드를 볼 수 있고 수정이 가능합니다.
다른 운영체제들과 다르게 microkernel의 구조 또한 가지고 있습니다.
winndows에서 User-mode proceeses로 제공되는 System support processes와 Service processes는 원래 OS의 기능입니다.