Skip to content

deingithub/Folly

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The Folly of Cass

A RV64G kernel implemented in Zig

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.

Executive Summary

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.

Hacking

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

About

"All of it… all of it… madness."

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published