Frost64 — Devlog 4
July 27, 2026
(ACTUAL TIME: 2HRS, 12MINS)
PMM is in. Physical memory manager. I can hand out pages now. It feels weirdly powerful for something so boring and confusing.
Limine gives you a memory map. Usable, reserved, ACPI reclaim, whatever. I walk it, find the usable regions, shove them into a bitmap. One bit per page. 0 = free, 1 = used. 128KB of bitmap for 4GB of RAM. Not efficient but it works. pmm_alloc() finds a 0, flips it, returns the address. pmm_free() flips it back. Done.
Took longer than it should have. Off-by-one in the bitmap index, allocated the same page twice, page fault. Fixed it. Classic.
PIT and keyboard work. I can type while the timer ticks. Multitasking is still far but at least the pieces are there.
Next: paging. Four-level page tables. Higher half kernel. The thing I’ve been dreading since devlog 1.
On Using AI Here
Since AI is a tool now, I’m using it. But vibe coding is wrong and I’m keeping AI work under 30%. So far it’s only cleanup, file fixes, and commentary (because I forget what a certain part does). I check every change. I don’t let it break the rules.
The PMM was different. I wrote one first. Asked Kimi if it was good. It was pure garbage apparently. I’m not familiar with x64 dev, this is all new, and I’m learning while coding. So I let AI rebuild the PMM properly while I studied what it did. I understand it now. It is mine. But I needed the help.
Comments 0
No comments yet. Be the first!
Sign in to join the conversation.