Monolithic kernel vs.
   Microkernel
     Benjamin Roch
        TU Wien
    phibre@gmx.net
ABSTRACT
• The author Benjamin Roch explains the two
  kernel architectures of operating systems: the
  monolithic kernel and the microkernel.
• A comparison of benefits and disadvantages
  of both architectures.
• Their examples where they are implemented.
INTRODUCTION
• The author refers to the fact that kernel is an
  important part of the operating system.
• Operating system itself consists of two parts:
  the kernel space (privileged mode) and the
  user space (unprivileged mode).
• There are two concepts of Kernels: Monolithic
  Kernel and Microkernel.
• In monolithic kernel the author tells us that it
  runs every basic system service in kernel
  space.
• It has three drawbacks, the kernel size, lack of
  extensibility, and bad maintainability.
• Whereas the concept for microkernel was to
  reduce the kernel to basic process
  communication and I/O control, and let the
  other system services reside in user space in
  form of normal processes (as so called
  servers).
• The author also examines the two generations
  of microkernels.
Comparison Between Basic Concepts
    Of The Two Approaches:
• The author Benjamin Roch introduces the
  basic concepts of operating systems, with
  their realizations in the two different
  architectures.
Inter Process Communication:
• The author examines three concepts of inter
  process communication (IPC). First concept is
  signals. It is widely used in UNIX systems.
• Signals are predefined numerical constants, e.g.
  KILL, STOP, etc., which are sent to the user, the
  operating system or another process.
• Second concept for communication is sockets. A
  process binds itself to one socket (or more), and
  “listens” to it i.e. from then on, it can receive
  messages from other processes.
• A system more powerful than sockets are
  message queues. Built as a FIFO queue, a
  message queue stores all incoming messages,
  sent by other processes and sorts them, based
  on their priority.
• Monolithic Kernels uses “signals” and
  “sockets”.
• The microkernel approach uses message
  queues.
Memory management
• The author discusses about the memory management in
  monolithic kernel and first and second generation
  microkernels.
• According to the author Monolithic Kernel implements
  everything needed for memory management in kernel space.
  This includes allocation strategies, virtual memory
  management, and page replacement algorithms, as shown in
  Figure 3.
• According to the author, first generation microkernels
  delegate the memory management to user space, controlling
  just the basic access rights as shown in Figure 4.
• Second generation microkernels have more refined
  strategies, e.g. L4. With L4 every process has got three
  memory management primitives: map, grant and flush.
Security And Stability
• Excluding system processes from kernel space
  is a way to make the system stable. Another
  argument for a true microkernel is its code
  size.
• So it is better to built a small kernel, than a big
  one. That way, stability issues are simpler to
  solve with that approach.
I/O Communication
• I/O communication works through
  interrupts, issued by or sent to the hardware.
  Monolithic kernels (and most of the first
  generation microkernels) run device drivers
  inside the kernel space. Hardware interrupts are
  directly handled by kernel processes.
• The microkernel approach doesn't handle I/O
  communication directly. It only ensures the
  communication. Requests from or to the
  hardware are redirected as messages by the
  microkernel to the servers in user space.
Extensibility And Portability
• Adding new features to a monolithic system
  means recompilation of the whole
  kernel, often including the whole driver
  infrastructure.
• In case of microkernel the services are
  isolated from each other through the message
  system.
Implementations
• The author just gives a short overview
  presenting implementations of monolithic
  kernels, microkernels and hybrids.
• Monolithic Kernel:
- GNU/Linux
• Hybrid Kernel:
- Mach
- Windows NT
• Microkernel:
- QNX (QUICK UNIX)
- L4

• CONCLUSION:
• According to the author L4 and QNX have
  proven that speed is not an argument against
  microkernels anymore.
• They are more easily maintainable than their
  monolithic counterparts. Microkernel systems
  can be easily extended and modified.
REFERENCES
•   [1] Frank Kolnick. The qnx 4 real-time operating system.Jul 2000.

•   [2] Jochen Liedtke. On micro-kernel construction. 15th ACM Symposium on
    Operating System Principles (SOSP), December 1995.

•   [3] Jochen Liedtke. micro-kernels must and can be small. 5th Workshop on Object-
    Orientation in Operating Systems (IWOOOS), October 1996.

•   [4] Jochen Liedtke. Achieved ipc performance (still foundation for extensibility).
    6th Workshop on Hot Topics in Operating Systems (HotOS), May 1997.

•   [5] William Stallings. Operating systems. internals and design principles. 3rd
    (international) edition.1998.

•   [6] Lok Sun Nelson Tam. A comparison of l4 and k42 on powerpc. The university of
    New South Wales, Dec 2003.

Monolithic kernel vs. Microkernel

  • 1.
    Monolithic kernel vs. Microkernel Benjamin Roch TU Wien phibre@gmx.net
  • 2.
    ABSTRACT • The authorBenjamin Roch explains the two kernel architectures of operating systems: the monolithic kernel and the microkernel. • A comparison of benefits and disadvantages of both architectures. • Their examples where they are implemented.
  • 3.
    INTRODUCTION • The authorrefers to the fact that kernel is an important part of the operating system. • Operating system itself consists of two parts: the kernel space (privileged mode) and the user space (unprivileged mode). • There are two concepts of Kernels: Monolithic Kernel and Microkernel.
  • 4.
    • In monolithickernel the author tells us that it runs every basic system service in kernel space.
  • 5.
    • It hasthree drawbacks, the kernel size, lack of extensibility, and bad maintainability. • Whereas the concept for microkernel was to reduce the kernel to basic process communication and I/O control, and let the other system services reside in user space in form of normal processes (as so called servers). • The author also examines the two generations of microkernels.
  • 7.
    Comparison Between BasicConcepts Of The Two Approaches: • The author Benjamin Roch introduces the basic concepts of operating systems, with their realizations in the two different architectures.
  • 8.
    Inter Process Communication: •The author examines three concepts of inter process communication (IPC). First concept is signals. It is widely used in UNIX systems. • Signals are predefined numerical constants, e.g. KILL, STOP, etc., which are sent to the user, the operating system or another process. • Second concept for communication is sockets. A process binds itself to one socket (or more), and “listens” to it i.e. from then on, it can receive messages from other processes.
  • 9.
    • A systemmore powerful than sockets are message queues. Built as a FIFO queue, a message queue stores all incoming messages, sent by other processes and sorts them, based on their priority. • Monolithic Kernels uses “signals” and “sockets”. • The microkernel approach uses message queues.
  • 10.
    Memory management • Theauthor discusses about the memory management in monolithic kernel and first and second generation microkernels. • According to the author Monolithic Kernel implements everything needed for memory management in kernel space. This includes allocation strategies, virtual memory management, and page replacement algorithms, as shown in Figure 3. • According to the author, first generation microkernels delegate the memory management to user space, controlling just the basic access rights as shown in Figure 4. • Second generation microkernels have more refined strategies, e.g. L4. With L4 every process has got three memory management primitives: map, grant and flush.
  • 12.
    Security And Stability •Excluding system processes from kernel space is a way to make the system stable. Another argument for a true microkernel is its code size. • So it is better to built a small kernel, than a big one. That way, stability issues are simpler to solve with that approach.
  • 13.
    I/O Communication • I/Ocommunication works through interrupts, issued by or sent to the hardware. Monolithic kernels (and most of the first generation microkernels) run device drivers inside the kernel space. Hardware interrupts are directly handled by kernel processes. • The microkernel approach doesn't handle I/O communication directly. It only ensures the communication. Requests from or to the hardware are redirected as messages by the microkernel to the servers in user space.
  • 14.
    Extensibility And Portability •Adding new features to a monolithic system means recompilation of the whole kernel, often including the whole driver infrastructure. • In case of microkernel the services are isolated from each other through the message system.
  • 15.
    Implementations • The authorjust gives a short overview presenting implementations of monolithic kernels, microkernels and hybrids. • Monolithic Kernel: - GNU/Linux • Hybrid Kernel: - Mach - Windows NT
  • 16.
    • Microkernel: - QNX(QUICK UNIX) - L4 • CONCLUSION: • According to the author L4 and QNX have proven that speed is not an argument against microkernels anymore. • They are more easily maintainable than their monolithic counterparts. Microkernel systems can be easily extended and modified.
  • 17.
    REFERENCES • [1] Frank Kolnick. The qnx 4 real-time operating system.Jul 2000. • [2] Jochen Liedtke. On micro-kernel construction. 15th ACM Symposium on Operating System Principles (SOSP), December 1995. • [3] Jochen Liedtke. micro-kernels must and can be small. 5th Workshop on Object- Orientation in Operating Systems (IWOOOS), October 1996. • [4] Jochen Liedtke. Achieved ipc performance (still foundation for extensibility). 6th Workshop on Hot Topics in Operating Systems (HotOS), May 1997. • [5] William Stallings. Operating systems. internals and design principles. 3rd (international) edition.1998. • [6] Lok Sun Nelson Tam. A comparison of l4 and k42 on powerpc. The university of New South Wales, Dec 2003.