terminus.kernel

48 modules on bare metal — x86_64 and ARM64, TCP remote access, HTTP, display, USB, NVMe

Architecture

┌─────────────────────────────────────────┐
│            Terminus Manager             │
│  - Hardware ownership                   │
│  - Kernel instance lifecycle            │
│  - Syscall routing per process          │
│  - Hot-swap: old drains, new activates  │
└──────┬──────────────────┬───────────────┘
       │                  │
  ┌────▼─────┐      ┌────▼─────┐
  │ Kernel v1 │      │ Kernel v2 │
  │ (draining) │      │ (active)  │
  └───────────┘      └──────────┘

Kernel Modules

ModulePurposeStatus
serial.fUART COM1 driverworking
gdt.fGlobal Descriptor Tableworking
pmm.fPhysical memory manager (bitmap)working
heap.fKernel heap (free-list)working
idt.fInterrupt Descriptor Tableworking
handlers.fISR dispatch, PIC, timer/keyboardworking
timer.fPIT at 100 Hzworking
tss.fTask State Segmentworking
scheduler.fRound-robin cooperative schedulerworking
preempt.fPreemptive scheduling via timer ISRworking
tfs.fFilesystem (directories, variable-length names)working
virtio_blk.fBlock device (VirtIO + ramdisk fallback)working
virtio_pci.fVirtIO block PCI driverpersistent
manager.fKernel instance registry, hot-swapproven
shell.fInteractive shell (22 commands)working
fcc.fIn-kernel Foundation compilerexec .f files
capability.fCapability table scaffoldnot enforced
namespace.fPer-process namespace scaffoldnot enforced
virtio_net.fVirtIO network card driverworking
net_ip.fARP + IPv4 + network pollingworking
net_tcp.fTCP state machineworking
net_shell.fRemote shell over TCP :7777proven
http.fHTTP server on port 8080working
fb.f / fb_font.fFramebuffer and bitmap fontworking
gui*.fWindow manager, widgets, system monitormouse click dispatch pending
tui*.fText UI framework and system monitoravailable
mouse.fPS/2 mouse driverworking
vmm.fPage table manipulation for MMIOworking
xhci.fUSB 3.0 host controllerNOOP + port scan
nvme.fNVMe controller driverQEMU namespace identified

Boot Sequence

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

Shell Commands

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

For AI Agents

Concise LLM view: llms.txt

Technical architecture: concept.md