sdk_reference

Userland SDK Reference

Overview and entry point for BoredOS userland development.


BoredOS provides a compact userland SDK for building .elf applications. This page is the high-level map; detailed API references now live in dedicated pages.

SDK Structure

Primary headers are in external/libc/include/.

  • stdlib.h, string.h, stdio.h, unistd.h: core libc surface
  • syscall.h: raw syscall wrappers and command constants
  • math.h: freestanding math helpers
  • sys/ioctl.h: device-specific I/O control operations (like framebuffer parameters, TTY window sizes, and TTY mode settings)
  • sys/kd.h: console graphics mode definitions (KDSETMODE, KD_GRAPHICS, KD_TEXT)

Detailed References

  • libc Reference: current libc headers and implemented APIs
  • Syscalls: syscall numbers, FS/SYSTEM command IDs, and wrappers
  • Raw Graphics Guide: raw framebuffer (/dev/fb0) drawing, ioctls, mmap, and TTY recovery
  • Native TCC: Native C compilation directly on BoredOS
  • Nova Protocol: Compositor wire format protocols and event messaging.
  • Nova Toolkit (NTK): Native C object-based widget library for graphical GUI software.

Typical Include Set

#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <unistd.h>
#include <syscall.h>
#include <sys/ioctl.h>

For Direct Framebuffer (Graphics) apps:

#include <sys/ioctl.h>
#include <sys/kd.h>

For raw Nova compositor clients:

#include <novaproto.h>

For NTK GUI applications:

#include <ntk.h>

Build and Packaging

  • Add app source under the appropriate external repository source directory (for example, external/coreutils/src/, external/nova/src/, or a new external/<repo>/src/).
  • Ensure it is included in the userland build rules/targets.
  • Build from repo root with make.
  • Built binaries are copied into initrd under /bin by the top-level Makefile.