cmc/cleberg.net

My personal web garden & blog.

clone: git clone https://gitbay.org/cmc/cleberg.net.git

main: content/blog/2022-09-17-serenity-os.org · raw

  1#+date:        [2022-09-17 Sat 00:00:00]
  2#+title:       Building and Exploring SerenityOS
  3#+description: Building and running SerenityOS, a retro Unix-like desktop OS.
  4#+slug:        serenity-os
  5#+filetags:    :linux:
  6
  7* Overview
  8
  9[[https://serenityos.org][SerenityOS]] is a unique operating system (OS) that I have seen pop up in my news
 10feed a few times over the last few years, but I have never had time to test it
 11out until now.
 12
 13Testing out this system brought back fond memories of yellowed,
 14modem-screeching, 100-pound computers that brought so many fond memories to my
 15youth.
 16
 17Per their website:
 18
 19#+begin_quote
 20A graphical Unix-like operating system for desktop computers!
 21
 22SerenityOS is a love letter to '90s user interfaces with a custom
 23Unix-like core. It flatters with sincerity by stealing beautiful ideas
 24from various other systems.
 25
 26Roughly speaking, the goal is a marriage between the aesthetic of
 27late-1990s productivity software and the power-user accessibility of
 28late-2000s *nix.
 29
 30This is a system by us, for us, based on the things we like.
 31#+end_quote
 32
 33* Building
 34
 35Your first question may be "Where's the iso?" and the answer is... there are
 36none. SerenityOS does not provide pre-built images for testing. You must build
 37the images yourself. This seems intentionally to limit participation to only
 38those who are truly interested enough to learn how to build the OS.
 39
 40** Clone
 41
 42In order to get started, you'll need to clone the source repository:
 43
 44#+begin_src sh
 45git clone https://github.com/SerenityOS/serenity && cd serenity
 46#+end_src
 47
 48** Build
 49
 50Note that I followed the [[https://github.com/SerenityOS/serenity/blob/master/Documentation/BuildInstructions.md][Build Instructions]] in the SerenityOS repository as of
 51commit =660d2b53b1206e868d5470eee80b5e62d7e30da7=. Things may have changed since
 52my installation, and you should double-check the instructions first.
 53
 54Regardless, I want to repeat my steps here to illustrate any errors or differing
 55commands I needed to run in order to build and run SerenityOS.
 56
 57Since I am running Fedora, I needed to install these packages in order to build
 58the OS images:
 59
 60#+begin_src sh
 61sudo dnf install texinfo binutils-devel curl cmake mpfr-devel libmpc-devel gmp-devel e2fsprogs ninja-build patch ccache rsync @"C Development Tools and Libraries" @Virtualization
 62#+end_src
 63
 64Next, make sure you're inside the =serenity= directory created earlier during
 65the git cloning process and process to build the toolchain:
 66
 67#+begin_src sh
 68Meta/serenity.sh rebuild-toolchain
 69#+end_src
 70
 71Once the toolchain is built, you can Build and run the OS!
 72
 73#+begin_src sh
 74Meta/serenity.sh run
 75#+end_src
 76
 77After this process is completed, the image should run automatically and
 78launch.
 79
 80* Issues
 81
 82I played around in SerenityOS for an hour or two in order to see what I could do
 83and had a lot of fun with it. The only issue I ran into was a lack of working
 84internet. I didn't try very hard, but I could tell that the main network link
 85wasn't connecting to my Fedora host properly.
 86
 87* Screenshots
 88
 89The initial launch of the image displays the SerenityOS desktop, with a simple
 90terminal already launched.
 91
 92There is also a "Fire" application (literally just shows fire burning), a
 93browser with the local Serenity Browser page loaded, and a text editor.
 94
 95I also poked around the system utilities and found most tools you'd expect to
 96find within a standard desktop, such as a system monitoring tool.
 97
 98Lastly, I noted that the default desktop contains numerous pre-defined themes to
 99choose from. This is a small piece, but it's actually wonderful to see desktop
100developers consider theming directly out of the box rather than using an
101addon-based mentality.
102
103I didn't take a screenshot of the other pre-installed games, but I did spend
104nearly 30 minutes playing Solitaire before remembering that I was supposed to be
105writing a post about the OS.