serenityos: a graphical unix-like operating system


If you're even slightly interested in systems programming, a Unix afficionado, or simply appreciative of highly motivated, intelligent, and genuinely good people, and aren't already aware of Andreas Kling, you'll most definitely enjoy subscribing to his YouTube channel. Andreas regularly shares screencasts of his impressively productive hacking sessions where you'll find him hacking on Serenity—a Unix-like operatng system that he's built from the ground up, entirely from scratch—or catch his candid and enlightening commute talks where he answers questions submitted by followers while sharing personal insights and experiences from his life as a programmer who has worked at places like Apple, and been part of development teams working on projects like WebKit. Andreas is engaging and refreshingly honest, obviously brilliant but authentic and humble—and principled. There are some lessons that can only be learned by living through them, and the perspective provided by those lived experiences paints a pretty clear picture and enables a keen sense of discernment that Andreas personifies; there's more to learn from his videos than how to improve as a programmer. But if you just want to watch a man hack, there's plenty of that too!

To illustrate the talent and drive behind the project, Serenity just turned one on October 10, 2019, and in those short twelve months, Andreas has built Serenity's own kernel, window server, file system, network stack, IRC client, DOOM port, Serenity Browser with basic CSS support, and numerous applications and utilities such as a sound synthesizer called Piano, and a painting program called PaintBrush. It's a remarkable achievement—incredibly amazing by any standard. And by his own account, Andreas has written 95% or more of the codebase, entirely in C++, and without following any tutorials or guides (not that there really are any for operating system development). And while still in its nascency, Serenity shows a great deal of promise; the stated goals and reasons for its existence comport with many of my own predilections. The Serenity philosophy itself is an amalgamation and extension of other universal precepts that are conducive to correctness and quality such as the Unix philosophy, Goldilocks principle, and Wasatiyyah, inter alia. The desire for no more and no less—but just the right amount; which is a rapidly disappearing position, sadly, in many facets of life, but in the technical space, it's neither chasing minimalism nor embracing the erumpent bloatedness that's engulfed, for example, Linux. And yet it's an acceptance of the times, a desire to incorporate substantive components with proven utility for all users. And that's a worthwhile goal.

The source code for Serenity is available on GitHub, and you can follow Andreas on Twitter for updates. Commits are welcomed from everyone, but you should watch his videos on the topic before contributing—it's a very reasoned and respectable position. His sincere and varied commute talks are highly recommended; it's a joy watching his lambent discussion of myriad topics ranging from code to licenses, huge projects to microkernels, temples, templates, and the hard to the impossible. And if you feel so inclined, you can make a donation to his PayPal, too, if you like.

You can even build Serenity and take it for a spin. Not too bad for a project started by one man twelve months ago in a country cottage somewhere in southern Scandinavia.

Tags: unix
send comments to mark AT jamsek DOT net

Generated by emacs org mode

Copyright © 2023 Mark Jamsek