Going With The Flow

Ken Moore and Joe Maloney - TrueOS Talk


So we had a change of plans during August's meeting. The good news was that we had a record turnout with quite a few new faces. The bad news was that our speaker Mark Sumter had car troubles and wasn't able to make it out. After sweating bullets for a couple of minutes, Ken Moore and Joe Maloney arrived and agreed to do their TrueOS talk which was originally scheduled for September's meeting. Despite the disadvantage of short notice and not having their slides with them, it was a fantastic presentation that lasted about 90 minutes. I took some notes for the benefit of anybody that was going to attend next month but wasn't present at our August meeting. I also wanted to let everybody know that Mark made it home safe and sound. He said he'll be able to do his ZFS talk at September's meeting. So here are some of the highlights of the new TrueOS. 


TrueOS logo

Target Audience

TrueOS is the new leaner meaner successor to PCBSD. PCBSD was based on the stable branch which unfortunately lead to some problems with supporting current hardware. This coupled with the fact that system developers didn't have a convenient standardized environment for day to day use, lead to this evolution. TrueOS is based on FreeBSD "CURRENT" and will effectively be a rolling release with no version number. This means system developers will no longer have to build everything from scratch, they can have a ready to go, lean build system that will run on their shiny new laptops. This will also make TrueOS a great fit for non developers as well. TrueOS has updated GPU drivers for intel chips. TrueOS graphics driver support is actually a little bit ahead of FreeBSD 11.0 right now since Kaby Lake support is ready and will be included in the next update of TrueOS. 

Rolling with the punches

Rolling release distributions seem to be great for having the latest versions of software, but often lead to having to do much smaller but more frequent maintenance fixes. TrueOS alleviates the pain of this "death by a million paper cuts" scenario with boot environments. TrueOS uses ZFS layouts which are organized similarly to how many people would use partitions. A user's Home directory as well as other parts of the underlying system are organized into data sets. The data set containing the data that a system update would affect, are what's called a boot environment. ZFS can take snapshots of the boot environment like any other ZFS data set. When doing an update on TrueOS, a fresh base system is installed into a new bootenvironment. If the update is broken for whatever reason, the user simply reboots and chooses the previous boot environment and boots into that. Once in the working system, the user can manage their boot environments and remove or clone them as they see fit.


Speaking of ZFS, Lumina's file manager has some neat ZFS integration, featuring a time slider to allow viewing the contents of directories within snapshots. Lumina is now the default desktop environment for TrueOS. It will be the only one included in the installer as well, which has the nice effect of making TrueOS' install image smaller than the old PCBSD netinstall image! This is possible because Lumina is a pure Qt5 environment. That means Qt libraries only, not KDE libs like most other desktop environments have done. Alternate desktop environment fans need not fret though, your favorites are still available via the pkg repositories and ports.


TrueOS has consolidated all the previous PCBSD utilities into one control panel. This control panel is basically a front end for their new sysadm utility. Their new sysadm utility is a smart system management utility. For the time being, sysadm aims to fit in where other tools like Ansible or Puppet would be overkill. Although it was mentioned that sysadm is built to scale, so there is certainly a potential there for using it in larger deployments. Unlike the aforementioned tools, sysadm does not make use of a database. It is simply a modular application that can parse and understand the default config files that are already on your system. If you were to change a config file by hand and then open sysadm, your changes would have been reflected. Conversely, if you were to make a change via sysadm and then open the config file, the changes would follow the same syntax that you would have had to follow if you had made the change manually..

Sysadm operates on a client server paradigm with communication happening via either web sockets or REST. The control panel in Lumina is effectively a sysadm client. The fact that it is built on top of pure Qt5 libraries means clients can be ported to any platform that Qt supports. That means Unix, Linux, Windows, MacOS, iOS, Android etc. There is also a public API available for anybody that wants to write their own client. The sysadm utility is also written in Qt/C++ and is designed to be easily extendable. If you needed integration with Ezjail for example, it can be done without too much work.


I've been waiting a long time to throw FreeBSD onto my Haswell Chromebook. Now it seems that TrueOS is going to be the first one to be installed. TrueOS promises to be an OS that not only gives me everything I've come to love about FreeBSD, but will give me an environment that will make it easier to contribute back. I'm very much looking forward to giving it a shot. I'm also looking forward to having Mark Sumter give his ZFS talk next meeting. I hope to see many people attend again. 

Special Thanks

Lastly, I want to thank Ken and Joe for stepping up to the plate and saving the day. When I arrived, I was sure I was looking at a disaster about to happen. Instead, I left with that feeling of having your "BSD battery recharged" (as Allan Jude might say) and that is exactly the point of having a BUG in the first place.