gila/docs/API.md
August b3c92486b3
Some checks failed
Continuous Integration / Check (push) Failing after 3m4s
Continuous Integration / Clippy (push) Failing after 1m3s
Experiments with GDT
2026-04-05 12:16:08 -04:00

29 lines
1.1 KiB
Markdown

# 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.
## Initramfs Structure