ls docs/

Docs

These pages describe KoraOS as it is today. They live in the kernel repository next to the code, and this site fetches them at build time, so what you read here is what is on the main branch.

  1. Developer Guide

    This guide captures the current build and run workflow for KoraOS. It focuses on the LLVM/Clang toolchain, the CMake-based build system, and how to exercise the kernel under QEMU…

  2. Writing a Userland Program

    This describes how to write, build, and run a userland program for KoraOS as it is today: there is no on-device compiler and no libc. Programs are cross-compiled on the host into…

  3. How Userland Works

    This explains what actually happens when KoraOS runs a program: how a binary goes from a file on the filesystem to executing code, where it lives in memory, how several programs…

  4. System Calls

    KoraOS has a small, KoraOS-private syscall ABI. The calls are shaped like their POSIX namesakes to ease a future libc shim, but the numbering is our own.

  5. Filesystem

    KoraOS supports FAT32 reads, writes and namespace operations through EL0 syscalls and file utilities. The kernel uses it to find and load userland programs: the kernel boots…

  6. Secondary cores

    KoraOS brings up every core of the machine (up to four) and runs programs on all of them. Device interrupts and the Circle USB stack stay on core 0 for good (see locking.md).

  7. Locking

    KoraOS follows Linux 2.0: one big kernel lock (BKL) serializes everything tasks do inside the kernel, and a few small spinlocks protect the data that interrupt handlers share…

  8. Repository Guidelines

    The bare-metal kernel lives under src/, mixing C (kernel.c, gpio.c, memory_access.c) with short assembly stubs (boot.S, mm.S, utils.S). Shared interfaces are in include/ with…

Where it is going

Project direction lives in the manifesto. The docs here only describe what exists.

What works today

The status page lists every feature and whether it is done, in progress or only planned.

Spot a mistake?

Each page links to its source file on GitHub. Fix it there, or open an issue.