2011年3月29日 星期二

Monolithic kernel and Microkernel

          Linux 屬於Monolithic , 而NT / XP 之類則屬於MicroKernel, 兩者的差別比較:

         Monolithic Kernel:
              implemented entirely as a single process running in a single address space. Then kernel can invoke functions directly, as a user-space application might.

        Microkernel:
               the functionality of the kernel is broken into separated processes, usually called servers which are running in privileged execution mode. (other servers that don't need privileged execution mode are running under user space). So it's not possible for direct invoking function between servers, and instead, microkernels communicate via message passing.

The separation of the various servers prevents a failure in one server from bringing down another.

(from Linux.Kernel.Development.3rd.Edition -Robert Love)

         至於兩者好壞,各有說法,可參考重新審視微核心法則, 其中強調Microkernel 最大的特色是" 可靠性 ",而Linux 是monolithic kernel ,但它也引用了Microkernel Modular 設計的概念,可以動態的載入不同的modules.

沒有留言:

張貼留言