Boot Path
Multiboot-compliant startup via GRUB with clean assembly handoff into C kernel entry.
x86 Bare-Metal Project
A tiny operating system kernel focused on clarity: Multiboot startup, VGA terminal, PS/2 keyboard input, lock-state LEDs, and release-ready CI.
Warning: Experimental alpha software. Features and behavior may change without notice.
PROJECT SIGMABOOT
Kernel booted successfully.
Keyboard input is ready (IRQ1 interrupt-driven, US scancodes).
Type below:
> hello world
LOCKS CAPS:OFF NUM:ON SCRL:OFF
Multiboot-compliant startup via GRUB with clean assembly handoff into C kernel entry.
Text rendering, color controls, tab/newline/backspace support, and scroll-safe output zone.
IRQ1 interrupt-driven PS/2 input, US scancode translation, lock key behavior, and LED synchronization.
Persistent bottom-row lock-state display with CAPS/NUM/SCRL and live uptime (`T+Xs`).
Use the ISO directly. Do not extract it to boot.
make -C kernel all
make -C kernel iso
qemu-system-i386 -cdrom kernel/build/kernel.iso
qemu-system-i386 -cdrom kernel.iso
For hardware, write kernel.iso directly to USB with Rufus or Balena Etcher.
GitHub Actions builds kernel.bin, kernel.elf, and kernel.iso, then attaches downloadable artifacts to each published release.
Done: VGA terminal, keyboard lock LEDs, lock status bar, and IRQ1 interrupt-driven input (IDT + PIC remap).
Done: CI build artifacts, release asset pipeline, and project website/docs with GitHub Pages deployment.
Done: exception ISRs with a fault diagnostics screen (vector/name/error code/EIP/CS/EFLAGS).
Done: PIT timer IRQ0 and uptime display integrated into the status bar.
Done: tiny command shell (`help`, `clear`, `version`, `locks`, `uptime`).
Done: Multiboot memory map viewer command (`memmap`) for boot-time physical layout visibility.
Done: early physical memory manager groundwork with bitmap frame tracking and `pmm` stats.
Done: heap allocator groundwork (`kmalloc`/`kfree`) backed by PMM frames with `heap` stats.
Done: dynamic shell command buffer migrated to heap-backed allocation with growth and history.
Next: migrate additional kernel buffers/subsystems to heap-backed allocations.