Spotlight - GNOME OS
Wait, there is a GNOME OS? Yes, and it is around since GNOME 3.38, already. Should you use it? Is it a good idea to run it daily? What is different to Fedora or Ubuntu? And why isn't every GNOME enthusiast hopping on it like on KDE Neon?
Wait, there is a GNOME OS? Yes, and it is around since GNOME 3.38, already. Should you use it? Is it a good idea to run it daily? What is different to Fedora or Ubuntu? And why isn't every GNOME enthusiast hopping on it like on KDE Neon?
Let's take a look. Shall we?
GNOME
Before digging into the actual operating system, I want to give a bit of background. GNOME is known for its desktop environment. The project is made out of smaller projects like Mutter, GTK, GNOME Shell and lots of applications or extensions around it. Together, they provide a vast ecosystem that became the default choice by many Linux distributions. This includes Ubuntu, Fedora or AlmaLinux.
Furthermore, Cinnamon, Pantheon (Elementary OS) and many others took parts out of GNOME or tuned it to their likings and made a desktop environment on top of GNOME libraries and applications.
In the past, you might have seen one or another article about GNOME on this blog already.
I also featured GNOME releases in the Fedora Release articles.
Now that this is out of the way, you might wonder what a GNOME OS might be about?
GNOME OS
Ok, there is an operating system, with pre-installed GNOME and some other stuff. Sounds like the perfect opportunity for the GNOME enthusiast, right? Well, not really. Let's check it out.
Purpose
Let's assume you are a developer for the GNOME ecosystem. You may have an idea and some code to improve GNOME Settings with the next iteration. Or, you may have some cool improvements for GTK that you want to test.
In the past, you were required to set up GNOME from different development branches on your own. You needed to fiddle out the dependencies, some other requirements and basically deploy GNOME as explained in some pending Meta branches. This was tough, not really reproducible and error-prone. Furthermore, the underlying distribution might come up with their own special sauce and make an implementation even harder, since you have to consider compiler versions, distribution specific patches and more.
The GNOME team came up with the idea, that testing new implementations should be easy and there must be some kind of "default" GNOME. This default should provide a reference implementation. One might also say a "testing ground", "QA environment" or just something where distributions can look up how the GNOME team considers "standard GNOME".
GNOME OS is the result of this effort and therefore does not carry any distribution specific patches, has no package manager like you know it and whatnot.
Furthermore, it comes in two different flavors — a user flavor (how a user perceives GNOME) and a developer flavor with additional debugging and tracing enabled. Both flavors are provided as OSTree-based atomic deployments. This makes it easy to switch between both or apply updates in a reproducible and consistent way.
Core Technologies
I already spoiled that OSTree is used for the deployments. OSTree is a technology that allows to provide packages in a Git-esk way. Meaning, instead of unpacking packages and running scripts to install them (this is how RPM, Deb and others work), you are having a defined state of the file system, which will be ensured. This state holds all the requirements to spin up the operating system, but also start a GNOME session.
In case of GNOME OS, this file system layout is so fixed and set in stone, that the installer does not even allow an adoption of the same. Instead of asking you for your demands, you will get a default layout. That's it. Apropos installer — it is a nifty GTK application that asks you if it is allowed to format the disk. Everything else, like user creation or setting a keyboard layout, will be done after the first boot.
After the installation, you will be greeted by an operating system comprised of the below tools. I also added the version numbers that were included when writing this article.
- Linux Kernel, obviously (version 6.6.10)
- systemd, for all the system thingies (version 254)
- GNOME Shell (46.alpha)
- Flatpak, for additional packages (version 1.15.6)
Applications
On top of the enabled GNOME-nightly and Flathub repositories for Flatpak installations, you will find some pre-installed applications.
- GNOME Calculator
- GNOME Calendar
- GNOME Camera
- GNOME Contacts
- GNOME Clocks
- GNOME Console
- …
I think you got it. Lots of very recent versions of GNOME core applications are installed, already.
How to install?
Now, you might wonder how to run it? This is somewhat interesting. For now, GNOME OS supports operations via GNOME Boxes and bare metal (on real hardware) only. For GNOME Boxes, it should be possible to run the installer with the "Download OS" option, for me, this wasn't the case. So, I downloaded the ISO and started a new virtual machine.
On bare metal, one needs to prepare a USB drive beforehand, disable Secure Boot and ensure that UEFI boot is enabled. Finally, you can boot from the USB drive and start the installer.
After the successful installation and a reboot, you will be greeted with some more options. You need to choose the preferred language, keyboard layout, timezone and create a user.
Finally, you can start using GNOME OS.
Daily Driver?
Is it a good idea to run GNOME OS as a daily driver, for production machines? For me, no. I faced a couple of minor issues, mostly related to the early stages of the included GNOME software.
The lack of documentation is also a problem for me. Furthermore, GNOME OS lacks some security features and configurations for the same.
It is a perfectly well-designed test-bed for GNOME developers. You can test things, see the latest iterations of GNOME, but yet you will also face similar situations like with Fedora Rawhide or Debian Testing.
Docs & Links
Lastly, let me share some links about GNOME and GNOME OS.
Conclusion
Even if GNOME OS is not a Linux distribution for users, it's a nice opportunity to dig into GNOME development, testing and QA. Spin it up, test new features, or deploy your new GNOME extension to it.
Maybe, we will see more maturity over the next couple of years and even something that compares to KDE Neon.