I have spent some words extolling the values of vintage or historical computing, waxing a bit philosophical about how much can be learned by studying old hardware and understanding how past engineers creatively architected their ways around limitations of the time.

But of course nostalgia is also part of the charm of old tech. Watching the blinking lights of technology from my childhood is a delight. And running software that is 30 or 40 years old can be not only fun but also somehow comforting. From time-to-time I’ve been known to boot up images of the laptop from my student years just to have fun with some foundational tools that I lost touch with. Anyone want to solve some differential equations with Maple V? Anyone?

Maple V, anyone? Anyone?

But these are somehow known quantities. They are familiar bits of nostalgia that I return to and are parts of my past that I am conscious of and think about. Learning Unix for the first time, however, was something that I had not thought about in a long time.

I’ve been using Unix, Linux, or some kind of ‘Nix for most of my personal and professional life. I am not an expert by any means, but a lifelong user who is familiar enough with the tool to make good use of it. And to a large extent, I regard it as just a tool. And like so many tools in daily life, I don’t think about it much.

Then I learned about SerenityOS, which I can only describe adequately using its own words.

SerenityOS is a love letter to ‘90s user interfaces with a custom Unix-like core.

serenityos.org

The aesthetic drips with NT while being haunted by CDE. Just seeing the screenshots threw me back across decades of time when I was just learning about character streams and making my first bash scripts. Ars Technica’s Jim Salter summed up SerenityOS well.

To someone in SerenityOS’s target demographic… who grew up with NT4 systems but matured on modern Linux and BSD, SerenityOS hits like a love letter from the ex you never quite forgot.

Jim Salter, Ars Technica

The project is impressive and fun to learn about. Like most software projects these days, it has grown into a collaborative effort by a dedicated team that continues to expand. But it is coordinated by its founder, Andreas Kling, who was inspired to build his dream OS after completing a drug rehabilitation program and needed something to throw himself into.

Three years later, the team has managed to create a very workable Unix-like OS from kernel to web browser in modern C++ that eschews third party libraries, building everything in-house. Just think about what “no third party libraries” means and you get a sense of the scale of this undertaking. Impressive by any standards, it will feel instantly familiar to anyone who worked on enterprise systems in the late ‘90s.

Just seeing the first screenshots brought back memories of a summer job I had a very long time ago. I was a nerdy kid who loved computers, but up to then I had only really been exposed to personal computing with Apple IIs and Windows machines in school. My first computer was an early 80s hand-me-down cartridge and BASIC-based home computer (guess which one!), so my knowledge of operating systems was certainly limited. Not only in the sense of how they worked but also of what they could do for you.

The author’s previous experience with system administration

Somehow based on this limited skillset I managed to get a job with a local manufacturer in my hometown. The engineers at its design campus used a 3D software package to create their new products and they needed help upgrading to a new version of the software during the slow period over the summer. And the software ran on HP-UX.

For kid who had only really used DOS-based systems, Unix was a theoretical construct or an academic curiosity. So I was excited at the opportunity to have a summer to learn it. And I did quickly. On my first day I was given a cubicle, an HP9000 workstation, a book on awk, and told that I needed to write all of the migration scripts for the upgrade. Cool.

My heart leapt at SerenityOS’s hints of the CDE I knew and loved from that one crazy summer fling.
Original author Huihermit, used under the GNU Lesser General Public License, version 2.1 or later.

SerenityOS reminds me of the new world of computing that opened up for me that summer. Sure the UI reminds me simultaneously of computers I knew and computers I would get to know that year with its NT-style icons and windowing system and its Unix-like color scheme and space switcher. But it’s actually using SerentiyOS that really takes me back. That summer nothing was easy and I had to learn so much from scratch. SerenityOS is familiar but still very different in much the same way, making it a challenge but at the same time being fun to discover. Even building it to run, while very doable, had its own challenges and exposed me to tools I had not used before.

But there is also something in just the feel of the system. Maybe it is the genius marriage of old aesthetics and usability with modern standards, like how the kernel exposes internal data as JSON instead of plain text. Or maybe it transcends the actual user experience and into the more philosophical how you can tell that this was a system built by hackers for hackers.

One of the things that immediately struck me about Unix when I first used it was that it gave you everything you needed out of the box to work. Editors, pipes, powerful scripting, assemblers, linkers. It was all right there and you could just start creating something. It was a refreshing and stark contrast to the DOS world I knew where the OS was basically just a filesystem (and a bad one at that). SerenityOS likewise gives you everything you need to get started and hardly anything that you don’t. It is a stripped down, lean system and built for the purpose of giving its users everything they need to create the system they want. It is a work in progress to be sure, but it is clear to see where it is going and a lot of fun to be there for part of the ride.

That summer so long ago was a formative learning experience. And this summer, discovering SerenityOS was a reminder of just how important that summer experience with HP-UX was. For me, SerenityOS elicits the best kind of nostalgia: something that makes you appreciate experiences of the past while connecting you with something new and exciting in the present.

Now if you will excuse me, I need to install Doom on my Serenity VM.


If you are also a sucker for the ‘90s power user aesthetic or are just kind of geeky about operating systems, then you should definitely give SerenityOS a try.

https://serenityos.org

Their website is mostly a landing page, but it collects a lot of great videos that they have made, in case you would rather watch than take the time to install it yourself. Andreas and his team produce new content constantly as the development progresses.

https://www.youtube.com/c/andreaskling

But if you have a few idle minutes, it is not that complicated to download and run SerenityOS yourself.

https://github.com/SerenityOS/serenity

The GitHub page has all you need to install it and it is pretty straightforward. If you are installing it on a very old piece of hardware like I might have been, the build time can take a while. But the install scripts are robust and very informative. So if you run into a problem, it’ll probably be pretty clear what it is.

And if you do run into any challenges that you can’t quite solve yourself, sign on to their Discord server. I can almost guarantee you that if you search the #build-problems channel for your error message, the problem has already been solved.

https://discord.gg/serenityos

Have fun!