DragonFly BSD 5.2.0DragonFly BSD is a operating system which began as a fork of FreeBSD and is now an independent project with its own documentation, special features, ports framework and package repository. One of the DragonFly features which stands out is the HAMMER file system. HAMMER is an advanced file system with features similar to those of Btrfs and ZFS.
The latest release of DragonFly is version 5.2.0. It includes fixes for the Meltdown and Spectre CPU bugs and improves graphics acceleration. It also introduces support for HAMMER2 (H2), a new, advanced file system with features similar to the original HAMMER. I will talk about H2 in more detail later.
DragonFly 5.2.0 is available for 64-bit x86 computers only and there are two separate download options for USB thumb drives and optical media. These two download options are about 260MB in size when downloaded in their compressed form. They expand to around 850MB when they are decompressed and written to media.
Booting from the project's media presents us with a text console where we can either login as the root user to access a shell or login with the username installer to start the installation process. DragonFly's installer uses a series of text-based menus to guide us through setting up the operating system on our hard drive.
The installer asks us if we are running DragonFly on a UEFI-enabled computer or a Legacy BIOS system. We are asked to select our target hard drive from a list and then choose which partition DragonFly should take over. Alternatively, we can assign an entire disk to DragonFly's usage. We are then asked if the operating system should run on the UFS, HAMMER or HAMMER2 file system and I chose HAMMER2. We can then tweak mount points and the sizes of each storage volume. DragonFly does support file system encryption if we want to make use of it.
There is a pause while the installer copies file to our hard drive and we are then asked to complete a handful of configuration steps. These include selecting our time zone, setting a password on the root account and setting up a network connection. We have the option of creating a regular user account for ourselves, but the installer warns us any password assigned to this account will be logged. We can alternatively wait until we are running the operating system to create additional accounts. With these steps completed we can reboot and start using our brand new copy of DragonFly BSD.
DragonFly boots to a text console where we can sign in as the root user and get to work customizing the operating system. By default DragonFly does not include many programs or features. We have access to the typical range of UNIX command line utilities, manual pages and the pkg package manager which DragonFly has in common with FreeBSD.
While the default environment is minimal, the DragonFly project offers a helpful handbook which guides new users through common tasks. In particular, I recommend reading the section on installing and managing third-party software using either pkg or the project's ports collection. Personally, one of my aims with this trial was to set up DragonFly to act as a desktop operating system and, for others who wish to do the same, I recommend the project's guide to setting up X and a window manager.
DragonFly BSD 5.2.0 -- The Lumina application menu (full image size: 1.1MB, resolution: 1024x768 pixels)
Following the instructions for enabling X worked as planned and provided me with a very minimal graphical window manager and a terminal emulator. However, my mouse failed to work. Adding the line moused_enable="YES" to my /etc/rc.conf file got my mouse pointer moving. Soon afterward I installed the Lumina desktop environment to get a more complete graphical interface. At first Lumina failed to start, reporting it was missing D-Bus functionality. This can be corrected by adding dbus_enable="YES" to the /etc/rc.conf file.
Lumina made for a pleasant, fairly minimal and very responsive desktop environment running on DragonFly. Lumina does not include many desktop applications, apart from a file manager, document viewer and settings panel. Additional software such as LibreOffice, Firefox and the VLC media player can be added to the system using the pkg package manager.
Apart from trying to use DragonFly as a desktop system (an experiment that mostly went well), my other reason for trying the project's latest release was to experiment with the HAMMER2 (H2) file system. H2 is an advanced file system with snapshots, deduplication and multiple device management. H2 is still relatively young and is just reaching the point of maturity where it is considered safe to use. For people interested in an overview of HAMMER and H2, there is a page dedicated to these file systems on the DragonFly website. There is also a manual page which talks about H2's features and command line options.
I learned H2 is expected to provide many of the same features as other advanced file systems, such as ZFS. The documentation on H2 is still a bit on the technical side and I feel its manual pages currently act as more of a quick reference than a complete guide to using the new file system. I also noted that while H2 is expected to offer features like snapshotting, deduplication and restoring files from old snapshots, some features are not yet complete. At one point I used H2's command line utility to create snapshots of my file system, but then could not find a way to restore files from the snapshots. The H2 manual page lists restoring files from snapshots as a "todo" item.
In short, H2 seems to be stable, fast and usable. However, it may still be missing some pieces and documentation that will be added on over time. H2 has been developed fairly quickly and I would guess these planned features will probably become available in the next year or so.
I ran DragonFly in two test environments and I found trying to get the operating system to boot on my physical desktop computer was the low point of my trial. I tried booting DragonFly in UEFI mode, in Legacy BIOS mode, and various combinations of safe mode with some features turned off. Each time the operating system failed to boot on my desktop computer.
I had better results trying to get DragonFly to run in a VirtualBox virtual machine. The system was quick to load and performed tasks quickly. The Lumina desktop, once I got it set up, was responsive and ran smoothly. The only problem I had in the VirtualBox environment was DragonFly was unable to integrate with my host operating system and unable to make full use of my screen resolution. I looked for VirtualBox guest modules which would work with DragonFly, but could not find any in the project's collection of third-party ports.
In its default configuration DragonFly used little RAM (13MB of active memory and 390MB of wired memory) and little disk space (530MB). Once Lumina was installed with the Fluxbox window manager, resource usage rose to 2.8GB of disk space and 315MB of active memory and 620MB of wired memory. When we consider that DragonFly was running the advanced H2 file system with the Lumina desktop, this puts DragonFly about on par with a Linux distribution running ZFS and a middle-weight desktop.
For the most part DragonFly did not throw any surprises my way. It presents itself as a minimal operating system that we can shape to fit our needs, much like other popular flavours of BSD or Arch Linux. The documentation was generally helpful in guiding me through setting up the system to complete my tasks. I was able to browse the web, write documents, take screen shots, edit images and watch videos, though I struggled to get audio working. Getting these features enabled took longer than it would on most Linux distributions or on a desktop-friendly BSD like GhostBSD, but I still ultimately got all the features I wanted.
The few surprises I did run into were mostly security related as DragonFly takes a strict stance on accessing certain features. For example, my regular user account could not use su to become the root user. I also found permission elevation programs such as sudo and doas were not included. I tried installing doas, but is failed to work due to missing PAM modules. Users who wish to be able to run su to gain root access need to add their user to the wheel group.
DragonFly BSD 5.2.0 -- Running the VLC multimedia player (full image size: 465kB, resolution: 1024x768 pixels)
Another security feature I ran into was DragonFly's version of secure shell cannot connect to remote systems that use passwords to authenticate. DragonFly assumes remote servers will use key-based authentication and blocks access to servers which do not use keys. We can change this by editing OpenSSH's configuration file and uncommenting the PasswordAuthentication variable.
My experience with DragonFly this week was a lot like my experiences with other members of the BSD family. The system is lightweight, provides lots of useful documentation and gives us a minimal platform from which to build our operating system. The system was stable, fast and provided me with most of the software I wanted. Apart from DragonFly not working with my desktop computer's hardware, I had an overall good experience with the operating system.
I had mixed feelings about H2. At this point the file system seems stable and can be used for most common tasks. However, the advanced features that make the future of H2 look so appealing, are not all in place yet. So it might be best to wait another year before switching over to H2 if you want to make the most of snapshots and other advanced file system options.
DragonFly is typically regarded as a server operating system, and that is where its strengths lie. However, this week I feel it performed well as a desktop platform too. It takes a little while to set up DragonFly as a desktop, but the documentation walks us through most of the process and I was able to do everything I would typically do on Linux desktop distribution.
* * * * *
Hardware used in this review
My physical test equipment for this review was a desktop HP Pavilon p6 Series with the following specifications: