Nucleus Micro-Kernel

The Micro-Kernel underpins the entire Nucleus kernel. It fulfils many of the duties of a traditional micro-kernel, but allows for the other components of the operating system to run on top of it in kernel-mode. It mostly deals with abstracting the specifics of the architecture, to allow the other sub-systems to perform their jobs in a platform-independent way. Every architecture has its own version of this module, called kernel.arch, where arch is the name of the architecture (e.g. x86_64). All source code can be found in the architecture specific (e.g.) kernel.x86_64/ directory.

The kernel exports a primary public header file called include/nucleus/kernel.h, which contains structures, macros and functions for dealing with interrupts, the Global Descriptor Table, and some common kernel utilities. Also included in the kernel's duties are low-level paging and frame allocation, as well as context switching. The Memory Manager will call down into the kernel when it wants to perform a low-level operation concerning one of the two.