content/blog/2022-09-17-serenity-os.org
111 lines · 4076 bytes
1#+date: <2022-09-17 Sat 00:00:00>
2#+title: Building and Operating Serenity OS: A Retro-Inspired Unix-Like System
3#+description: Technical overview of Serenity OS including system architecture, building procedures, and operational instructions for this Unix-like operating system with a 1990s user interface style.
4#+slug: serenity-os
5#+filetags: :serenityos:operating-system:build-instructions:
6
7* Overview
8
9[[https://serenityos.org][SerenityOS]] is a unique operating system (OS)
10that I have seen pop up in my news feed a few times over the last few
11years, but I have never had time to test it out until now.
12
13Testing out this system brought back fond memories of yellowed,
14modem-screeching, 100-pound computers that brought so many fond memories
15to my youth.
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
36are none. SerenityOS does not provide pre-built images for testing. You
37must build the images yourself. This seems intentionally to limit
38participation to only those who are truly interested enough to learn how
39to build the OS.
40
41** Clone
42
43In order to get started, you'll need to clone the source repository:
44
45#+begin_src sh
46git clone https://github.com/SerenityOS/serenity && cd serenity
47#+end_src
48
49** Build
50
51Note that I followed the
52[[https://github.com/SerenityOS/serenity/blob/master/Documentation/BuildInstructions.md][Build
53Instructions]] in the SerenityOS repository as of commit
54=660d2b53b1206e868d5470eee80b5e62d7e30da7=. Things may have changed
55since my installation, and you should double-check the instructions
56first.
57
58Regardless, I want to repeat my steps here to illustrate any errors or
59differing commands I needed to run in order to build and run SerenityOS.
60
61Since I am running Fedora, I needed to install these packages in order
62to build the OS images:
63
64#+begin_src sh
65sudo 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
66#+end_src
67
68Next, make sure you're inside the =serenity= directory created earlier
69during the git cloning process and process to build the toolchain:
70
71#+begin_src sh
72Meta/serenity.sh rebuild-toolchain
73#+end_src
74
75Once the toolchain is built, you can Build and run the OS!
76
77#+begin_src sh
78Meta/serenity.sh run
79#+end_src
80
81After this process is completed, the image should run automatically and
82launch.
83
84* Issues
85
86I played around in SerenityOS for an hour or two in order to see what I
87could do and had a lot of fun with it. The only issue I ran into was a
88lack of working internet. I didn't try very hard, but I could tell that
89the main network link wasn't connecting to my Fedora host properly.
90
91* Screenshots
92
93The initial launch of the image displays the SerenityOS desktop, with a
94simple terminal already launched.
95
96There is also a "Fire" application (literally just shows fire burning),
97a browser with the local Serenity Browser page loaded, and a text
98editor.
99
100I also poked around the system utilities and found most tools you'd
101expect to find within a standard desktop, such as a system monitoring
102tool.
103
104Lastly, I noted that the default desktop contains numerous pre-defined
105themes to choose from. This is a small piece, but it's actually
106wonderful to see desktop developers consider theming directly out of the
107box rather than using an addon-based mentality.
108
109I didn't take a screenshot of the other pre-installed games, but I did
110spend nearly 30 minutes playing Solitaire before remembering that I was
111supposed to be writing a post about the OS.