Serenity OS turns five and emits first offspring, Ladybird

Indie C++ Unix-like OS project now has an indie Javascript-capable browser, too

A small project with a hobby of defying expectations found a new one to defy, by making its home-grown browser cross-platform.

Work has not slackened on this indie OS project since we first took a look at Serenity OS a year and a half ago. It has now turned five years old. What have its developers got to show for a half a decade of work? Not just an entire OS, but also a ground-up web browser, and it runs on other OSes, too.

First, though, a warning: don't get your hopes up too high yet. This is very much a work in progress. Neither Serenity OS nor its browser are ready to just download and run yet. There are no VM images or ISO files to install in a VM yet. If you want to try it, you'll have to install a C++ compiler and bunch of other tools, then compile your own copy. If that sounds too much like hard work, no problem. Keep checking back, and maybe in another year or two it will get that far.

On the other hand, if that doesn't sound too forbidding, well good: there are some good instructions, and building is just a matter of copying and pasting a few instructions, installing a few hundred megabytes of tools and dependencies, and then one command to build it. By the standards of an incomplete work-in-progress, it's very easy. Last time we tried, our high-end but aging Core i7 Dell Latitude 7270 worked, all fans going flat out, for about three hours to build Serenity. In 2023, our relatively low-end i5 Latitude 5420 took 35 minutes, without discernible effort and remaining usable throughout.

Serenity is a pleasing combination of a classic-Windows-like UI and some of the simplicity that Unix once had, decades ago.

Serenity is a pleasing combination of a classic-Windows-like UI and some of the simplicity that Unix once had, decades ago (click to enlarge)

Serenity OS is a ground-up experimental OS, which started out as a one-man project but now has a small but growing community of developers. It's Unix-like, but unlike most traditional Unixes, it is implemented in C++ rather than in plain C. That's not unique – when we looked an non-C OSes previously, we noted that Psion's EPOC32, later better-known as Symbian, was entirely built in C++. So was 1990s dream OS BeOS, and is its successor, FOSS Desk fave Haiku, as well as the much more experimental Genode.

Serenity has its own GUI stack, which in the project's own words "is a love letter to '90s user interfaces." What that seems to mean is that it unashamedly resembles Windows 95 and Windows NT 4, before the horrors of IE4 and "Active Desktop". This crabby old vulture feels that was the peak of MS UI design, and since then, for various complicated reasons, desktop design has been accelerating downhill into a Katamari Damacy ball of rubbish.

Serenity OS is still very young, though. Since we last looked at it, the project has dropped support for x86-32: it's now a 64-bit only project. It is now 20 years since the first 64-bit PCs started appearing, and we suspect that dropping support for late-twentieth-century hardware will make life easier. It is just about possible to run it on bare metal, and the project documents it but for now, it mainly runs in a VM. Given that this is the case, we are impressed that its web browser can already run on other OSes.

Rather like Serenity itself, Ladybird isn't ready for mainstream use yet, but it works and that alone is impressive.

Rather like Serenity itself, Ladybird isn't ready for mainstream use yet, but it works and that alone is impressive (click to enlarge)

The Ladybird browser is the name for the Serenity OS web browser, which is turning into a cross-plaform app. Like its parent, you'll have to install a compilation environment and build it yourself, and again, this is well documented.

There are of course lots of web browsers out there, but almost all of them build on existing "engines" – mostly, Google's Chromium. Only a handful are totally ground-up projects, for instance, Dillo and NetSurf. The thing is that these are very limited: notably, they don't handle Javascript, which both makes them tiny and fast, but also renders (pun intended) much of the modern web unavailable. What differentiates Ladybird from these is that it has a Javascript runtime as well, and that too is a clean, ground-up implementation.

We built it on Ubuntu Mantic, and it launched and ran without any issue, but many sites didn't work correctly – including The Register itself. But as its FAQ says:

At this point, there are way more websites that don't work than websites that do. We're not yet at the point where reporting individual site issues makes sense.

Right now, Ladybird is impressive just because it builds on other OSes and does actually launch and show (some) modern websites. It's not that this is ready to use; it isn't. But as a proof of viability that this can be done, that an app built for Serenity OS can be ported to other OSes and work, it's impressive.

There are, or have been, more one-person or small-team OSes that have got this far than you might expect – by which we mean, a portfolio of apps and reaching the level of completeness that mean you can install them on a PC and use the internet. The last one that impressed the Reg FOSS desk this much was Kurt Skauen's AtheOS, which contrary to how the Reg described it 22 years back, was more AmigaOS inspired than by BeOS. Sadly, Skauen moved on to other things, and the Syllable OS project wasn't able to maintain the necessary momentum.

We really hope that Serenity OS avoids this fate. If Ladybird can reach the point that it's useful to a wider audience, it might be able to attract attention and backing to the Serenity project.

More about


Send us news

Other stories you might like