Command Reference
Complete documentation for the bootstrap command format
Command Format
All parameters except drivers are required. The command specifies a complete operating system configuration in a single line.
Kernel Level
The --level flag specifies kernel capability level.
| Level | Capability | Output Size | Use Case |
|---|---|---|---|
| 0 | Boot entry, halt | ~2KB | Bootloader foundation, hardware bring-up |
| 1 | Scheduler, basic HAL | ~15KB | Simple embedded systems, real-time control |
| 2 | Memory management | ~40KB | RTOS, embedded firmware with dynamic allocation |
| 3 | Full drivers, IPC | ~80KB+ | Microkernel, full-featured embedded OS |
Note: L0 kernels cannot have schedulers. L0/L1 kernels cannot have block or network drivers.
Architecture
The --arch flag specifies target architecture.
| Value | Description |
|---|---|
| x86_64 | 64-bit x86 (Intel/AMD) |
| arm64 | 64-bit ARM (AArch64) |
Memory Allocator
The --mem flag specifies allocator type and heap size.
Format: --mem <type>:<size>
| Type | Characteristics | Best For |
|---|---|---|
| bump | Sequential allocation, bulk free only | Temporary allocations, parsing |
| pool | Fixed-size blocks, O(1) alloc/free | Same-size objects |
| slab | Multiple size classes | General-purpose allocation |
| buddy | Power-of-2 coalescing | Variable-size with coalescing |
Size Format
Heap size can be specified with units:
4KB- Kilobytes16MB- Megabytes1GB- Gigabytes
Minimum: 1KB. Maximum: 4GB.
Scheduler
The --sched flag specifies scheduler type and maximum tasks.
Format: --sched <type>:<max_tasks>
| Type | Characteristics |
|---|---|
| round_robin | Fair time-slicing, equal priority |
| priority | Deterministic preemption, 32 priority levels |
Maximum tasks: 1-256. Default tick rate: 100Hz.
Drivers
The --drivers flag specifies device drivers (optional).
Format: --drivers <name>:<config>[,<name>:<config>,...]
| Prefix | Type | Examples |
|---|---|---|
| uart, gpio, spi, i2c | Character | uart:115200, gpio:32 |
| ramdisk, sd, mmc, nvme | Block | ramdisk:1MB |
| eth, wifi, net | Network | eth:1000 |
Restrictions:
- L0/L1 cannot have block drivers
- L0/L1 cannot have network drivers
Entry Point
The --entry flag specifies the kernel entry function name.
Must be a valid C identifier (letters, numbers, underscores; cannot start with number).
Default: kernel_main
Examples
Minimal Bootloader (L0)
Embedded RTOS (L1)
Standard Kernel (L2)
Full Microkernel (L3)
Output
Generation produces a .tar.gz archive containing:
- Header files (
.h) with API declarations - Source files (
.c) with implementations Makefilefor compilationREADME.mdwith build instructionsLICENSEfile
FONK Commitment
Each generated file includes a FONK commitment hash in its header:
This hash proves the code corresponds exactly to your specification. Same specification always produces identical code with the same commitment.
Building
Generated code compiles with standard freestanding toolchains:
x86_64
arm64
Or simply run make in the extracted directory.