48 modules on bare metal — x86_64 and ARM64, TCP remote access, HTTP, display, USB, NVMe
┌─────────────────────────────────────────┐
│ Terminus Manager │
│ - Hardware ownership │
│ - Kernel instance lifecycle │
│ - Syscall routing per process │
│ - Hot-swap: old drains, new activates │
└──────┬──────────────────┬───────────────┘
│ │
┌────▼─────┐ ┌────▼─────┐
│ Kernel v1 │ │ Kernel v2 │
│ (draining) │ │ (active) │
└───────────┘ └──────────┘
| Module | Purpose | Status |
|---|---|---|
serial.f | UART COM1 driver | working |
gdt.f | Global Descriptor Table | working |
pmm.f | Physical memory manager (bitmap) | working |
heap.f | Kernel heap (free-list) | working |
idt.f | Interrupt Descriptor Table | working |
handlers.f | ISR dispatch, PIC, timer/keyboard | working |
timer.f | PIT at 100 Hz | working |
tss.f | Task State Segment | working |
scheduler.f | Round-robin cooperative scheduler | working |
preempt.f | Preemptive scheduling via timer ISR | working |
tfs.f | Filesystem (directories, variable-length names) | working |
virtio_blk.f | Block device (VirtIO + ramdisk fallback) | working |
virtio_pci.f | VirtIO block PCI driver | persistent |
manager.f | Kernel instance registry, hot-swap | proven |
shell.f | Interactive shell (22 commands) | working |
fcc.f | In-kernel Foundation compiler | exec .f files |
capability.f | Capability table scaffold | not enforced |
namespace.f | Per-process namespace scaffold | not enforced |
virtio_net.f | VirtIO network card driver | working |
net_ip.f | ARP + IPv4 + network polling | working |
net_tcp.f | TCP state machine | working |
net_shell.f | Remote shell over TCP :7777 | proven |
http.f | HTTP server on port 8080 | working |
fb.f / fb_font.f | Framebuffer and bitmap font | working |
gui*.f | Window manager, widgets, system monitor | mouse click dispatch pending |
tui*.f | Text UI framework and system monitor | available |
mouse.f | PS/2 mouse driver | working |
vmm.f | Page table manipulation for MMIO | working |
xhci.f | USB 3.0 host controller | NOOP + port scan |
nvme.f | NVMe controller driver | QEMU namespace identified |
Power On → BIOS/UEFI → Limine bootloader → start.s → kmain()
→ serial → GDT → PMM → heap → IDT → interrupts → timer
→ TSS → scheduler → Manager → hot-swap demo
→ initrd → block device → TFS mount → networking if present
→ USB/NVMe/display probes → preempt → serial shell
→ net shell + HTTP only when TCP initialized
The serial shell is always available. When VirtIO-net initializes, Terminus also starts a TCP shell on port 7777 and an HTTP server on port 8080, forwarded by QEMU to host port 8889.
terminus> help
ls, cat, write, append, replace, rm, mkdir
exec, spawn, calc, run
recv, send
deploy, drain, ps, mem, status, uptime
clear, halt
Concise LLM view: llms.txt
Technical architecture: concept.md