1.1 KiB
Application Programming Interface
Overview
The Gila microkernel has a very limited API surface, but several components
developed alongside it expose additional functionality- such as libgila and
Userboot, which are treated as extensions of the kernel.
The libgila Library
The libgila library is shared between the kernel and any binaries built for
it, serving to abstract the syscall API and any structures or protocols that
pass the kernel-mode boundary. It provides the official kernel API, and its
version number is incremented independent of the kernel's.
Userboot
Userboot is an early-boot program which is launched as the first unprivileged process by Gila. The kernel will pass several pieces of data to it, such as the addresses of device tree blobs, framebuffers, and ACPI tables. These addresses will not necessarily be mapped to memory. What the kernel will map is the page range containing the initramfs, which Userboot is responsible for decompressing and parsing. If the initramfs's structure & manifest file do not match the specification denoted here, Userboot will fail to complete the boot process.