Microkernel Architecture

What Is a Microkernel Architecture?

A microkernel architecture is an operating system pattern where only basic functionality is provided in the core of the software system. Components, including drivers and applications, are then plugged into the microkernel. These are standalone, independent pieces of code that enhance the core functionality or provide additional specialized features.

The microkernel runs the minimum necessary functions to interface with underlying hardware, including memory management, processor scheduling, and inter-process communication. Applications, drivers, protocol stacks and filesystems run outside the kernel in their address spaces.

Benefits of Microkernel Architecture

A microkernel architecture has a light core with reduced complexity. This means there are few dependencies to consider when adding functionality. This makes extending the operating system easier because all new services are added to the user space without the need to modify the kernel.

The kernel can also be more secure and reliable because most services are running in the user space and therefore are less able to affect the running of the kernel. Compromised or faulty services can be shut down without restarting the kernel. This means less frequent system crashes.

The modular platform also enables components to be replaced, reloaded, or modified without changing the kernel itself. This increased flexibility means various approaches can be taken for software implementation or application programming interfaces (APIs) while retaining the same basic microkernel.

Examples of Microkernel Architecture

Microkernel architectures are popular for specialized and mainstream uses. Examples include:

  • L4 microkernel: L4Linux runs as a service, operating in a paravirtualized mode
  • BlackBerry QNX: one of the first commercially successful microkernel operating systems
  • Symbian: a formerly leading smartphone operating system
  • Mach: the microkernel for Apple MacOS, iOS, iPadOS, tvOS, and watchOS)

Microkernel Architectures for Automotive

A microkernel architecture's lightweight core and modularity make it ideal for automotive applications and electronic control units (ECUs), where security and reliability are mission-critical. A high level of functional safety is precious for Advanced Driver-Assistance Systems (ADAS) and autonomous features. BlackBerry® QNX®, for example, has high security and safety certifications, making it attractive for high-end ECUs. The modularity of a microkernel OS also facilitates emerging automotive over-the-air software update capabilities because features can be updated individually without requiring changes to other modules or alteration of the underlying kernel.

Microkernel Architecture vs. Monolith Architecture

While a microkernel architecture has a light core, a monolith architecture is the opposite. With the latter, many device drivers are included in the kernel. This can reduce system function overhead and improve performance, but at the expense of flexibility, as there will be many dependencies and potential conflicts to consider when creating services and applications. It may be necessary to modify a monolith kernel to enable specific functionality. With more functionality inside a monolith kernel, a service crash will likely take down the whole system.

BlackBerry QNX is trusted across multiple industries to provide the software foundation for safe, secure and reliable systems that get to market faster. Learn about our other tools and services—including a hypervisor, middleware, professional services and supplementary solutions—as well as about our heritage and deep expertise in embedded system software.

BlackBerry QNX offers a broad range of safety-certified and secure software products complemented by world-class professional services to help embedded developers increase reliability, shorten time-to-market, and reduce development cost.

Check Out Our Other Ultimate Guides

Structural Dependency
Information about the UNECE WP.29 regulations, the countries where they apply and how they aim to mitigate the cybersecurity risks posed to passenger vehicles.
Structural Dependency
Covers topics such as embedded systems protection, security exploits and mitigation, and best practices
Structural Dependency
Offers key concepts and information on standards for safe system design
Structural Dependency
Defines autonomous systems and the various levels of autonomy
Read the Guide