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

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

Source Node: 2927650

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

<img data-attachment-id="624099" data-permalink="https://hackaday.com/2023/10/10/jennys-daily-drivers-serenityos-and-in-particular-ladybird/created-with-gimp-24/" data-orig-file="https://platoaistream.com/wp-content/uploads/2023/10/jennys-daily-drivers-serenityos-and-in-particular-ladybird-5.jpg" data-orig-size="1504,918" data-comments-opened="1" data-image-meta="{"aperture":"0","credit":"","camera":"","caption":"Created with GIMP","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"Created with GIMP","orientation":"1"}" data-image-title="Created with GIMP" data-image-description data-image-caption="

Created with GIMP

” data-medium-file=”https://platoaistream.com/wp-content/uploads/2023/10/jennys-daily-drivers-serenityos-and-in-particular-ladybird.jpg” data-large-file=”https://platoaistream.com/wp-content/uploads/2023/10/jennys-daily-drivers-serenityos-and-in-particular-ladybird-5.jpg?w=800″ decoding=”async” class=”wp-image-624099 size-medium” src=”https://platoaistream.com/wp-content/uploads/2023/10/jennys-daily-drivers-serenityos-and-in-particular-ladybird.jpg” alt=”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.” width=”400″ height=”244″ srcset=”https://platoaistream.com/wp-content/uploads/2023/10/jennys-daily-drivers-serenityos-and-in-particular-ladybird-5.jpg 1504w, https://platoaistream.com/wp-content/uploads/2023/10/jennys-daily-drivers-serenityos-and-in-particular-ladybird-5.jpg?resize=250,153 250w, https://platoaistream.com/wp-content/uploads/2023/10/jennys-daily-drivers-serenityos-and-in-particular-ladybird-5.jpg?resize=400,244 400w, https://platoaistream.com/wp-content/uploads/2023/10/jennys-daily-drivers-serenityos-and-in-particular-ladybird-5.jpg?resize=800,488 800w” sizes=”(max-width: 400px) 100vw, 400px”>

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.

Time Stamp:

More from Hack A Day