From Wikipedia, the free encyclopedia
OS that runs entirely in kernel-mode
A
monolithic kernel
is an
operating system
architecture
with the entire operating system running in
kernel space
. The monolithic model differs from other architectures such as the
microkernel
[1]
[2]
in that it alone defines a high-level virtual interface over
computer hardware
. A set of primitives or
system calls
implement all operating system services such as
process management
,
concurrency
, and
memory management
.
Device drivers can be added to the kernel as
modules
.
Monolithic architecture kernel examples:
Unix
(including
Linux
),
MS-DOS
,
Windows 9x
.
Loadable modules
[
edit
]
Modular operating systems such as
OS-9
and most modern monolithic operating systems such as
OpenVMS
,
Linux
,
BSD
,
SunOS
,
AIX
, and
MULTICS
can dynamically load (and unload) executable modules at runtime.
This modularity of the operating system is at the binary (image) level and not at the architecture level. Modular monolithic operating systems are not to be confused with the architectural level of modularity inherent in
server-client
operating systems (and its derivatives sometimes marketed as
hybrid kernel
) which use microkernels and servers (not to be mistaken for modules or daemons).
Practically speaking, dynamically loading modules is simply a more flexible way of handling the operating system image at runtime?as opposed to rebooting with a different operating system image. The modules allow easy extension of the operating systems' capabilities as required.
[3]
Dynamically loadable modules incur a small overhead when compared to building the module into the operating system image.
However, in some cases, loading modules dynamically (as-needed) helps to keep the amount of code running in
kernel space
to a minimum; for example, to minimize operating system footprint for embedded devices or those with limited hardware resources. Namely, an unloaded module need not be stored in scarce
random access memory
.
See also
[
edit
]
References
[
edit
]