Megalithic Kernel

From OSDev Wiki
Jump to navigation Jump to search

This article is a stub! This page or section is a stub. You can help the wiki by accurately contributing to it.

Kernel Designs
Other Concepts

A Megalithic Kernel, or Megakernel, is a kernel designed to only run binaries in kernel mode. This is in contrast to a usual monolithic kernel or microkernel, which are typically designed to handle multiple user-mode processes. Megalithic kernels are simpler in design. They often need not support task switching for processes or virtual memory, and often are just a single monolithic binary, simplifying linking. Because Megalithic kernels are limited in the range of binaries that they can run, they are often not as satisfying as other types of kernels to develop except for very specific purposes.

Megalithic kernels may employ a variety of strategies to get around the perceived limitations of never running a user process. Some megalithic kernels may compile all application code into the kernel, but this is generally not convenient. The kernel would need to be recompiled any time a new application is installed, removed, or otherwise altered.