Project Trident 20.02Late in 2019 the Project Trident team announced they would be moving their operating system from its existing TrueOS base over to Void. This was an unusual move as the two bases are not only quite different in the tools they use, but also in the kernels and basic userland packages they use. TrueOS is itself based on FreeBSD while Void is an independent Linux distribution.
When Project Trident first published a development snapshot of its new Void-based distribution, I gave it a try. At the time it was still very much in the early stages, more of a proof-of-concept than a functioning desktop operating system. Then, about two months later, I gave Void's latest install media a try and, while I very much appreciated aspects of the distribution's design, it had some significant issues which prevent me from wanting to use it on a regular basis.
Now Project Trident has published its first stable release based on Void and I was curious to see what the experience would be like. Trident aims to take its parent (Void) and make it easy to set up and offers a friendly desktop option with ZFS support on top of the base. I wanted to see if Trident could improve upon Void's foundation and perhaps address some of the implementation issues I had when I tried Void earlier this year.
One key difference I noticed right away was that Void provides many installation discs. There are images for different CPU architectures, different C libraries, and different desktop editions. Picking the right media is akin to an archaeological dig through the various options. Trident provides just one ISO file for 64-bit (x86_64) computers. This disc acts as a net-install platform that allows us to install one of four pre-selected groups of software packages. This effectively gives Trident four editions:
Void (just the basic Void distribution with ZFS as the root filesystem)
Server (Void's base system, ZFS, and some command line tools),
Lite Desktop (Void's base, ZFS, and a minimal install of the Lumina desktop)
Full Desktop (Void's base, ZFS, Lumina, plus some common desktop applications).
The install media is 523MB in size and booting from it brings up a series of text-based menus. The first screen asks us to scan for active network devices. If a wireless network card is detected the installer will give us the option of connecting to a wi-fi network. This works, but is a little unfriendly. The password prompt does not show characters or even stand-in symbols (like a series of *) while we type the wi-fi password. It is not ideal if we have a long password on the network. I also found that once I had connected to a network, the installer did not recognize the connection until I told it to rescan for available networks. Otherwise it indicates the computer is still off-line.
Next we are asked to select which group of packages we want, "Master" or "20.02". The former appears to be Trident's development branch and so I went with the 20.02 option. Then I was warned that Trident would work better if it was set up in UEFI mode instead of Legacy BIOS mode. The reason for this was not given. However, in an ironic twist, I found Trident was unable to boot when run in UEFI mode, it could only start in Legacy BIOS mode, making the recommendation moot.
The installer next asks which disk it should use. We need to be careful here as Trident will take over the entire disk, setting it up for use with ZFS. We cannot use free space or a spare partition. We are then asked how much swap space we would like to use, with sizes varying from "none" up to 32GB. We are next asked whether we would like to use packages built against glibc or musl, the two C libraries Void supports. I opted for glibc.
The installer asks us to make up a root password and a name for our ZFS pool. Then we pick which edition (Void, Server, Lite, or Full) to install. I went with Full since I planned to run Trident as a desktop system. We then make up a username and password for ourselves. Our user's password must be at least eight characters long, though there is no such requirement for the root password. I was curious about this and the reason is discussed on the Trident website: "The user password must be a minimum of 8 characters due to the ZFS encryption key length requirement. Modifying a user password to be less than 8 characters later on will break the user account!"
The installer copies its packages to the hard drive, builds the ZFS module from source code, and then offers to reboot the machine. I found the process, while cumbersome at times, ultimately worked.
My freshly installed copy of Trident booted to a graphical login screen where we can sign into the Lumina desktop. The default layout of Lumina places the panel at the bottom of the screen with an application menu in the bottom-left corner and the system tray in the bottom-right. A task switcher, which groups similar windows, sits in the middle. Lumina is set up with a dark theme which I found pleasant. There are icons on the desktop for accessing desktop and theme settings, launching the Firefox browser, opening the Trojita e-mail client, and launching the VLC media player.
Project Trident 20.02 -- An alternative application menu (full image size: 795kB, resolution: 1280x1024 pixels)
While the desktop was slow to load at first, once it was up and running the interface was pleasantly responsive and ran smoothly. I found the default application menu to be small on my screen and a bit awkward to navigate so I swapped it out with an alternative, tree-style menu. These and other widget changes can be handled in the Panels module in the settings panel. I also swapped out the task switcher for one that does not group families of open windows. Apart from these little adjustments, I liked Lumina and the way it was set up. It is a very flexible, mid-weight desktop environment which uses Fluxbox as its window manager, and I found it generally worked quite well.
I began by experimenting with Trident in a VirtualBox virtual machine. When I had tried this with Trident's Alpha snapshot a few months ago, I could not get the desktop environment to work. This time Lumina started up and worked smoothly. The default screen resolution was low, but this could easily be adjusted in the settings panel. Otherwise, Trident worked very well in the virtual environment this time.
When running on a physical workstation, Trident gave a similarly good performance. The system was responsive, sound and networking worked (unlike plain Void where the distribution was unable to produce audio output), and my wireless card was detected.
A fresh install of Trident used about 450MB of RAM when signed into the Lumina desktop and a Full Desktop installation used about 2.1GB of disk space. Both of these statistics are lower than the average desktop distribution, though slightly higher than plain Void running the Xfce desktop.
The Full Desktop install of Trident sets up a fairly minimal desktop environment with a handful of graphical utilities. The Firefox web browser and LibreOffice are installed for us. The Trojita e-mail client and a desktop client for Telegram are installed. The Insight file manager and Lumina's image viewer are installed too. The VLC media player and a full range of codecs are available out of the box. While I could play local audio and video files, as well a YouTube videos, I found the media keys on my keyboard did not function. We can manually set up short-cuts for these keys.
Behind the scenes Trident uses Void's runit init software and version 5.4.19 of the Linux kernel. (The kernel was updated during my trial to 5.4.20).
I found the first user we create has access to sudo to perform administrative functions. Additional users I added to the system afterwards could not use sudo. I also found the first user is special in that it has its own ZFS sub-volume which can be handy for making snapshots. Other users do not have their own sub-volume, at least not automatically, but the /home directory is on its own sub-volume and we can snapshot it when multiple users exist on the system.
Trident uses ZFS as its root filesystem, which supports snapshots, multi-device volumes, deduplication, and automated data checksums. These are all handy features and I appreciated having them. I had hoped that Trident might include support for boot environments, the way FreeBSD and openSUSE do. However, boot environments do not seem to be available yet and I was unable to find tools for managing boot environments in the default software repositories. Hopefully this feature will be added later as it would make upgrading this rolling release platform virtually bullet-proof.
As far as I can tell, Trident ships with no graphical package front-end or update manager. Instead we are given the XBPS command line tools, specifically xbps-query, xbps-install, and xbps-remove to find, install, and remove software. These tools need to be run as root, or using the sudo prefix.
XBPS is fast, sometimes terse, and has an unusual syntax for some operations. It worked well for me and I encountered no problems while adding, upgrading and finding software. New desktop applications, once installed, had their launcher added to the Lumina desktop. We can also use XBPS to add extra repositories as known community repositories can be installed as packages.
During my trial there were four packages made available for updating, totalling about 100MB in size. These were all downloaded and applied cleanly. One package update was for the Linux kernel which, in turn, meant the upgrade process needed to rebuild the ZFS add-on module. This worked well, but took several minutes, greatly slowing down XBPS's typical high performance.
Comparison to Void
While using Trident, I regularly found myself comparing it to plain Void, which I also used recently. Some key differences stood out right away. For example, Trident has one install image which can be used to set up multiple editions. Void offers many install images, each for setting up one specific edition on a specific architecture. In a similar vein, Void offers many desktop environments at install time while Trident only offers one. However, we can install alternative desktops later. Unlike its parent, Trident does not offer a live desktop option.
Audio worked under Trident while I could not get any applications to produce sound under Void. However, a volume control in the system tray was still missing from Trident. A concern that was made bigger given that my media keys were not recognized by Lumina.
Where Void ships with vanilla, bland-looking desktops, Trident offers a customized Lumina experience with a crisp, dark theme. I very much appreciated the visual style of Trident.
When I was using Void, after the first wave up package upgrades, the shutdown & reboot options in the Xfce menu no longer worked. On Trident these options were always available through Lumina's Leave menu.
I appreciate Trident makes ZFS available as it is a powerful filesystem. Void does not offer this same option. However, Void is much more flexible about which disks and partitions it uses while Trident requires one full disk to be wiped and used for its install.
Project Trident made a lot of progress very quickly between the time the Alpha snapshot of its new Void base was launched and when the stable release came out. The issues with the desktop not loading were fixed, I got sound working under Trident where it did not under Void, and the ZFS implementation was smooth. I think Lumina, as a desktop, has progressed nicely in the past year or so since I last used it. The distribution's performance is strong and its resource footprint relatively small. For someone who is interested in either ZFS on Linux or rolling release distributions, Trident is a promising option.
However, there are several rough edges. The installer is not particularly friendly yet and forces the user to dedicate an entire disk to Trident. While the ZFS implementation is good, it appears to lack boot environments which would be an excellent feature to incorporate, especially with Void's rolling upgrade approach. I also think Trident's goal of being a friendly layer on top of Void would be helped a lot by adding a graphical package manager as XBPS's syntax is a little unusual at times.
At this point Trident's Void-based distribution is in its early stages. It is a good first attempt, though there are still a few pieces that can be improved and polished. I'm hopeful that, in six months or a year, Trident will have progressed to a point where I feel comfortable recommending and using it in the long-term. For now I think it is an interesting distribution to try, as it showcases several unusual technologies, but I'm not sure it is ready to be used as a day-to-day operating system, unless the user is comfortable working a lot with the command line and working around a few issues.
* * * * *
Hardware used in this review
My physical test equipment for this review was a desktop HP Pavilon p6 Series with the following specifications: