Fact-checked by Grok 2 weeks ago

Monolithic kernel

A monolithic kernel is an operating system architecture in which the core operating system functions—such as process management, , file systems, device drivers, and networking—execute within a single, unified in kernel mode, forming a large, cohesive program without modular separation between components. This design contrasts with architectures, where only minimal functions run in kernel space and other services operate as user-space processes. The monolithic kernel design originated in the early development of Unix at in the late 1960s and early 1970s, where and implemented a compact, integrated to support multitasking and on minicomputers. This approach became the foundation for many subsequent systems, emphasizing simplicity and efficiency in resource-constrained environments. By the 1990s, the , initiated by in 1991, adopted and popularized a modular variant of the monolithic design, allowing loadable kernel modules for drivers while retaining the core's unified structure. Key characteristics of monolithic kernels include their execution entirely in privileged kernel mode, which enables direct, low-overhead communication between components via function calls rather than inter-process messaging. Prominent examples include traditional Unix variants like BSD and the original . In practice, modern monolithic kernels often incorporate through dynamically loadable components to mitigate some rigidity, balancing integration with extensibility. Monolithic kernels offer significant advantages in performance, as the absence of context switches and between kernel services results in faster execution times compared to more distributed designs. They are also relatively straightforward to implement for systems where low latency is prioritized over . However, these benefits come with notable drawbacks: the large, intertwined is challenging to debug, maintain, and extend, increasing the risk of system-wide failures from a single or . Additionally, poor between components can compromise reliability and , as errors in one may propagate to the entire .

Definition and Characteristics

Definition

A monolithic kernel is an operating system kernel in which all major components, including device drivers, file systems, networking stacks, and system call interfaces, execute in a single, shared address space while running in kernel mode as one cohesive program. This design integrates the entire core functionality into a unified binary, enabling direct procedure calls between components for efficient operation. Kernel mode refers to the processor's privileged execution state, granting full access to resources, units, and handling capabilities, whereas user mode imposes restrictions on applications to prevent unauthorized interactions and protect system integrity. In a monolithic kernel, the absence of separation means all services lack , allowing seamless interaction but exposing the system to risks if any part fails. Unlike architectures such as microkernels, where device drivers and file systems typically run as user-mode processes in isolated address spaces to enhance modularity and fault tolerance, the monolithic approach keeps these services within the kernel's privileged domain for streamlined performance. Many contemporary monolithic kernels incorporate loadable modules to allow dynamic extension of capabilities, such as adding new drivers at runtime.

Key Characteristics

In a monolithic kernel, all core components, including device drivers, file systems, and protocol stacks, execute within a unified in mode. This model enables direct function calls between kernel services, facilitating efficient interactions but also heightening the risk of system-wide crashes if a fault occurs in any component, as there are no barriers. The architecture features tight integration among essential services such as process management, , and handling, with these elements interlinked directly rather than relying on or remote procedure calls. This design eliminates the need for explicit communication protocols between modules, promoting seamless coordination within the . Traditionally, monolithic kernels are compiled as a single executable , where all —encompassing the core and its integrated components—is linked together during the build process. This unified compilation results in a cohesive image that simplifies initial deployment but requires full recompilation for modifications to any part. However, many modern monolithic kernels support loadable kernel modules, which are compiled separately and can be dynamically loaded, allowing extensions to be modified without recompiling the core . Due to the absence of inter-process communication overhead and context switches between components, monolithic kernels achieve high performance in inter-component operations, as all interactions occur within the same via direct procedure calls.

History

Origins

The development of monolithic kernels traces its roots to early operating systems in the , particularly the project, a collaborative effort by , , and to create a comprehensive, multi-user system for the GE-645 computer. Launched in 1965, Multics emphasized advanced features like hierarchical file systems and protected memory, but its complexity arose from ambitious goals for scalability and security on mainframe hardware. ' involvement ended in 1969 due to escalating costs and delays, prompting researchers like to seek a more streamlined alternative that retained useful concepts such as I/O abstractions while discarding excessive modularity. In response, and at initiated the UNIX project around 1969, designing it as a unified structure to prioritize and on resource-limited machines. The initial ran on a using , focusing on a single-process-per-terminal model to fit within tight memory constraints of about 8K words. This approach emphasized efficiency over , allowing the entire system—including file management, process scheduling, and device drivers—to operate as a cohesive whole, which facilitated rapid development and maintenance for research purposes. The motivations stemmed from the era's hardware realities, where like the series offered far less power than Multics' mainframes, necessitating a that avoided overhead from inter-component communication. The first full implementation, UNIX Version 1, became operational in November on the PDP-11/20, marking a pioneering example of a monolithic kernel in a multi-user, interactive environment. This version, documented in the inaugural UNIX Programmer's Manual, integrated core functionalities into a single , enabling efficient handling of text processing and basic utilities on with modest 24K words of . By demonstrating that a powerful operating system could run affordably without the bloat of prior systems, it laid the groundwork for subsequent UNIX variants and influenced design paradigms.

Evolution

In the 1980s, Berkeley Software Distribution (BSD) variants of UNIX advanced the monolithic kernel design by integrating key features directly into the kernel space. The 3BSD release, developed primarily by Bill Joy starting in 1978 and released in 1979, introduced virtual memory management, including page replacement and demand paging, to enhance efficiency on VAX systems while preserving the unified kernel structure. Subsequently, 4.2BSD in 1983 incorporated the TCP/IP networking stack into the kernel, enabling robust internetworking capabilities that became foundational for subsequent UNIX-like systems. The 1990s marked a pivotal open-source shift with the creation of the by , first announced in 1991 as a hobby project for 386/486 PCs. Although initially inspired by Andrew Tanenbaum's operating system for educational purposes, Linux adopted a fully to prioritize performance and simplicity, diverging from MINIX's approach amid debates on kernel design. This design choice facilitated rapid development and widespread adoption, establishing Linux as a dominant monolithic kernel implementation. Entering the 2000s and beyond, monolithic kernels evolved to address emerging demands like and enhanced security without altering their core principles. (SELinux), developed by the , was integrated into the upstream in 2003 via the framework, providing mandatory access controls to mitigate vulnerabilities in the monolithic structure. Similarly, the Kernel-based Virtual Machine (KVM) was merged into the in 2006 for the 2.6.20 release in 2007, enabling hardware-assisted directly within the kernel to support efficient hosting. In response to ongoing criticisms regarding and flexibility, monolithic kernels shifted toward greater through loadable kernel modules, allowing dynamic extension of kernel functionality—such as device drivers—at runtime while retaining the single-address-space model. This approach, exemplified in since its early versions, balanced performance with adaptability, influencing modern implementations like those in the Examples section.

Architecture

Core Design

In a monolithic kernel, the core operating system components—including the process scheduler, memory manager, interrupt handlers, and device drivers—are compiled into a single, unified binary executable that runs entirely in privileged kernel mode. This integration allows direct function calls and shared data structures among these subsystems without the overhead of , fostering for efficient operation. User programs interact with the kernel through a system call interface, where requests trigger a software trap or exception that switches the processor from user mode to kernel mode, invoking the appropriate kernel routine in the unified address space. This mechanism ensures controlled access to privileged operations while maintaining the kernel's monolithic structure. During the boot process, the monolithic kernel is loaded into memory as a single image by the bootloader, after which it sequentially initializes its subsystems—starting with basic hardware setup, followed by memory management, interrupt handling, process scheduling, and device drivers—before spawning the first user process. Error handling in a monolithic kernel occurs within the shared kernel address space, where a fault in one component, such as a buggy , can propagate to others, potentially leading to system-wide instability or crashes unless explicitly contained. Monolithic kernels may support extensions through loadable modules that integrate into the core binary at runtime.

Loadable Modules

Loadable modules in monolithic kernels consist of relocatable code segments, such as device drivers or filesystem implementations, that are dynamically loaded into kernel address space at runtime to extend the core kernel's capabilities without necessitating a full recompilation or reboot. Their primary purpose is to provide modular extensibility, allowing the kernel to support varying hardware or features on demand while maintaining a compact base kernel image. The loading process typically begins in user space using specialized tools that invoke system calls to transfer the module's object code (often in formats like or ) into kernel space, resolve symbol relocations, set parameters, and execute the module's initialization routine. Once loaded, modules register with the kernel through designated APIs and hooks for their functionality, integrating seamlessly into the monolithic structure. While common in Unix-like systems such as (using tools like insmod and ) and (using kldload), support varies; for example, removed loadable kernel module support in 2014 to improve security and reduce . This design facilitates maintenance by supporting hot-swapping of modules, enabling administrators to add or update drivers for new hardware—such as network interfaces or storage devices—without interrupting system operation, thereby minimizing downtime in production environments. Despite these advantages, loadable modules pose significant risks because they execute in the shared ; a bug, such as a or invalid memory access within a module, can propagate to crash the entire and system.

Advantages and Disadvantages

Advantages

Monolithic kernels exhibit high efficiency due to their , where all core components operate within a single , eliminating the need for (IPC) mechanisms required in other architectures. This results in minimal context-switching overhead, as transitions between kernel services involve direct procedure calls rather than , achieving latencies on the order of nanoseconds for inter-component interactions compared to microseconds in IPC-based systems. The unified codebase of a monolithic kernel simplifies by allowing developers to work within a single environment, facilitating easier and optimization without the complexities of distributed component interactions. This cohesive structure reduces the need for managing interfaces across separate spaces, streamlining and enabling more straightforward code modifications. Monolithic kernels optimize resource utilization, particularly for I/O operations and scheduling, by providing direct to resources in a shared , which enhances speed and responsiveness on single-CPU systems. Integrated device drivers and schedulers minimize overhead, allowing for efficient handling of I/O-intensive tasks without additional abstraction layers. Empirical benchmarks demonstrate these benefits, with outperforming -based systems like by factors of 2-6x in throughput for workloads such as pipe operations and system calls. Similarly, early implementations showed up to 5x lower throughput than native monolithic s in AIM benchmarks, though optimized designs like L4 narrowed this gap to within 5%. Loadable modules in systems like further enhance flexibility by allowing dynamic extension of the core without rebuilding the entire .

Disadvantages

One significant drawback of monolithic kernels is their reduced reliability due to the tight integration of all components in a single . A bug in any subsystem, such as a , can propagate and cause a system-wide , often resulting in a that crashes the entire operating system. For instance, faulty drivers linked directly into the kernel can corrupt kernel data structures or trigger unhandled exceptions, halting all processes without isolation to contain the damage. This contrasts with more modular designs where failures are localized, making monolithic kernels particularly vulnerable to extension-related faults, which account for a substantial portion of OS crashes. Scalability poses another challenge, as the monolithic structure encourages accumulation, leading to bloat that complicates development and increases the risk of defects. Over time, kernels like have grown enormously; as of 2025, the Linux kernel source has exceeded 40 million lines of across more than 78,000 files, having doubled in size over the previous due to the inclusion of extensive drivers, filesystems, and networking stacks in kernel space. This expansion, while enabling broad support, results in a larger that is harder to and maintain, exacerbating reliability issues as the scales. From a security perspective, monolithic kernels present a larger attack surface because all privileged components operate in the same protection domain, making isolation difficult and amplifying the impact of exploits. With vast codebases—such as Linux's approximately 40 million lines, predominantly in memory-unsafe languages like C—vulnerabilities are frequent, with over 1,000 reported in recent years, often in drivers that can grant attackers full system control upon compromise. Examples include CVE-2020-12654, where a network protocol flaw allowed remote code execution in kernel mode, underscoring how the unified design hinders compartmentalization and elevates risks compared to architectures with separated components. Maintenance complexity further hinders monolithic kernels, as modifications to core components typically require recompiling and relinking the entire , a time-intensive process that disrupts development workflows. Even with loadable modules mitigating some extensions, changes to foundational elements like the scheduler or manager demand full rebuilds, complicating and updates in large-scale projects. This overhead stems from the intertwined , where a kernel spanning thousands of lines becomes increasingly difficult to manage without risking regressions across unrelated areas.

Comparisons

With Microkernels

Monolithic kernels and microkernels differ fundamentally in their architectural structure. In a monolithic kernel, all operating system services, including device drivers, file systems, and networking stacks, execute within a single, privileged kernel address space, enabling direct function calls between components without the need for inter-process communication (IPC). In contrast, microkernels minimize the kernel's role to basic primitives such as address spaces, threads, and a lightweight IPC mechanism, while running most services—including drivers and servers—in user space as isolated processes that communicate via message passing. This separation in microkernels promotes modularity and explicit interfaces but introduces overhead from context switches and message serialization during IPC. The performance implications of these designs are particularly evident in IPC operations, which are central to communication but largely absent in monolithic kernels. Early microkernels like exhibited significantly higher latency for IPC compared to equivalent operations in monolithic UNIX systems; for instance, in 1997 benchmarks on 133 MHz systems, Mach's user-mode IPC latency measured around 110 μs for certain system calls, while a monolithic achieved similar operations in approximately 1.7 μs through direct in-kernel calls, representing a 10- to 100-fold difference in some benchmarks. Later designs, such as the L4 microkernel, improved this gap substantially, with synchronous IPC latency reduced to about 5 μs, yet still incurring roughly twice the overhead of native monolithic system calls like getpid (3.95 μs in L4Linux versus 1.68 μs in ). Overall macrobenchmarks, such as the AIM suite, show L4-based systems with only a 5% penalty compared to native , but early microkernels like Mach suffered up to 38% degradation due to frequent IPC reliance. Reliability contrasts arise from these structural choices, with microkernels providing superior fault isolation. In monolithic kernels, a fault in a kernel-mode driver, such as a dereference, can corrupt shared kernel memory and crash the entire system. Microkernels mitigate this by executing drivers in user space; for example, in the , a crashing user-space driver affects only its own , allowing the kernel to terminate and restart the faulty component without impacting other services or the core kernel. This isolation has been empirically demonstrated in L4-based systems, where driver failures lead to localized recovery rather than full system reboots, enhancing overall dependability in fault-prone environments. These trade-offs influence deployment scenarios. Monolithic kernels are favored for desktops and servers, where high performance and low-latency access to hardware resources are paramount, as seen in Linux's dominance in these domains due to its efficient in-kernel execution model. Conversely, microkernels excel in embedded and real-time systems requiring stringent safety and isolation guarantees, such as automotive controls or , where fault containment prevents cascading failures; QNX and seL4 microkernels, for instance, are certified for safety-critical applications under standards like and support deterministic real-time behavior through modular, isolated components.

With Hybrid Kernels

Hybrid kernels represent a design approach that blends characteristics of both monolithic and microkernel architectures, executing core operating system services—such as device drivers and file systems—in kernel space for efficiency, while modularizing certain components to run in user space for enhanced isolation and maintainability. Prominent examples include the kernel, which integrates a compact layer with kernel-mode drivers, and Apple's kernel, which combines the microkernel for with BSD subsystems for Unix compatibility and IOKit for object-oriented device management. In comparison to pure monolithic kernels, hybrid designs prioritize the speed of direct kernel-space interactions, akin to monolithic in access and minimal switching, but incorporate microkernel-inspired reliability features like partial service to mitigate single-point failures. For instance, while drivers in kernels like operate in kernel mode to avoid overhead, they benefit from layered abstractions that provide fault containment not typically found in fully monolithic systems. This structure aims to deliver monolithic-level performance—such as low-latency system calls—while improving overall system robustness through selective modularity. Hybrid kernels, however, face trade-offs including inherited monolithic bloat from large kernel-space codebases, which can increase surfaces, alongside the added of managing dual-mode services, potentially complicating and debugging. Despite these, implementations like macOS's achieve performance metrics closely aligned with pure monolithic kernels in benchmarks for tasks like file I/O and process scheduling. Hybrids have seen widespread adoption in commercial operating systems, such as Windows and macOS, due to their effective compromise between raw speed and enhanced stability for diverse enterprise and consumer applications.

Examples

Linux Kernel

The , initiated by in 1991 as a personal project to create a operating system for his PC, exemplifies a fully monolithic kernel design where core components such as process management, memory handling, and device drivers operate in a single for efficient inter-component communication. Its first public announcement occurred on August 25, 1991, via the Usenet group comp.os., with version 0.02 released shortly thereafter on October 5, 1991, comprising about 10,000 lines of code. This architecture has enabled the kernel to evolve into a robust foundation for diverse systems, maintaining its monolithic structure while incorporating loadable kernel modules (LKMs) to extend functionality dynamically without recompiling the entire kernel. A hallmark of the Linux kernel is its vast support for hardware devices, achieved primarily through LKMs, which allow thousands of modules—covering networking, filesystems, and peripherals—to be loaded on demand in major distributions like or , facilitating customization and reducing the base kernel's footprint. As of 2025, versions in the 6.x series, such as 6.15 released in May and 6.17 in September, have begun integrating language components for select drivers and infrastructure, enhancing and reducing bugs in critical paths without compromising the core C-based monolithic design. This selective adoption of , starting meaningfully from 6.1 in 2022 and expanding in subsequent releases, targets high-risk areas like block devices while preserving the kernel's performance-oriented . The kernel's development follows a community-driven model coordinated by Torvalds and thousands of contributors worldwide, with new mainline releases occurring every 9-10 weeks to introduce features and fixes, followed by stable branches that receive bug patches for extended periods—some versions maintained for up to a . This process has managed the kernel's growth, which expanded from roughly 1 million lines of code around 2000 (during the Linux 2.4 era) to over 40 million lines by January 2025, reflecting added complexity from broader hardware support and features while stable releases mitigate bloat through rigorous review and modularization. The kernel's scalability is evident in its widespread adoption, powering over 90% of public cloud servers through distributions optimized for and , as well as serving as the foundation for , which commands approximately 70% of the global market in 2025 and runs on billions of devices. This dominance underscores the monolithic design's ability to handle high-performance workloads, from data centers to systems, with ongoing stable releases ensuring reliability across these environments.

Other Implementations

, released in 1993, represents a prominent variant of the BSD family of operating systems and serves as a direct descendant of the original UNIX codebase developed at the . As a monolithic kernel, integrates core services such as process management, file systems, and networking directly into the kernel space, which contributes to its reputation for and in server environments. This design has enabled to power a significant portion of infrastructure, including web servers and firewalls, due to its efficient handling of high-load scenarios without the overhead of found in more distributed architectures. Sun Microsystems' Solaris, introduced in the late 1980s and evolving through subsequent versions, exemplifies a proprietary monolithic tailored for enterprise computing. The incorporates device drivers, file systems, and networking stacks within a single , promoting high throughput for demanding workloads. A key feature is Solaris Zones, a lightweight technology introduced in Solaris 10 (2005), which allows multiple isolated environments to share the same monolithic without , enhancing resource utilization in data centers. Niche implementations highlight the ongoing relevance of monolithic kernels in specialized settings. Illumos, a 2010 open-source of the project after Oracle's acquisition of Sun, retains the monolithic structure of its predecessor, supporting modular extensions while maintaining a unified for compatibility with legacy UNIX applications. Similarly, , Silicon Graphics' operating system from the 1980s to the early 2000s, employed a monolithic optimized for on architectures, underscoring the design's persistence in graphics and scientific workloads despite the shift to more modern platforms. These systems demonstrate how monolithic kernels continue to underpin reliable, performance-oriented solutions. In emerging domains like the (IoT), lightweight monolithic designs offer potential for resource-constrained devices. Zephyr, an open-source (RTOS) developed since 2016, adopts a monolithic kernel where the kernel and applications are compiled into a single static binary, facilitating minimal footprint and deterministic behavior on microcontrollers without memory management units. Although Zephyr incorporates modular components that can blur lines with hybrid approaches, its core monolithic nature supports efficient execution in battery-powered sensors and embedded networks. This contrasts with Linux's broader dominance in general-purpose computing, where its monolithic kernel has become the for servers and desktops.

References

  1. [1]
    [PDF] Operating System Structure - Carnegie Mellon University
    Nov 15, 2006 · – Monolithic kernel again runs as fast or faster than our microkernel. • So, if monolithic kernel runs as fast, why bother porting to new OS?
  2. [2]
    [PDF] 07-microkernels.pdf - CS@Cornell
    Monolithic kernels. □ Advantages: performance. □ Disadvantages: difficult to debug and maintain. □ Microkernels. □ Advantages: more reliable and secure.
  3. [3]
    The History of UNIX
    Jan 13, 2025 · Windows 10 had (estimated) 50 million lines of code. Modular (though often on a monolithic kernel). Separate windowing system and window ...
  4. [4]
    History of Linux
    Linux, by comparison, used a so-called "monolithic kernel". (Later, loadable device drivers restored some considerable degree of microkernelness. Torvalds had ...
  5. [5]
    What is Unix?
    Unix is a monolithic kernel because it all the functionality is compiled into one big chunk of code, including substantial implementations for networking, file ...
  6. [6]
    Linux - CSE330 Wiki
    Jan 23, 2024 · The Linux kernel uses both monolithic and modular approaches. A monolithic kernel is a single program that contains all the code so any ...
  7. [7]
    CIS 307: Views, Components, and Architectures of Operating Systems
    Monolithic Architecture. The oldest architecture used for operating systems is the Monolithic Kernel. A monolithic kernel can be easy to implement if we are ...
  8. [8]
    [PDF] Chapter 2: Operating-System Structures
    Operating System Concepts – 10th Edition. Chapter 2: Operating-System ... Compare and contrast monolithic, layered, microkernel, modular, and hybrid ...
  9. [9]
    None
    Below is a merged response summarizing the definition and explanation of a monolithic kernel based on Andrew S. Tanenbaum's *Modern Operating Systems* (4th Edition). Since the input contains multiple segments with varying levels of detail and some segments lack explicit definitions, I’ve synthesized the information into a comprehensive summary. Where explicit definitions or details are missing, I’ve inferred based on standard OS literature and Tanenbaum’s work, cross-referencing the provided excerpts. To retain all information densely, I’ll use a combination of narrative text and a table in CSV format for key details across segments.
  10. [10]
    [PDF] Mechanism: Limited Direct Execution - cs.wisc.edu
    In user mode, applications do not have full access to hardware resources. In kernel mode, the OS has access to the full resources of the machine. Special ...
  11. [11]
    [PDF] September 11 3.1 System Calls 3.2 OS organizations - LASS
    In a monolithic kernel, all the systems such as the filesystem management run in an area called the kernel mode. The main problem with this organization is ...
  12. [12]
    [PDF] An Overview of Monolithic and Microkernel Architectures
    May 23, 2024 · In a monolithic kernel, the entire OS runs in a single program in kernel mode, i.e., the kernel services and other OS functions such as device ...
  13. [13]
    Chapter Two -- Operating-System Structures -- Lecture Notes
    OS structures include monolithic, layered, microkernel, modular, and hybrid designs. The kernel is the core, and system calls are requests for OS services.
  14. [14]
    [PDF] CSE 120 Principles of Operating Systems Modules, Interfaces ...
    Sep 27, 2000 · Monolithic kernels have one great feature. ◇. The overhead of inter-module interaction is low. ○. Monolithic kernels have a number of problems.Missing: characteristics | Show results with:characteristics
  15. [15]
    [PDF] The Evolution of the Unix Time-sharing System* - UPenn CIS
    This paper presents a brief history of the early development of the Unix operating ... 'Multics,' the operating system we know today was born. Page 3. - 3 -. The ...
  16. [16]
    The UNIX time-sharing system | Communications of the ACM
    The UNIX time-sharing system. article. Free access. Share on. The UNIX time-sharing system. Authors: Dennis M. Ritchie. Dennis M. Ritchie. Bell Lab, Murray Hill ...
  17. [17]
    Unix Manual, first edition - Nokia
    The first edition of the Unix Programmer's Manual, dated November 3, 1971, is available here in image, Postscript, and PDF format.Missing: details | Show results with:details
  18. [18]
    The Role of BSD in the Development of Unix - Wolfram Schneider
    In 1978, Bill Joy and Ozalp Babaoglu embarked on the development of 3BSD, which aimed to add virtual memory, page replacement and demand paging to Unix, in ...
  19. [19]
    [PDF] FreeBSD Kernel Facilities - Page has been moved
    The FreeBSD kernel is a monolithic kernel. This is both for historic ... The first protocol implemented in 4.2BSD was the. TCP/IP suite (IPv4). • The ...
  20. [20]
    LINUX's History by Linus Torvalds
    Note: The following text was written by Linus on July 31 1992. It is a collection of various artifacts from the period in which Linux first began to take ...
  21. [21]
    Tanenbaum–Torvalds Debates, Part 1 - Matt Rickard
    Apr 24, 2023 · However, there was one philosophical difference: MINIX was a microkernel architecture, and Linux was a monolithic kernel architecture. Their ...
  22. [22]
    What is SELinux? - Red Hat
    Aug 30, 2019 · SELinux was released to the open source community in 2000, and was integrated into the upstream Linux kernel in 2003.Missing: history | Show results with:history
  23. [23]
    Ten years of KVM - LWN.net
    Nov 2, 2016 · The KVM patch set was merged in the upstream kernel in December 2006, and was released as part of the 2.6.20 kernel in February 2007. Background.
  24. [24]
    Why Is Linux a Monolithic Kernel? | Baeldung on Linux
    Mar 18, 2024 · A monolithic kernel's simplicity, with all components contained within a single executable, makes it more accessible to a broader range of users ...
  25. [25]
    [PDF] On Sockets and System Calls Minimizing Context Switches for the ...
    Monolithic systems like Linux implement system calls by means of exceptions or traps which transfer the exe- cution from the application to the kernel of the ...
  26. [26]
    CuriOS: Improving Reliability through Operating System Structure
    Similar to a monolithic kernel, error propagation is possible throughout the library OS and the application. There is no mechanism that provides transparent ...
  27. [27]
    Introduction — The Linux Kernel documentation
    The kernel is responsible of setting up a mapping that creates a virtual address space in which areas of this space are mapped to certain physical memory areas.
  28. [28]
    The Linux Kernel Module Programming Guide
    May 18, 2007 · Modules are pieces of code that can be loaded and unloaded into the kernel upon demand. They extend the functionality of the kernel without the ...
  29. [29]
    init_module(2) - Linux manual page - man7.org
    init_module() loads an ELF image into kernel space, performs any necessary symbol relocations, initializes module parameters to values provided by the caller,<|control11|><|separator|>
  30. [30]
    Loading modules from file descriptors - LWN.net
    Oct 10, 2012 · From a security perspective, loadable modules also have a potential downside: since a module has full access to kernel memory, it can compromise ...
  31. [31]
    What is Monolithic Architecture? - IBM
    Monolithic architecture is a traditional software development model in which a single codebase executes multiple business functions.
  32. [32]
    [PDF] Analysis of Practicality and Performance Evaluation for Monolithic ...
    Comparing the test results of microkernel-based systems to the test results of Linux could be a good source of discussing the practicality of microkernel ...
  33. [33]
    [PDF] A Lightweight Method for Building Reliable Operating Systems ...
    Because drivers are normally linked into the kernel address space, a buggy driver can wipe out kernel tables and bring the system crashing to a halt. We have ...
  34. [34]
    [PDF] Lecture 3: 01/28 3.1 Summary 3.2 Brief History - LASS
    Monolithic architecture is least reliable, since device drivers are part of privileged code, and any bug in a driver causes the whole OS process to crash.
  35. [35]
    [PDF] Improving the Reliability of Commodity Operating Systems
    Despite decades of research in extensible operating system technology, extensions such as device drivers remain a significant cause of system failures.
  36. [36]
    Linux kernel 6.16 lands with 38 million lines of code - The Register
    Jul 29, 2025 · Phoronix estimates that it has 38.4 million lines of code across over 78,000 files. Remember when the central design ethos of UNIX was that it ...
  37. [37]
    Linux kernel source expands beyond 40 million lines
    Jan 26, 2025 · The Linux kernel sources grow pretty fast, at around four hundred thousand lines of code every two months, and consist of not just code but ...Missing: 2020s | Show results with:2020s
  38. [38]
    [PDF] The Performance of µ-Kernel-Based Systems - PDOS-MIT
    First-generation µ-kernels have a reputation for being too slow and lacking sufficient flexibility. To determine whether.
  39. [39]
    The performance of μ-kernel-based systems - ACM Digital Library
    Mitchell, and S. Lewontin. Microkerael modularity with integrated kernel performance. Technical report, OSF Reseamh Institute, Cambridge, MA, April 1994.Missing: latency | Show results with:latency
  40. [40]
    Microkernels and performance - LWN.net
    Jun 28, 2024 · In monolithic systems, dereferencing a bad pointer in a (kernel) driver normally leads to a system crash. So in one case, the disk driver ...
  41. [41]
    [PDF] From L3 to seL4 What Have We Learnt in 20 Years of L4 ...
    We revisit the L4 design papers, and examine the evolution of design and implementation from the original L4 to the latest generation of L4 kernels, especially ...<|separator|>
  42. [42]
    [PDF] CuriOS: Improving Reliability through Operating System Structure
    Microkernel designs compo- nentize the OS into servers managed by a minimal ker- nel. These servers provide functionality such as the file system, networking ...
  43. [43]
    Efficiency of monolithic kernels - linux - Stack Overflow
    Aug 3, 2014 · Monolithic kernels have better performance, hence provide rich and more powerful hardware access. Nowadays they also consist of dynamically loaded and unloaded ...
  44. [44]
    [PDF] SeL4 Whitepaper [pdf]
    We explain what makes seL4 uniquely qualified as the operating-system kernel of choice for security- and safety-critical systems, and generally embedded and ...<|control11|><|separator|>
  45. [45]
    [PDF] Comparison of monolithic, Micro, and Hybrid kernel based ... - IJSDR
    A monolithic kernel is based on Operating System. Monolithic kernels have OS service and kernel in different addresses whereas microkernels have the same ...
  46. [46]
    One Windows Kernel | Microsoft Community Hub
    Oct 17, 2018 · Windows NT is like a microkernel in the sense that it has a core Kernel (KE) that does very little and uses the Executive layer (Ex) to perform ...
  47. [47]
    apple-oss-distributions/xnu - GitHub
    XNU is a hybrid kernel combining the Mach kernel developed at Carnegie Mellon University with components from FreeBSD and a C++ API for writing drivers called ...
  48. [48]
    Research of an architecture of operating system kernel based on ...
    This paper presents a new architecture of operating system kernel. The new architecture discussed is based on modularity concept and consideration of the ...
  49. [49]
    Impact of Hybrid Kernel for the Performance of the Operating System
    Aug 6, 2025 · PDF | Embedded system application is a hot topic in today's date & Linux gradually becomes the most important operating system for embedded.Missing: commercial | Show results with:commercial
  50. [50]
    What is a Kernel? | Definition from TechTarget
    Aug 1, 2024 · Hybrid kernels are used in most commercial OSes. They're similar to microkernels but include additional code in the kernel-space meant to ...
  51. [51]
    Appendix A - The Tanenbaum-Torvalds Debate - O'Reilly
    MINIX may well be designed as a microkernel system, but in the end you still end up with a large monolithic chunk of binary data that gets loaded in as "the OS" ...Missing: influence | Show results with:influence
  52. [52]
    Linux Loadable Kernel Module HOWTO
    Sep 24, 2006 · This is the HOWTO for Linux loadable kernel modules (LKMs). It explains what they are and how to use and create them.
  53. [53]
    Chapter 1. Working with kernel modules | Red Hat Enterprise Linux | 7
    The following procedure describes how to use the modprobe command to find and load a kernel module into the currently running kernel.
  54. [54]
    The Linux 6.15 kernel arrives - and it's big a victory for Rust fans
    May 29, 2025 · Linus Torvalds officially announced the stable release of the Linux kernel 6.15 on May 25, 2025. Its arrival was delayed for a few hours.
  55. [55]
    Linux 6.17 Security: New Kernel Hardening & Mitigation Controls
    Sep 16, 2025 · Linux kernel v6.17 is on the horizon (expected release by the end of September 2025 – Canonical said to release 25.10 with the new kernel in ...
  56. [56]
    Rust Code Is Coming For Linux 6.14 Along With Hitting ... - Phoronix
    For the Linux 6.13 cycle the Rust code was hitting a 'tipping point' with more Rust kernel drivers expected soon.
  57. [57]
    Releases - The Linux Kernel Archives
    May 26, 2025 · New mainline kernels are released every 9-10 weeks. Stable: After each mainline kernel is released, it is considered "stable." Any bug fixes for ...Missing: community | Show results with:community
  58. [58]
    Linux Kernel Release Model - - Kroah
    Feb 5, 2018 · This post describes how the Linux kernel development model works, what a long term supported kernel is, how the kernel developers approach security bugs.Missing: driven | Show results with:driven
  59. [59]
    The Linux Kernel surpasses 40 Million lines of code - Stackscale
    Jan 27, 2025 · The Linux kernel, the backbone of countless open-source operating systems, has achieved an impressive milestone: surpassing 40 million lines of code.Missing: monolithic | Show results with:monolithic
  60. [60]
    Linux Statistics 2025: Desktop, Server, Cloud & Community Trends
    Aug 3, 2025 · The Linux OS market is projected to grow to $18.73 billion by 2029. In 2025, the market size is expected to reach $9.1 billion, showing strong ...Linux Operating System... · Linux in Cloud Computing · Top Linux Distributions by...
  61. [61]
    Linux's remarkable journey from one dev's hobby to 40 million lines ...
    Jul 1, 2025 · Longtime programmer Jonathan Corbet tells the story of Linux and reveals what's made it successful over its three decades.
  62. [62]
    Chapter 1. Introduction | FreeBSD Documentation Portal
    Aug 28, 2025 · This chapter covers various aspects of the FreeBSD Project, such as its history, goals, development model, and so on.<|separator|>
  63. [63]
    Chapter 10. Configuring the FreeBSD Kernel
    Aug 29, 2025 · Why Build a Custom Kernel? Traditionally, FreeBSD used a monolithic kernel. The kernel was one large program, supported a fixed list of ...Why Build a Custom Kernel? · Finding the System Hardware · The Configuration File
  64. [64]
    [PDF] Linux to Solaris Administrators Guide - Oracle
    will require that the device driver has been compiled into the monolithic kernel and initialized at boot. On Solaris 8 and older systems you would use the ...
  65. [65]
    [PDF] the Barrelfish multi- kernel: an interview with Timothy Roscoe
    Farrow: Why should a multikernel work better than a monolithic kernel on manycore systems? In your paper, you do show better performance than a. Linux kernel ...
  66. [66]
    A couple of kernel questions - illumos - Topicbox
    Jul 17, 2024 · Aside from those features, illumos is a UNIX operating system with a monolithic kernel. Drivers are generally kernel modules, though there ...
  67. [67]
    Zephyr Security Overview
    The security architecture is based on a monolithic design where the Zephyr kernel and all applications are compiled into a single static binary. System ...Missing: type | Show results with:type
  68. [68]
    Introduction - Zephyr Project Documentation
    For platforms without MMU/MPU and memory constrained devices, supports combining application-specific code with a custom kernel to create a monolithic image ...Missing: type | Show results with:type