deingithub/Folly
'All of it… all of it… madness.'
This is a timesink. To waste your time similarly to how I do, you need The Nix Package Manager and The Zig Programming Language. Technically you only need the latter but the former does a lot of important stuff too and makes the entire thing … comparatively painless. You should use it anyway. I am being really helpful, I know.
Wow I can't decide if that sounds more self-important or soulless. I'll keep it for now, it is apt in either case. The kernel entry point is in src/startup.asm
, which does some setup and hands over to src/main.zig
's kmain()
. It goes downhill from there. Currently Folly can receive interrupts, allocate heap memory in page sized chunks and write to and read from the UART. Planned features include a userspace exclusively implemented in an interpreted language (probably going to be WASM), graphics support for a vaguely Oberon-inspired textual user interface (if that's possible with QEMU currently), and an overall oppressive and impersonal atmosphere.
nix-shell # this installs a metric fuckton of version-locked tools courtesy of nixpkgs
zig build run # this builds the kernel and runs it in qemu