Jenny’s Daily Drivers: SerenityOS, And In Particular, Ladybird

As we continue on with the series in which I take a different OS for a spin every month I am afraid, dear reader, that this month I have a confession to make. Our subject here isn’t a Daily Driver at all, and it’s not the fault of the operating system in question. Instead I’m taking a look at a subject that’s not quite ready for the big time but is interesting for another reason. The OS is SerenityOS, which describes itself as “a love letter to ’90s user interfaces with a custom Unix-like core“, and the reason I’m interested in it comes from its web browser. I know that the OS is very much a work in progress and I’ll have to forgo my usual real hardware and run it in QEMU, but I’ve heard good things about it and I want to try it. The browser in question is called Ladybird, and it’s interesting because it has the aim of creating a modern fully capable cross-platform browser from scratch, rather than being yet another WebKit-based appliance.

A Pleasant Trip Into The 1990s

Part of a Linux desktop with the SerenityOS build instructions in the background, a terminal having built the OS, and the OS itself in a QEMU window.
My first look at SerenityOS after building it.

SerenityOS isn’t ready to be installed on real hardware, and there’s no handy ISO to download. Instead I had to clone the repository to my Linux machine and run the build script to compile the whole thing, something I was very pleased to observe only took about 40 minutes. It creates a hard disk image and opens QEMU for you, and you’re straight into a desktop.

When they mention ’90s user interfaces they definitely weren’t hiding anything, because what I found myself in could have easily been a Windows 9x desktop from the middle of that decade. There are  a bunch of themes including some Mac-like ones, but should you select the “Redmond” one, you’re on very familiar ground if you had a Microsoft environment back then. It’s only skin-deep though, because as soon as you venture into a command line shell there’s no DOS to be found. This is a UNIX-like operating system, so backslashes are not allowed and it’s familiarly similar to an equivalent on my Linux box. The purpose of this review is not to dive too far into the workings of the OS, but suffice it to say that both the underpinnings and the desktop feel stable and as polished as a Windows 95 lookalike can be. The various bundled utilities and other small programs seem to work well, and without any hint of the instabilities I’ve become used to when I’ve experimented with other esoteric operating systems.

The SerenityOS desktop with the Tux Racer game in a window
Installing software from the ports directory is pretty straightforward.

The main remaining piece of SerenityOS software out of the box is Ladybird itself. But before I tackle the browser it’s worth looking at the wider state of software for the platform. Happily there’s a ports directory with a lot of different packages brought across to SerenityOS by individual developers, and each one has a Linux shell script which compiles it and adds it to the QEMU image.  That doesn’t mean that you can go nuts with software on SerenityOS though, because what’s in the ports directory reflects the tastes and interests of the SerenityOS devs rather than a comprehensive software catalogue. So if you’re expecting LibreOffice you’ll be disappointed, but we’re guessing that few who try SerenityOS are in it for those purposes. Instead there are tools and utilities aplenty, emulators, and games. To test it out I installed Tux Racer, and was soon sliding down the course collecting herrings.

Time To Surf The Web In A New Way

Hackaday in the Ladybird browser
Yes, you can read Hackaday with it. Font is wrong, though.

Having established that SerenityOS is pretty well screwed together, it’s time to turn our attention to the reason I became interested in this platform: the Ladybird browser. Here in 2023 it almost feels as though we’re heading back to the bad old days of the browser wars again; WebKit is the giant gorilla in the browser-engine world, and it powers Chrome, Safari, and Edge. Mozilla is now the only other significant player, and is in very much a minority position.

There’s a very real need for diversity in browser engines to limit the influence of Google or Apple, so anything new — however obscure — has to be worth a look. Making a modern browser is a Herculean task so I’m not expecting a polished and stable experience, but will I find in it a glimpse of future greatness?

Before you’ve opened a website, the browser chrome feels very akin to that of a 1990s browser: it’s a single window with no tabs, and that Windows 95 vibe. So far so good then, I wasn’t here to review that aspect. Instead I’m interested how it renders websites, and thus I was there to fire URLs at it and see what happened. Unfortunately when running the browser on my SerenityOS install it was a disappointing experience which I don’t think does the browser justice, as I could watch the available memory trickling away until it would inevitably crash on all but the most straightforward sites. I could see it starting to render and making a good job of it, but it wasn’t stable enough to use.

This was almost certainly because the default QEMU settings under which SerenityOS runs didn’t have enough in the way of resources. After all, nobody runs 1 GB of memory on their machine in real life here in 2023. To give the browser a fair shout then I compiled it to run natively on my Linux environment, somewhere it would be less constrained. The build instructions are straightforward enough, and after about a quarter of an hour I was looking at a new browser on my Linux desktop.

The Ladybird browser showing the ACID3 compatibility test with a score of 96/100
Worth bearing in mind: Firefox and Chrome score only 97.

First order was of course to load Hackaday, which it did perfectly acceptably. It looks and feels like Hackaday should with the rendering looking as I’m used to, but of course I need something a little more standardized than that.

The Acid3 browser-standards compliance test is the answer, and on that it achieved a score of 96. I’ve seen screenshots (which may with hindsight be Photoshopped) of Ladybird builds achieving a score of 100 on this test so that feels like a disappointment, however that should be weighed against the up-to-date Firefox this is being written on and my similarly recent Chromium both scoring only 97. Ladybird’s visible rendering quality is exactly as I’d expect from a modern browser. Next up was a Javascript benchmark, and here sadly the Octane Javascript benchmark locked up the browser. Javascript in websites runs, but it’s a piece of software in development so it’s not unexpected that some things might be challenging.

In conclusion, then:

Ladybird displaying the BBC News website
It may be a bit slow at the moment, but your everyday sites appear without any compromises.

I spent a while trying to use Ladybird as I would any other browser, and I found it capable and able to run the websites I use on a day to day basis in the quality I expect to see them. It’s not all roses though, in its current form the browser is extremely slow, and resource heavy sites can still crash it. I recognise this is a function of its development status.

Despite the crashes, I can immediately see why this browser has caught some attention. It still has perhaps a way to go before it’s ready for the big time, but here is a browser that shows real promise as a genuine contender against the major players in the field. For the SerenityOS and Ladybird developers to have achieved this is an extremely impressive feat, and I hope that they receive enough attention and support to bring it to maturity.

SerenityOS and Ladybird: I tried them and I wasn’t disappointed. The OS is stable and very usable in the sandbox of QEMU, and while that’s not the unpredictable world of real hardware it still beats many other hobby operating systems in this regard. It’s not a daily driver by any means, but I can see that in a different world it really could be. I like this OS, and I could see myself using it. Meanwhile as I’ve said above, the Ladybird browser shows real promise and will I hope morph into something we could use as a daily driver.

35 thoughts on “Jenny’s Daily Drivers: SerenityOS, And In Particular, Ladybird

    1. Seems like a good utility, But it doesn’t tell you where your browser fails, but surely it knows otherwise it’d have added up to 100.

      Any automated test worth using would provide feedback on how to improve.

      A useless test.

      1. A user who just want’s to compare browsers in order to pick the one which will best display sites as intended doesn’t care about that.

        Not arguing against including that data.. just pointing out that this is hardly useless!

  1. What a strange project. It’s suuuper impressive with a level of UI completeness that surpasses several Linux desktop environments which is what makes it so strange because it doesn’t have an actual userbase. I really can’t wrap my head around how this project exists.

    1. It exists because the main developer is very outgoing and draws in a lot of interest, as well as being a developer himself that contributes a lot of code.

      He’s a former webkit developer, Andreas Kling, from Nokia/Apple, as well so has a lot of experience to draw from. And part of the reason it exists is because he needed something to do, to occupy him while recovering from addition, then bam it turned into a thing.

    2. SerenityOS caters to a passionate user base of programmers. The whole purpose is to be a programmer’s playground, nothing more, and nothing less. It has no intention of ever being a “daily driver” OS for anyone, although it may one day reach that level of stability.

      It’s meant to be somewhere where you could program recreationally. That might mean potentially diving into things you normally wouldn’t encounter in your day job such as USB device drivers, or some other esoteric machination deep in the heart of the OS, or it could mean adding a few new glyphs to one of their custom bitmap fonts.

  2. The screenshot on their own website shows a couple of open windows – including the browser – and yet only 285MB of memory in use. And now you’re telling us the browser won’t run with 1GB of memory.

    Seems like a fully functional (HTML/CSS/JS), *lightweight* browser is just not possible anymore…

    1. It’s impossible to get **lightweight** Web 2.0 web browser when your average web page loads a 15MB compressed JavaScript library, especially when the web browser in question follows specifications “to the letter of the law” – remember that LadyBird is not optimized yet (just 15 hours ago Andreas post a video titled “Let’s prototype a JavaScript JIT compiler!”)

  3. A 90s UI?! But it’s Unix-like?!
    Sold!

    No browser tabs?
    Un-Sold!

    When not used with a touch-screen I think UIs have definitely taken a crap since the 90s. But even I don’t think that EVERY change has been negative!

    I wish I could more easily change colors, etc.. and theme my current KDE desktop to look more like how I set up my old 98SE machine back in the day.

          1. That’s like saying “hope it has a V8” with a car. You could have a 1980 Ford Windsor with 119 hp that still managed to only average 14 mpg, not exactly an accomplishment. Meanwhile you can get a turbo I3 from Koenigsegg that makes 600 horsepower.

          2. @Erik Twisty Plastic already said it was an old laptop. In an old laptop an i7 is the best you can have regardless of its exact age. You can try being a smart *ass* with your *anal*-ogies, but if all can think of is this *shitty* comparison you’d better just stay silent because it doesn’t make sense at all.

        1. You can open new tabs in the standard way with ctrl+t, “File > New Tab”, right clicking a link and pressing “Open in New Tab”, etc. The tab bar doesn’t show when there’s only a single tab open – maybe this is an indicator that we should just always show that bar :)

  4. It should be noted that SerenityOS has a monthly update video, of which the LadyBird (related) section was extracted out to it’s own monthly update video, around the time some 100K US was contributed towards full time developers (not including Andreas)

  5. Pseudo-3D look of window border and widgets (although minimize/maximize buttons still do not emulate the Marlett font closely) is impressive, I miss it greatly after the years of forced update to Win8+ due to corporate policy. There was some distro claiming to give you the Win95 look and feel, and didn’t convince me back then, but this one starts giving hope. Sadly it’s not planned as a “daily driver”.

    Is there a window manager that can be modified for the same result in other distros?

  6. I’m always interested in rogues charting new ground in terms of OS. But unless it can run on everything I don’t have much use for it. Still this seems like an interesting project that I will fire up a VM to inspect it with.

    This comment is mostly aimed at LadyBird. Reminds me of that old “swing” song. I have to say the “acid” test is completely useless. All three of my primary browsers get a 97. But we’ve now made it to the time where different sites need different browsers (hence the three). This WordPress site is relatively simple client-side wise. And works on all three of my browsers. I’m writing this from the latest SeaMonkey, which is the least capable of the 3. It will do some you tube, but won’t Discourse, GitHb (ugg), twit, … I have two different versions of FireFox because some sites need one and others the other. With the latest FF covering the most.

    In short its probably more worth while to keep a list of the giga-buck tech owned sites that cause the most trouble and test a browser against them.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.