The document compares monolithic and microkernel operating system architectures. A monolithic kernel runs all system services in kernel space, while a microkernel reduces the kernel to basic process communication and I/O control, running other services like memory management in user space as servers. Microkernels have advantages in extensibility, portability and stability due to smaller kernel size, while monolithic kernels have advantages in performance due to running more in kernel space. Examples of each type of kernel are given.
2. 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.
3. 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.
4. • In monolithic kernel the author tells us that it
runs every basic system service in kernel
space.
5. • 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.
6.
7. 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.
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 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.
10. 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.
11.
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/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.
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 author just 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.