Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Monolithic kernel
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|OS that runs entirely in kernel-mode}} {{Use dmy dates|date=September 2022}} [[File:OS-structure2.svg|thumb|right|Structure of monolithic kernel, [[microkernel]] and [[hybrid kernel]]-based operating systems|580px]] A '''monolithic kernel''' is an [[operating system]] [[software architecture|architecture]] with the entire operating system running in [[kernel space]]. The monolithic model differs from other architectures such as the [[microkernel]]<ref>{{cite web |title=Modular system programming in Minix3 |url=http://www.usenix.org/publications/login/2006-04/openpdfs/herder.pdf}}</ref><ref>{{cite web |title=Server-Client, or layered structure |url=http://www.gridbus.org/~raj/microkernel/chap2.pdf |publisher=The Design of PARAS Microkernel |access-date=15 July 2009 |archive-url=https://web.archive.org/web/20100717085530/http://www.gridbus.org/~raj/microkernel/chap2.pdf |archive-date=17 July 2010 |url-status=dead }}</ref> in that it alone defines a high-level virtual interface over [[computer hardware]]. A set of primitives or [[system call]]s implement all operating system services such as [[Process (computing)|process management]], [[Concurrency (computer science)|concurrency]], and [[memory management]]. Device drivers can be added to the kernel as [[loadable kernel module]]s. ==Examples== *Most [[BSD]] kernels **[[FreeBSD]] **[[OpenBSD]] **[[NetBSD]] *[[Linux kernel]] **[[Android (operating system)|Android]] *Other [[Unix]]/[[Unix-like]] kernels **[[AIX]] **[[Oracle Solaris]] *[[MS-DOS]] **[[Windows 9x]] *[[OpenVMS]] ==Loadable modules== Modular operating systems such as [[OS-9]] and most modern monolithic-kernel operating systems such as [[OpenVMS]], [[Linux kernel|Linux]], [[FreeBSD]], [[NetBSD]], [[DragonFly BSD]], [[Oracle Solaris|Solaris]], and [[AIX]] can dynamically load (and unload) executable [[loadable kernel module|kernel 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 [[microkernel|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.<ref>{{cite web |title=Kernel Definition |url=http://www.linfo.org/kernel.html}}</ref> 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== *[[Exokernel]] *[[Hybrid kernel]] *[[Kernel (operating system)]] *[[Microkernel]] *[[Nanokernel]] *[[Tanenbaum–Torvalds debate]] == References == {{Reflist}} {{-}} {{Operating system}} [[Category:Monolithic kernels]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:-
(
edit
)
Template:Cite web
(
edit
)
Template:Clear
(
edit
)
Template:Operating system
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Use dmy dates
(
edit
)