BoredOS: Three years of building an OS from scratch (And loving every minute)

boreddevnl1 pts0 comments

BoredOS: Three years of building an OS from scratch (And loving every minute of it) | boreddevnlTable of ContentsWhat it actually does<br>What i got wrong (and learned from)<br>The people who made it real.<br>Where it&rsquo;s going.

My name is Christiaan, and somewhere in late 2023 I followed a terrible tutorial on how to boot with GRUB and print text to the screen. That was a mistake. A wonderful, consuming, life-ruining mistake.<br>I got hooked immediately. Not because the tutorial was good (it wasn&rsquo;t), but because something clicked when I saw those first characters appear on a screen running code I had written, on a machine that didn&rsquo;t know it was supposed to do anything at all. I started poking at things I didn&rsquo;t understand. I made some genuinely awful decisions. I shipped jank I&rsquo;m still slightly embarrassed about. And I couldn&rsquo;t stop.<br>Flash forward three years: BoredOS has grown from that boot stub into a real UNIX-like operating system, over 380,000 lines of code, 12 contributors, 3 maintainers, nearly 200 GitHub stars, and 24 forks. It&rsquo;s had more name changes than I care to admit.<br>What it actually does#<br>BoredOS is a GP (General Purpose) operating system, and was always intended as such. It boots on real hardware (of course), drops you into a TTY using the Bored Shell (bsh) It has support for PS/2 inputs, framebuffer/VGA video, pcspk audio, IDE, AHCI, Networking, etc etc. Point is, it&rsquo;s a lot. In BoredOS i&rsquo;m working on getting the syscalls as minimal as possible and using the VFS as much as i can. This VFS is of course, very UNIX like: /dev for devices, /proc for processes etc. Bog standard. Some recent additions to the kernel are: shm (Shared memory) and PTY&rsquo;s (Pseudo terminals.)<br>What i got wrong (and learned from)#<br>No OS journey is perfect, of course. Neither was mine. For some godforsaken reason, a few years ago, i decided to write all applications as header files, literally just C header files and have them directly into the kernel.. Really, what was i even thinking. Luckily this is no longer the case. BoredOS since recent actually grabs the whole userland (custom libc, coreutils, netutils etc.) from other repo&rsquo;s and puts these inside of external/. Once i actually got my userspace working years ago, i was using syscalls for just about everything. Even to interface with specific devices.. This now luckily all goes through the VFS and the only syscall left for a device is for the pcspk.. That&rsquo;s still on my list.. So yeah, it&rsquo;s not perfect. And there&rsquo;s no reason for it to be.<br>The people who made it real.#<br>I didn&rsquo;t expect anyone else to care about this, though I made some TikToks here and there showing off my OS, just to see what would happen. And then, out of nowhere, contributors started showing up. I still remember the surprise of seeing that first PR from a stranger - Someone who had just found the project and actually wanted to help it grow. That made me genuinely happy in a way I didn&rsquo;t expect. First came Lucas (Lluciocc), a French guy who made some amazing PRs and is now a maintainer. Then the contributors just kept pouring in. Now sitting at 12 contributors and 3 maintainers. Me, Lluciocc, and Mellurboo. I&rsquo;m so grateful to all of these amazing people.<br>Where it&rsquo;s going.#<br>BoredOS started with goals that were, honestly, all over the place. That&rsquo;s still very true - and i&rsquo;ve made peace with it. Passion projects don&rsquo;t need a roadmap. They simply need dedication and love.<br>If any of this sounds interesting, the repo is Available on GitHub. Contributions are welcome, questions and suggestions even more so. (Especially if it&rsquo;s pointing out the jank i need to fix.)

rsquo boredos from made years actually

Related Articles