Welcome to Thornrose
Hi, I'm Mocha! Welcome to my little web page about my Operating System called Thornrose (or
alternatively, Penrose).
Look ma! No Linux! This webpage is being served by the operating system it’s about. Running on a custom
kernel written in Rust & varying amounts of inline x86. There is no Nginx or Apache here; the minimal webserver
this
is using is called Ashflower, and it's custom (alongside literally all tech used to display this page, excluding
cloudflare.).
Oh also, the webserver used to serve this runs a few syscalls to fill in information, it's a bit scuffed, so if
you know me and something broke, please dm me to tell me I suck at coding.
Enjoy your read!
Kernel Thornrose x86_64
System Uptime {{UPTIME}}s
Active Processes {{PROC_COUNT}}
Filesystem {{FILE_COUNT}}
files
Server PID {{PID}}
Memory 4MB Heap
So here is where I yap a bunch! I first want to say I love OS dev so much.
It’s probably the most fun I’ve ever had programming.
It provides a ton of extremely unique challenges (especially on x86 lol)
And I love how fulfilling working on and testing things feels.
Ive gotten a few people to start helping me work on userspace applications,
and it's so cool seeing stuff just work, even if it's a little scuffed sometimes.
Ive had a few people ask me if the code will be public, and probably not!
I plan on giving it to a few people for specific cases, but I am sort of
enjoying my little corner of development and lack of external influence.
If you for some odd reason come across this without having met me before
and have questions, my discord is the only way I can be contacted, at
"bunnyhaver".
Anyways, more about the OS itself. The OS is named Thornrose after a few
things, one being the Penrose-512 from Signalis, the other being a reference to
my partner, though the way it's a reference is personal.
Thornrose uses a hybrid kernel architecture. Verified drivers and programs live
in Ring 0 for speed and boot depedent stuff. And other failure prone stuff
lives in userspace.
Let me rapidfire a few features the OSdev nerds will sniff for.
- Dynamic multicore
- Proper compositor
- Userspace Desktop Environment (Swappable!)
- An IPC stack
- Plenty of syscalls (Over 35!)
- Proper process isolation and VMM
- UDP and TCP (If you couldnt tell)
- Memory management and leak detection
- An extremely streamlined userspace workflow
- A userspace gui lib
- A custom shell
- PID based process management