Security

TrueOS Review: The Desktop Edition of FreeBSD

“A living corpse that exists for no good reason” — that’s roughly how FreeBSD is often described today. The hype around Linux and the GPL did its job, pushing what was once the most popular server OS to the margins. Nevertheless, FreeBSD is a very much alive, modern OS with plenty under the hood and excellent hardware support. And TrueOS is perhaps the most compelling proof of that.

TrueOS: Then

In 2005, when FreeBSD was still highly popular on servers, Kris Moore—then an active contributor to the project—set out to bring FreeBSD to a wider audience and began developing a desktop edition of the OS.

It’s not that FreeBSD wasn’t suitable for desktops—it has always handled that role well, and for a typical user it was hardly different from any Linux distribution. The problem was the fairly high barrier to entry. You had to install it using a rather clunky text-based, pseudo-graphical installer and then manually turn it into a full-fledged desktop environment.

So the first thing Kris Moore did was build a simple graphical installer that deployed a fully ready-to-use OS with the KDE desktop and a set of everyday applications. A bit later he added GUI configuration tools to PC-BSD (as TrueOS was called then) so you didn’t need to touch the terminal, and introduced a special self-contained package format called PBI. You could download a package to your desktop and install it with a single click. All dependencies were bundled, and the application lived in its own directory—much like on macOS and Windows.

PBI package installer
PBI package installer

PC-BSD proved so good that OSWeekly named it the most beginner-friendly OS, and iXsystems—specializing in servers and FreeBSD-powered NAS—quickly took both Chris and the project under its wing.

A lot has changed since then. Linux has become the de facto standard, FreeBSD has lost a significant share of the server market, and PC-BSD was renamed TrueOS. But can it still compete with Linux on the desktop today?

TrueOS Today

Unlike PC-BSD as it existed up until 2016, TrueOS is a rolling-release FreeBSD distribution. In other words, TrueOS doesn’t have discrete releases; the OS evolves continuously, with weekly updates and new installation images published every month.

At the time of writing, the latest TrueOS image was TrueOS-2017-06-01. It’s about 2.5 GB and includes both desktop and server editions; the latter simply omits the graphical environment.

The installation is pretty standard for any modern OS. The only noteworthy feature is the ability to save your installation choices to a USB stick and reuse them to install on another machine. Overall, it’s very straightforward: a few clicks on Next and a reboot.

Installation
Installation

On first boot, TrueOS launches a setup wizard that offers to install Nvidia/VMware/VirtualBox drivers (Intel and AMD drivers are included), choose the time zone and hostname, set the root password, create a new user, and enable SSH access, IPv6 support, Realtek wireless network cards, and a few other options.

Selecting a graphics driver
Selecting a graphics driver

It’s worth noting that boot speed is unimpressive. It takes significantly longer than modern distributions based on systemd or Upstart. The reason is simple: TrueOS uses OpenRC, developed by the Gentoo team, for initialization. OpenRC is far more capable than FreeBSD’s stock init system, but it also suffers from notable performance issues due to its extensive use of shell scripts and the lack of parallel service startup (the latter is technically supported, but disabled by default because of bugs).

Desktop

After the initial setup, the Lumina desktop appears. Built by the TrueOS developers as a successor to KDE, Lumina is fast and simple, but still rough around the edges. Essentially, it’s just a panel at the bottom with a Start button, system tray, and clock, plus a handful of configuration utilities and apps, including the Insight file manager, a search tool, and a screenshot utility. Lumina doesn’t include its own window manager, so TrueOS uses Fluxbox for that role, and PCDM as the display (login) manager.

Lumina
Lumina

Like KDE, Lumina is built on the Qt framework, but it has far fewer dependencies and isn’t tied to features that only exist on Linux desktops (systemd, sysfs, D-Bus, PolicyKit). It’s similar to LXDE—a lightweight environment that runs equally well on powerful hardware and on single-board systems like the Raspberry Pi. In fact, there’s a TrueOS build for the Raspi available here.

File Manager and Settings
File Manager and Settings

When it comes to the interface, Lumina is, frankly, somewhat ugly. Developer Ken Moore (Ken Moore) clearly aimed for today’s popular flat design, but there are a ton of missteps—everything from inconsistent line weights in monochrome icons and scrollbars to basics like aligning UI elements and the use of completely out-of-place gradients. On top of that, Lumina’s icon set doesn’t even cover the preinstalled apps, so some use the “house” black-and-white icons while others fall back to the standard ones.

Fortunately, the TrueOS repository offers desktop environments to suit every taste, including KDE, Xfce, MATE, GNOME, and more.

MATE desktop
MATE desktop

Updates and Packages

You can switch desktop environments and install other software using the native graphical AppCafe utility. It’s a simple viewer for installed applications and a tool for installing packages from the repository. The packages themselves are distributed in FreeBSD’s standard TXZ format and are installed into system directories, rather than into separate dedicated directories as in the early days of PC-BSD.

Installing software
Installing software

You can also use FreeBSD’s standard pkg command to install software, but there are two caveats. First, TrueOS uses its own package repository—actually two of them: stable and unstable. This lets you choose between cutting-edge features and reliability.

Secondly—and this is far more important—TrueOS lacks the “base system” concept found in the other BSDs. In other words, the OS isn’t split into a monolithic BSD base delivered as a single unit and updated with a dedicated tool (freebsd-update in FreeBSD) versus packages installed on top of it. Instead, the entire OS is made up of individual packages, much like a typical Linux distribution.

Updating TrueOS
Updating TrueOS

TrueOS ensures system integrity during updates. Technically, the installer can’t leave the OS in an inconsistent state by updating only a subset of packages, nor can it render the system unusable even if the developers introduce a bug that would otherwise break the OS.

This is possible thanks to ZFS. Before updating the base packages, TrueOS creates a new filesystem snapshot, applies the update to it, and sets it as the default boot environment. The next boot uses that snapshot, and if it fails, you can select a previous one from the Select Boot Environment menu. By default there can be up to five such snapshots (you can increase this to ten).

On top of that, you can create a new snapshot at any time using the SysAdm GUI or the command beadm create NAME. There are tons of use cases. The simplest is experimenting with the system: just take a snapshot and do whatever you want without worrying about breaking anything. Need to update a server? No problem—take a snapshot before making changes and roll back if something goes wrong.

Snapshots aren’t the only ZFS feature TrueOS uses. It also supports full-disk encryption and data compression.

Configuration Tools

The SysAdm utility, which lets you create boot environments (snapshots), actually does much more. In TrueOS it serves as a central control hub for everything, including AppCafe. It includes an update manager, a firewall manager, a services (daemon) manager for controlling what starts at boot, process and user managers, and even a mouse configuration interface.

SysAdm
SysAdm

Broadly speaking, SysAdm is a system administration tool that first appeared in the server edition of the distribution. It lets you manage not only the local host but also remote machines, and most of its features are geared toward server management. Notably, it includes the Life Preserver utility for managing ZFS. With it, you can create snapshots (non-boot snapshots) and set up automatic replication to a remote system for backups.

Managing bootable snapshots
Managing bootable snapshots

SysAdm also supports a feature called PersonaCrypt. It lets you move a user’s home directory onto a USB flash drive formatted with ZFS and encrypted using the built-in FreeBSD GELI subsystem or PEFS. You can carry that drive with you and switch between different workstations—or, for example, take it on a flight to the United States, where your laptop might be subject to inspection.

Task Manager
Task Manager

To be or not to be?

TrueOS is definitely an interesting OS. From an architectural standpoint it’s almost immaculate: ZFS with multiple boot environments and encryption, strong data integrity guarantees, SysAdm for managing local or remote systems, and a FreeBSD base with lots of niceties like a modular network stack and modular I/O subsystem—all of that works in TrueOS’s favor. It really makes you want to install it on every machine you own.

When it comes to desktop capabilities, things aren’t so clear-cut. On the plus side, FreeBSD has excellent hardware support; I’ve never run into any issues. It detects plugged-in USB drives, mice, keyboards, and even much more exotic devices without a hitch. Any FreeBSD-based system is a pleasure to use—far more thoughtfully designed and consistent than Linux. Everything is where you expect it to be and works the way you’d expect.

On the other hand, the Lumina desktop is a non-starter—you’ll want to replace it. You’ll also likely run into compatibility issues when using TrueOS. You can, of course, run the Linux-only Skype: the Linux compatibility layer in TrueOS is enabled by default, and Skype is even in the standard repo. But plenty of software is so tightly coupled to Linux that it won’t run even with the compatibility layer. For example, there’s no Steam client here.

And don’t forget: while FreeBSD’s hardware support is solid, it still doesn’t match Linux. As for obscure off‑brand devices that only ship Linux drivers, you can pretty much forget about them. Otherwise, TrueOS is a perfectly viable choice.

it? Share: