Clear Linux 28210 Review

June 4, 2019, noon

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.

Review

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
  • frequent updates of at least one and up to two per day to incorporate upstream security upgrades and security patches as soon as they are available
  • proactive scanning of packages against repositories of Common Vulnerabilities and Exposures (CVEs) as published by NIST to ensure security patches are appled as soon as possible
  • minimized attack surface by removing legacy, unneeded, and redundant standards and software as well as those theat expose sensitive system information
  • software components are built with secure options, the kernel is signed and incorporates kernel features to mitigate memory based attacks and verify the integrity of storage devices
More on Clear Linux security features.
Performance
  • Optimizated throughout the OS software stack.
  • Performance tuned for Intel Architecture.
Customization/Mixer
  • Bundles provide a modular OS customized with software from Clear Linux update sources by function.
  • Provides the mixer to include custom packages from third parties or localy developed and maintained packages in update content.
Manageability
  • "Designed as a stateless OS so that the user is able to quickly and easily manage their custom configurations vs. system configurations."
  • "Lightweight, incremental, auto-updates so efficiently drive performance and security of the OS."
  • "Employs whole system updates to ensure all dependencies are resolved at build time ensuring no surprises at runtime."
Stateless
  • separates the OS configuration, system specific configuration, and the user data
Function Multi-Versioning
  • a compiler feature used to build Clear Linux software that optimizes code for specific processor architectures and available instruction sets
  • available to users for their C software development projects
Autoproxy
  • automatically applies the appropriate proxy needed for a connection
Telemetry
  • optional tool that "allows rapid detection and response to quality issues in the field"
  • destination of collected data can be specified by user
Design Features Highlighted on Clear Linux Website

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.

  • GNOME Software on Clear Linux 28210
    An Infographic on Clear Linux's Statelessness
    This graphic from the Clear Linux website shows that in the distribution achieves a stateless OS by separating user data, the OS, and the system configuration.
  • GNOME Software on Clear Linux 28210
    The Contents of the /etc Directory Soon After Installation
    This directory is very sparse compared to other Linux distributions. Note Even the /etc/fstab file is not created automatically during installation but must be manually created after installation.
  • GNOME Software on Clear Linux 28210
    The Clear Linux /etc Directory
    This directory is very sparse compared to other Linux distributions. Only the files with a modified date of 9 Mar are the ones installed by default.
  • GNOME Software on Clear Linux 28210
    The Solus /etc Directory
    As is typical there are many more directories and files in the Solus /etc directory.
Statelessness Is a Central Feature if Clear Linux's Design
The developers achieve this by isolating the OS from system and user configuration by essentially not using the /etc directory.

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.

Installation

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.

GNOME Shell Experience

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.

  • GNOME Software on Clear Linux 28210
    GNOME Tweaks Showing Some Pre-Installed Extensions
    One of the most popular GNOME Shell extensions, Dash to dock is pre-installed and enabled out-of-the-box.
  • GNOME Software on Clear Linux 28210
    GNOME Software Displaying Installable GNOME Shell Extensions
    These extensions don't come from the distribution's repositories, directly from extensions.gnome.org, as when using the GNOME Shell Integration browser add-on.
  • GNOME Software on Clear Linux 28210
    Searching for a System Monitor Extension in GNOME Software
    The System Monitor extension I always install when GNOME Shell wouldn't work, even when installed manually.
GNOME Shell Extensions
GNOME Shell extensions can be installed using GNOME Software from extensions.gnome.org or manually, but are not available in Clear Linux repos except the few included in the desktop bundle.
Clear Linux unlike many major distributions that feature GNOME as a desktop environment, doesn't make extensions available in its repositories. Extensions can't be installed using the GNOME Shell Browser Integration extension for browsers which allows installation directly from extensions.gnome.org because the software that integrates the browser extension with the system gnome-shell-chrome isn't available in Clear Linux. Clear Linux does however allow extensions to be installed using GNOME Software, the default GUI package manager for distributions that specialize in GNOME. Having mentioned GNOME Software I should note that, because of Cear Linux's design it can't be used to update the system or install native software (bundles) from its repositories. It can, however, install Flatpaks very well as well as install GNOME Shell extensions.
  • GNOME Software on Clear Linux 28210
  • GNOME Software on Clear Linux 28210
  • GNOME Software on Clear Linux 28210
  • GNOME Software on Clear Linux 28210
  • GNOME Software on Clear Linux 28210
  • GNOME Software on Clear Linux 28210
  • GNOME Software on Clear Linux 28210
  • GNOME Software on Clear Linux 28210
GNOME Software on Clear Linux
GNOME Software on Clear Linux can install Flatpacks from flathub, extensions from extensions.gnome.org, but not native system packages, which must be installed by the CLI software manager swupd.

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:

  • the inability to resize native GNOME application windows, while non-native application windows, such as those of Firefox and Atom could be resized
  • the inability to unlock some settings in GNOME Settings such as those for time and date

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.

Both SDDM and GDM Are Active
SDDM is the greeter that was presented when booting Clear Linux for this session even though it is disabled. Both SDDM and GDM are active.

Other issues I had with Clear Linux 28210 included:

  • the lack of software in the distribution's repositories. Some software I usually install but are not available include aria2, VirtualBox, and Visual Studio Code. I had to install the latter two using the upstream developers' generic installation methods, which don't provide the best experience compared to installing well maintained packages using the system package or software manager.
  • a very simplistic package manager, swupd that doesn't display download size or provide detailed information when searching for software, and in fact requires users to find information that would normally be given by the package manager, on the Clear Linux website. Even more serious is that the package manager provides nonsensical results when it can't find software that is the subject of a search.
    • GNOME Software on Clear Linux 28210
      A Search for "virtualbox" in the CLI Software and Update Manager
      The result lists the kde-frameworks5 bundle as the best result, which is installed, but doesn't include VirtualBox. Other searches list results that make even less sense.
    • GNOME Software on Clear Linux 28210
      A Search for "plasma" in the CLI Software and Update Manager
      In this case the bundle listed as the best result is the correct one for the desired software.
    • GNOME Software on Clear Linux 28210
      The Available Bundles list on the Clear Linux Website.
      This page lists available bundles with links to each bundle's definition at its github page.
    • GNOME Software on Clear Linux 28210
      The Available Bundles list on the Clear Linux Website.
      Bundles which are included in other bundles are also listed.
    • GNOME Software on Clear Linux 28210
      The performance-tools Bundle Definition at Github.
      The software listed in the bundle definition may be the underlying RPM packages that are used to compose the bundle.
    Searching for Available Software on Clear Linux
    Results given by the CLI software manager, swupd are not always the best. Users may also need to browse through the Available Bundles page at clearlinux.org.
  • it seems audio codecs aren't properly integrated, as I found an audio codec error when playing an mp4

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:

Recommendation

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.