Clear Linux, an Intel open source project, is a rolling GNU/Linux distribution that optimizes the OS at all levels for Intel's implementation of the AMD64 or x86_64 architecture, the Intel Architecture, as it is referred to by Intel. This effort at optimization is to make the distribution especially useful for its intended use of cloud-centric and container applications. Recently, however, there have been developments that improve the experience on for desktop use, one being a Live Desktop ISO image, and flatpak support through GNOME Software or the distribution's CLI software and update manager.
The difference in performance the optimizations make in Clear Linux compared to some other distributions, as benchmarked by Phoronix, were so intriguing I had to try it. My desire to try Clear Linux was also motivated by the claims of the project that the design of the distribution makes it easy to customize the distribution without affecting the integrity of the core system.
In this article, I present my experience of using Clear Linux [Version 28210].
Note: Although this article was published on June 4, 2019, it was based on use of Clear Linux 28210 and its updated builds between March 8, 2019 and April 26, 2019. A new GUI installer has been released by Clear Linux recently and is included in its installation images. This may solve some of the limitations I encountered during installation of the distribution, but from the screenshots I have seen, it seems to be only an interface change.
Judging by the objective benchmarks performed by Phoronix, Clear Linux offers a definite performance advantage over other Linux distributions due to its Intel architecture specific optimizations. But besides the optimization, it is a unique distribution in numerous ways. It is designed to be a cohesive whole, where all software and the OS is specified by a single version number, in a similar fashion to Solaris. The software is not provided as packages as in other distributions but as "bundles", which together provide a certain functionality. These bundles, derived from underlying RPM packages of individual software, are deployed as a set of files written to the system together.
Feature | Method of Realization |
---|---|
Security |
|
Performance |
|
Customization/Mixer |
|
Manageability |
|
Stateless |
|
Function Multi-Versioning |
|
Autoproxy |
|
Telemetry |
|
Clear Linux software updates -- downloaded and applied automatically by default, unless overridden during installation or anytime after -- are frequent, as the entire OS and bundles are rebuilt nine times a week to incorporate the latest upstream changes and security patches. The update process is designed to be quick by using a delta system, as appropriate, where only changes to existing files are downloaded and incorporated into the system. The structure of an update is a set of files, not separated into units by package -- but by bundle, and metadata as a manifest file containing hashes of each file in a bundle. A separate manifest file for all available bundles relates the individual bundle manifests.
The data that an update provisions to a system can be obtained in three different ways. There are three different methods, and they exist to optimize the delivery of content and speed up updates. Fullfiles are always generated for every file in every release. This allows any Clear Linux OS to obtain the exact copy of the content for each version directly. This would be used if the OS verification needed to replace a single file, for instance. Packs are available for some releases and combine many files to speed up the creation of installation media and large updates. Delta packs are an optimized version of packs that only contain updates (binary diffs) and cannot be used without having the original file content.
For reasons related to bundling software, the distribution is designed to be stateless by separating the core system form user configuration in order to maintain the integrity of the OS, while simplifying the management of the user's custom configurations.
The most interesting aspect of Clear Linux to me, apart from its promise of superior performance, is that its design incorporates tools for creating a custom distribution with custom software and development environments while maintaining the integrity of the core system. The main tool that provides this functionality is mixer, which is used by the distribution to generate update content, but is also installable on a Clear Linux instance by the user. Users can create a mix, a custom version of the OS, by selecting components from Clear Linux bundles derived from a set of underlying RPM packages, locally specified bundles derived from a set of local RPM packages, and locally specified bundles from a set of upstream RPM packages.
The update content that mixer generates consists of various pieces of OS content, update metadata, as well as a complete image. The OS content includes all files in an update, as well as zero- and delta-packs for improved update performance. The metadata, stored as manifests, describes all of the bundle information for the update. Update content produced by mixer is then published to a web server and consumed by clients via swupd [the CLI software and update manager].
To aid in the generation of local RPMs, Clear Linux provides autospec, which automatically creates a .spec file (essentially the recipe for building an RPM package, similar to an Arch PKGBUILD) by inspecting the source tarball and, if necessary, refining the generated .spec file by iteratively building packages and learning from build failures.
Unfortunately, despite these innovations that dev-ops professionals and sys-admins for cloud-centric operations and development would appreciate, Clear Linux is not ready for desktop use on a bare-metal installation in the way users of the major GNU/Linux distributions are accustomed, especially those that dual or multi-boot, and probably even for these professionals. It certainly is not for the more casual Linux user.
Most modern distributions offer flexible and straightforward installation, but with varying degrees of the completeness of the configuration of the final installed system. Clear Linux installation on the other hand is certainly not flexible nor straightforward. First, the Clear Linux installer can only use one disk for installation -- all partitions to be used for the installed system must be on one disk. The installer will take the entire disk overwriting all other existing partitions including the EFI System Partition, even when the installer misleadingly allows the user to select existing partitons that together don't take up the entire disk. What happens in this case is the installer will delete all existing partitions and then recreate partitions of the same size as those selected, requiring users who want to install on Clear Linux bare metal to accept that the chosen disk will be completely deleted or prepare their systems by moving data partitions or OS installations to another disk, as I did. It seems that the Clear Linux installer was, in its initial design, which it has not outgrown, not meant for more than the simplest VM installation or other basic installations, in terms of the number of filesystems or partitons.
After preparing my Acer V15 Nitro for Clear Linux's target partition selection limitations and installing Clear Linux I was confronted with numerous annoyances that will not be found on other distributions. Although I prefer Plasma (and installed Plasma after forming my early impressions), I committed to using the default GNOME desktop. I found the experience to be far from great, especially when compared to the flawless experience with Fedora Workstation.
Most annoying with regards to the GNOME experience was the availability and stability of GNOME Shell extensions, in part due to the extreme rolling model of Clear Linux, which extension developers don't keep up with. Although many popular extensions including Dash to Dock are preinstalled and enabled out-of-the-box, availability and installation of GNOME Shell extensions were far from ideal.
Sadly, many extensions that can be installed using GNOME Software, which is simply a front-end for the same backend that is used with extensions.gnome.org , are not compatible with the very current version of GNOME Shell that is available in Clear Linux, which made GNOME 3.32 available immediately after release. Even if compatible versions are available, this method of installing extensions installs them per-user in ~/.local/gnome-shell/extensions and not system-wide, which is required for some extensions such as system monitoring extensions such as System Monitor.
Which brings me to another annoyance with Clear Linux and its GNOME Shell as System Monitor is the extension which I always install on the rare occasions I use GNOME shell. To work around this I downloaded the extension and manually installed it to the appropriate directory, /usr/share/gnome-shell/extensions. After changing the JSON metadata to indicate the correct version of GNOME Shell, which usually fixes the typical compatibility problems between extensions and new versions of GNOME Shell, this extension would not load. This is probably because the dependencies for this extension mentioned in the extension's website weren't installed, and can't be installed.
Even an extension installed by default was problematic, namely, the Native Window Placement extension. I discovered, after some heurestics, it was this extension that was causing the overview mode of GNOME shell to be displayed incorrectly, such that one of the scaled windows covered all of the other scaled windows. After disabling this and moving on I encountered the next annoyance, namely that one of the essential extension for me, System Monitor extension would not properly load.
Other GNOME Shell problems included:
As one who prefers Plasma, I was happy to see that Clear Linux offers the Plasma Desktop Environment and KDE Applications (as well as LXQt, Xfce, and some tiling window managers, but not Cinnamon or Mate), although it seems even less effort was taken to integrate it into the system than GNOME Shell while still keeping the OS's statelessness. The first issue I encountered with Plasma was the lack of brightness control although brightness control worked as it should in GNOME Shell. I later saw that the any mention of display brightness did not appear in the Power Management component of the KDE System Settings, an indication that powerdevil, which handles power management in Plasma, while a component of the KDE dekstop bundle, is not integrated in the system. It seems that a omission of a complete /etc directory, which many GNU/Linux system type programs depend on for configuration, in order to create a stateless OS is the root cause of many of this problem, as a powerdevil directory in /etc does not appear in Clear Linux while it does in Solus.
It may also be the cause of another more serious problem with changing display managers. After installing Plasma I disabled gdm and enabled sddm. When I discovered the problem with the brightness control when using Plasma, I disabled sddm and reenabled gdm, but upon rebooting the display manager that greeted me was sddm. I also saw both display managers were loaded and active.
Other issues I had with Clear Linux 28210 included:
On the positive side I was impressed with how well Flatpaks are able to be installed and integrated into the system seamlessly. The problem with unavailable audio codec when using VLC installed from the repository using swupd did not exist when using VLC installed as a Flatpak from flathub.org using GNOME Software.
For more information on using Clear Linux, see:
Clear Linux is obviously an original and innovative distribution that may be of benefit to developers (and groups of developers who work together and use the same development environment) whose work involves cloud and container applications. Sadly, after dealing with a bad installer and all of the problems I encountered using it, I did not want to spend any more time investigating these features. I especially wanted to experiment with mixeri>, the part of the Clear Linux software management tooling that allows users to customize the distribution by mixing software available in the Clear Linux repostiory with a custom user or third-party repository. This will have to wait for some other time.
I did see that it was not ready, in my opinion, for using comfortably as a desktop system. The installer was not flexible or refined. Traditional distribution maintained repository software is lacking -- but mitigated by the well integrated ability to install Flatpaks. The CLI software manager is too simple, and more importantly, one of the core features of the distribution -- statelessness achieved by the isolation of the core system from user configuration -- is actually, in my opinion, at this stage, a hinderance to the proper operation of the desktop environment.
I would recommend that its target audience, dev-ops, sys-admins, and developers working on cloud-centric and containerized applications experiment with Clear Linux for its innovative features. Even these user's will probably only want to use it in a VM and not as a bare-metal installation. Perhaps it is the deficiencies I saw in terms of desktop use, that prompted the founder and former lead developer of Solus, Ikey Doherty, who worked and is working on Clear Linux to stress improving desktop use as a goal when founding Solus.