Notions of the NeKernel Primer.
Author: Amlal El Mahrouss (amlal at nekernel dot org)

Abstract:

Designing and implementing Low-Level Systems is one of the most challenging tasks in Software Engineering.
NeKernel was designed to give you a head start. Written in modern C++ -- it also make uses of a new programming language called Nectar.

Requirements:

You will need to install:

        - NeBuild
        - CoreUtils
        - Git
        - MinGW/Clang
    

What is a Microkernel?

Think of it as the layer who has the near-minimum needed in order to have what's considered an 'Operating System'.

These includes, but not limited to:

Expanding the Microkernel -- The 'Hello World' DDK.

You will need to link against:

        - libDDK.dll
    

This first exercise will focus on implementing a simple DDK in C, which prints a simple 'Hello, World!' to NeKernel's console output.

Sources:

#include <ddk/ddk.h>

DDK_EXTERN void simple_kputc(const char ch) {
    char assembled[2] = {0};
    assembled[0]      = ch;

    ke_call_dispatch("ke_put_string", 1, assembled, 1);
}

DDK_EXTERN void hello_ddk(void) {
    const char* message = "Hello, World!\n";
    const char* ptr     = message;

    while (*ptr != 0) {
        simple_kputc(*ptr);
        ptr++;
    }
}
    
One shall use NeBuild to compile the DDK as follows:
nebuild hello_ddk_manifest.{json, toml}
    
Where the manifest files contains the needed metadata to build the DDK driver. Which links against libDDK.dll.

Adding a Microkernel subsystem -- The 'GFXKit'.