Kernel Components

The kernel is split into many components, reaching from standalone modules such as linked lists to tightly connected modules like scheduling and events. The modularity of the kernel should allow for the replacement of existing components and provide a structure to add new features.