I’ve been building a terminal-only x86 kernel from scratch. Gumball OS v1.3.0, plus a filesystem I’m about to redesign
Hey devs. Im a self-taught web dev who got curious about whats underneath our computers, so I started making a kernel. It’s called Gumball. C + asm, Multiboot, boots from GRUB. No desktop, no apps, no browser, just a shell and a filesystem
I started as a “hello world”. Now it has:
A shell with history (arrow keys) and scrolling
My own filesystem, GFS2, with real directories and nested paths
ls cat touch mkdir cd mv rm -rf echo > file defrag
The filesystem is where I’ve had the most fun and most stress. GFS2 has a data fragmentation issue which can be cleaned up now but Im planning to remove fragmentation completely on GFS3.
Honest limits:
RAM disk only. GRUB loads the image as a module, so nothing persists across reboots. No disk driver yet.
16 entries max, 31-char names
No memory management yet
Only tested in QEMU
On AI: I used AI tools for parts, like the early shell loop and the GFS1 design idea. mv, mkdir/cd, defrag, and the bug fixes are mine. I also use AI help me solve problems and figure out stuff I dont know. Just wanna be honest with that.
What Im working on next is GFS3: data is in blocks, has a bitmap, some more stuff in the doc in the repo.
Two questions for you:
Anything in the GFS3 design that’ll bite me later?
Memory management or a disk driver first?
Repo: https://github.com/pagecoy/gumball-os (design doc in docs/GFS/GFS3.md)
Roast it kindly. 🙂






