Devlog 6 — Sept 3, 2026
It’s been a while. My last devlog dropped right after I got back from SF (Outpost), and life immediately piled on, school, work, and a backlog of stuff at home that needed attention first. I’m back in the saddle now, juggling classes and kernel work again.
The bulk of this session wrapped up last night around 3 AM, so I skipped the write-up like my lazy a$$ always does and then and crashed instead. Here’s what shipped:
LAPIC & APIC Driver
Brought up a proper Local APIC and I/O APIC driver. For anyone unfamiliar: this is the hardware interrupt controller on modern x86 systems. It handles inter-processor interrupts (IPIs), timer ticks, and routing external IRQs to the right CPU core. Getting this right is a prerequisite for anything resembling real multiprocessing or precise timing. Including the base for future drivers.
A Real Shell
Finally moved past the “type a command and hope” phase. There’s now a proper shell with argument parsing and a few built-in commands. It’s still early, but it’s no longer a glorified echo loop that has zero stability.
Custom Bootloader
Yes, I’m writing my own. No, I’m not using Limine.
I know Limine is the standard recommendation for hobbyist kernels, and it’s a solid project don’t get me wrong, but I don’t like outsourcing the boot path. The bootloader is the first code that runs on the machine. It’s part of the OS, not a dependency. If I’m building this thing from scratch, I’m building all of it from scratch. Call it stubbornness, call it masochism, either way, I’m doing this from SCRATCH
Current status: the bootloader itself is functional. The handoff to the kernel is where things are still rough as sometimes it’s unstable.
No Screenshots This Time
It doesn’t boot to a usable state yet. The bootloader loads, but the kernel handoff is still being debugged. Once that’s solid, the next devlog will cover the M0.5 milestone I’ve been building toward.
More soon.
Comments 0
No comments yet. Be the first!
Sign in to join the conversation.