NeSystem Project Documentation
@book{El_Mahrouss_NeKernel_org_Primer,
author = {El Mahrouss, Amlal},
year = 2026,
title = {{Ne Project System Primer.}},
url = {https://src.nekernel.org}
}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 makes use of a new programming language called "Nectar".
Think of it as the layer who has the near-minimum needed in order to have what's considered an 'Operating System'.
libDDK.dllThis first exercise will focus on implementing a simple DDK in C, which prints a simple 'Hello, World!' to NeKernel's console output.
#include <DriverKit/DriverKit.h>
DDK_EXTERN void simple_kputc(const char ch) {
char assembled[2] = {0};
assembled[0] = ch;
assembled[1] = 0;
ke_call_dispatch("ke_put_string", 2, assembled, 2);
}
DDK_EXTERN void hello_ddk(void) {
const char* message = "Hello, World!\n";
while (*message != 0) {
simple_kputc(*message);
message++;
}
}One shall use NeBuild to compile the DDK as follows:
nebuild hello_ddk_manifest.{json, toml}Where the manifest files contain the needed metadata to build the DDK driver, which links against libDDK.dll.
Adding a new subsystem is straightforward: add your directory 'GFXKit', include your headers, add the directory 'GFX' in 'kernel/src', then include the compilation of the GFX module in the makefiles.
[1] Note:
One should be careful to think about whether your subsystem could be part of an existing one — that would avoid reinventing the wheel.
[2] One can visualize a kernel subsystem as such:
/GfxKit
/GPU.h
/FB.h
/Packet.h/src/Gfx
/GPUPacket.cpp
/FBPacket.cppPracticing and experimenting with your distribution of the Ne System is what comes next after this primer. Please read the documentation available at https://docs.src.nekernel.org as well to learn more.
More pages like this will be made available online soon.