Megalithic Kernel: Difference between revisions

From OSDev.wiki
Jump to navigation Jump to search
[unchecked revision][unchecked revision]
Content added Content deleted
(New page: {{Template:Kernel designs}} 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 mic...)
 
m (Added stub tag)
 
(5 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{Stub}}
{{Template:Kernel designs}}
{{Template:Kernel designs}}


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.
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. A more practical megalithic design is to include a virtual machine of some sort within the kernel. The virtual machine would handle the execution of user application code and form a level of software security between the code and the physical machine. User applications would be executed directly by this virtual machine (ie by interpreting compiled bytecode), meaning that any operation requested by a user application would be ultimately handled by the kernel.
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.

[[Category:Kernel]]

Latest revision as of 04:08, 12 December 2022

This page is a stub.
You can help the wiki by accurately adding more contents to it.
Kernel Designs
Models
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.