So you've heard about Serenity OS -- the scrappy little upstart operating system that takes deep inspiration from the systems of the 1990s. And now, because you are a totally normal and reasonable nerd, you want to try it out.
Well, here's the bad news: There are no ready-to-go ISO images of Serenity. No installers. If you want Serenity OS, you're going to have to build it from source. Seriously.
But fear not, fellow nerd!
For I am here to walk you through doing exactly that... and -- you know what? -- it's actually a pretty simple process.
So simple, in fact, that I'm going to fill this article up with screenshots just to make it seem bigger, and more dififcult, than it actually is.
Step 1) Be running Ubuntu and have some drive space ready
Most of these instructions will be very similar most flavors of Linux... and pretty doggone similar for Windows or macOS as well (especially the last couple of steps). But we're going to assume you are running a semi-recent version of Ubuntu for this tutorial. Or, at the very least, an Ubuntu-derived system.
If you happen to be running Windows or macOS, you can still mostly follow along... but you'll also want to check the Build Instructions on the Serenity GitHub page for more details on getting all of the requirements installed.
In addition you'll need 7.6 GB of space available on your hard drive. At least. This is how much the total code repository, build, and disk image takes up.
Step 2) Install the Requirements
Copy, paste, and run the following to install most of the key system requirements:
sudo apt install build-essential cmake curl libmpfr-dev libmpc-dev libgmp-dev e2fsprogs ninja-build qemu-system-gui qemu-system-x86 qemu-utils ccache rsync unzip texinfo libssl-dev
Then run the following to install the needed version of the GCC compiler:
sudo apt install gcc-12 g++-12
On some systems it might be a good idea to explicitly install QEMU (the PC emulator which we'll be using). Though it should be installed in the requirements above. But doesn't hurt to run this:
sudo apt install qemu
Note: You must have at least version 6.2 of QEMU for Serenity OS.
Step 3) Grab the Serenity OS code
There are two super simple ways to get the full code for Serenity OS:
Option 1: Run the following command:
git clone https://github.com/SerenityOS/serenity
That will create a "serenity" directory and make a clone of the entire repository. Easy peasy.
Option 2: Go to https://github.com/SerenityOS/serenity and click on the "Code" button... then click "Download ZIP".
It will look something like this:
This will download the whole project as a single zip file. Then you'll simply extract that zip file to any folder you like.
Step 4) Build the Toolchain
Before we build the latest version of the operating system itself... we need to build all of the tools needed to do the building.
Luckily that process is simply one command. Be within the "serenity" directory and run the following:
Meta/serenity.sh rebuild-toolchain
Fair warning: This can take a while depending on how beefy your machine is. The output will look something like this...
Or this...
Also a bit of this...
When that finishes... we're on to the fun part...
Step 5) Build Serenity OS and run it!
This last step, likewise, is super simple. But it can take a while for a full, fresh build of the whole Serenity OS.
Run this:
Meta/serenity.sh run
That is where all the magic happens. All of the code is compiled (with the binaries located in Build/x86_64/Root) and then a QEMU ready disk image is created with the entire Serenity OS ready to rock and roll.
Then... wait for it... Ta-da! QEMU launches with Serenity OS!
This is what Serenity OS looks like on first boot (at least... in the current build... which is changing all the time).
But, of course, Serenity has a whole bunch of themes you can choose from. Like this semi-sorta-macOS inspired theme:
Or this Windows 95 inspired theme:
Can't go wrong with classic computer themes, I always say!
You now have a fully functional, virtualized Serenity OS system! Huzzah!
Enjoy and poke around this delightful, open source system!
If you're not already a subscriber to The Lunduke Journal of Technology on Locals... now's the time! Click that button so you don't miss out on all the nerdy goodness!