There is no practical application... It's just a pet project I like toying around with because it's so completely different from normal application development. I'm by no means a kernel developer and probably made more than one wrong design decision. Firedrake is never ever going to be something that can be used as an alternative OS (or just a s a functional kernel for that matter), but it's fun working on this.
And it did start completely from scratch, apart from the bootloader (for which I use GRUB), everything is written by and from scratch. I got some inspiration on how to design some of the parts from various other kernel projects (NetBSD, Dragonfly BSD and Darwin), but there is no code from other projects (except of the ELF hashing function... I probably go to hell for copying it and putting an MIT license header on-top of it. Well, it's probably going to be jail instead of hell tongue ).

About learning... well, it's a mix of trial and error, google, the Intel manuals and digging through other kernels. But it's mostly trial and error, my first kernel project from two years ago (https://github.com/JustSid/NANOS) was heavily influenced by the fact that I had no fucking idea what I was doing there. In retrospect it's surprising that this thing worked, and I'm pretty sure that I'm going to say this about Firedrake in a year.


Shitlord by trade and passion. Graphics programmer at Laminar Research.
I write blog posts at feresignum.com