Enlarge /. If you're interested in the BSD experience but want an easier experience right on the desktop, GhostBSD is for you. This screenshot shows the live desktop and graphical installation environment of GhostBSD.
When I started working on the FreeBSD 12.1 RELEASE review last week, it didn't take me long to find out that the desktop part wasn't running very smoothly.
I think it is important for curious BSD users to know easier and gentler alternatives. So I took a look around and chose GhostBSD to do a review.
GhostBSD is based on TrueOS, which is itself derived from FreeBSD Stable. It was originally a Canadian distribution, but – like most successful distributions – it has crossed its country of origin and can now be viewed worldwide. Significant GhostBSD development is currently taking place in Canada, Italy, Germany and the United States.
The history of desktop-oriented BSD distributions is turbulent. Kris Moore's PC-BSD has been the point of contact for "I want BSD, but I also want a ready-to-use desktop." Finally, ixSystems – home to the FreeNAS storage distribution and Moore as Vice President of Engineering for – relied heavily on the server-side capabilities developed in PC-BSD.
IxSystems' need to establish PC-BSD without the associated desktop led to a renaming and branching. The basics of PC-BSD became TrueOS, and the desktop-friendly distribution, now based on TrueOS, became Project Trident.
This did not last long. A year later, Project Trident generally expressed dissatisfaction with TrueOS and BSD – mostly due to hardware support or lack of support. In January 2020, Trident relied on Void Linux, which its developers rated as "the most BSD-like" of the potential Linux upstream distributions they were investigating.
Project Trident's departure for more Linux-y waters left several potential competitors for a desktop-focused BSD distribution. These include FuryBSD, MidnightBSD, DesktopBSD and GhostBSD.
I have tested PC-BSD fairly extensively in the past, but I have no history with any of the current desktop BSD options. I chose GhostBSD for a first look, simply because of its importance in Google search results for "Desktop BSD Distribution".
Live installation environment
GhostBSD starts with a nice BSD-like ASCII splash and menu.
In the next menu, you can select a GPU video driver configuration. We are in a VM, so I chose vesa here.
After selecting vesa video, I was on a fully functional live desktop in two seconds or less.
The GhostBSD installation process is a fairly radical departure from FreeBSDs, although the underlying roots are still there. After the standard setting or selection of the multi-user start, the user is shown an ncurses ASCII menu, which enables the configuration of X (the graphical display server).
It's a bit of a shame that the installer cannot yet automatically detect the graphics environment like typical Linux installers do. To be fair, manual selection could also make working for slightly shaky hardware easier – the option to fall back on simple Vesa mode will eventually stare you in the face in case you try and fail a direct Intel / AMD / Nvidia driver should .
I'm doing an installation in a virtual machine, so I chose vesa. Two seconds or less after pressing Enter, a fully functional MATE-based live desktop was operational, with a link to the installation script prominently placed on its desktop. I didn't mess around on the live desktop – I immediately double-clicked the installer.
Like FreeBSD, the GhostBSD installer gives you the ability to root ZFS – including multi-disk topologies.
GhostBSD does not offer a fake "raid10 vdev". I initially selected a single mirror – I can add my second two hard drives to the pool after installation.
GhostBSD does not pretend that a real user account is "optional" – we need to create an account, and the process is short and sweet.
After hard drive configuration and user setup are complete, we can get started!
GhostBSD missed a small leak here – after the installation is complete, we are not prompted to restart. It just brings us back to the desktop.
The installation process of GhostBSD is much easier than that of FreeBSD. After double-clicking on the installation program, you will be asked to select a hard disk configuration. As with FreeBSD, we offer ZFS root setup, including a multi-disk topology.
For some reason the mouse stopped responding in this menu and was very unpredictable and required considerable patience. This is probably an artifact of the VM installation. I suspect that it would not have been a problem with bare metal.
The options I was given here were a little different from FreeBSD's. Instead of telling me white lies about what a vdev is, GhostBSD asked me to choose a "pool type". The available options were Single Disk, Two Disk Mirror, RAIDz1 with three hard drives (similar to RAID5 – a stripe with single parity), RAIDz2 with four or five hard drives (similar to RAID6 – a stripe with double parity) or "2+ Disk Stripe ". ""
"Force ZFS 4K block size" is an optional checkbox here, and I made sure it was selected. My hard drives are hard drives in extended format (4 KB sector size). So if ZFS is installed with 512 byte sectors, performance will be poor. Unfortunately, it doesn't seem as if the checkbox setting was actually followed – more on that later.
Although I wanted to have a pool of mirrors at some point, a mirror with two panels was fine for the moment. I chose a single mirror with two hard drives, with the plan to add my remaining two hard drives as another mirror vdev after the installation is complete.
After completing the hard drive configuration, GhostBSD asked me to create an account. This was not presented as an "optional" process and the process was not pulled out. Hostname, friendly username, real username, password and default shell are configured on a single screen along with a password strength ID. The standard bowl offered was fish – I don't know any fish, but I left it unchanged to achieve the normal out-of-box experience.
Like almost every password strength identifier, that on the GhostBSD user setup screen was pretty useless – it informed me that "Password1!" was a strong password. Well.
After both the computer and I were named and a nice "secure" password entered, GhostBSD started the installation. The installation didn't take long.
Although this was generally a very simple, simple, and user-friendly setup, the GhostBSD installer left a little note in the end. After the installer was finished, I was simply put back on the desktop without offering a restart – and without letting myself know that I had to restart to get into my freshly installed system.
This is unlikely to upset many people who are actually interested in trying a BSD – but it's a simple paper cut that can be fixed.
A new start takes you to a new MATE environment. Although … something is missing. Hmm –
I installed Firefox with pkg in the terminal, but it didn't appear on the desktop – and I still hadn't figured out what was missing. So I searched for it in / usr / local / bin.
After confirming where Firefox was, I right-clicked an empty space on the desktop to create a launcher for it.
Ta-da! We have a launcher for Firefox on the desktop that works – just like Firefox.
The first start in the new GhostBSD system was a bit mixed. GhostBSD started quickly and came straight to the desktop. The applications also opened immediately, with no FreeBSD feeling delayed or sluggish.
The question was, where were the application launches? I haven't noticed it yet, but the top MATE panel crashed, leaving an empty black bar. The blank black box blended in well enough with the standard background, so for the first few minutes I was confused that the system was just a little primitive.
When I right-clicked on an empty area on the desktop, the context menu offered me the option Open in Terminal. Although I used fish, an unknown shell, it didn't bother me – the wipe key wasn't a beeping tilde machine like FreeBSD's version of sh, and the basic functionality you'd expect from a shell was intact.
From here I became su root (sudo is also preinstalled and available in GhostBSD). Once you stumbled across the syntax – pkg install, not pkg add! -, the installation of Firefox from the command line went exactly as it should, and quickly. GhostBSD uses its own repository – http: //pkg.us.ghostbsd.org/stable was preconfigured for me – and there was enough bandwidth available.
There was no Firefox icon on the desktop after pkg ended its work, and I still hadn't got used to the crashed MATE panel, so I right-clicked the desktop again. Creating launcher is another context menu option, so I did that, navigated to / usr / local / bin and presto – there was a shiny new Firefox icon on the desktop that did exactly what it should.
The Firefox application started very quickly, contrary to my experience with FreeBSD and Gnome3. In fact, Firefox started slightly faster on GhostBSD than on my host operating system, Ubuntu 19.10.
Find the missing bits
Finally I realized why something was missing – the blank black bar at the top of the desktop was a crashed control panel.
Firefox was easy to use after installing pkg – it was in Applications within the crashed MATE panel, which I hadn't recognized.
I dive back into the terminal and add my second two hard drives to the pool. Unfortunately, I also find that GhostBSD has not kept its promise to use 4K sectors.
I was still frustrated with how primitive everything seemed, however snappy it was. Surely not everything had to be done by hand? And where were the system tools – a GUI-based package selection system, volume control, etc.?
Finally I spotted the small black area at the top of the desktop and right clicked it. This led to a new context menu, especially including a reset panel. Oh, hey, how about this – all my functions are missing!
When I reset the panel, it was clear what the procedure should look like here. A new user should be able to click the Applications menu, go online and find Firefox there. A single click opens Firefox from the control panel. A right click offers the possibility to create a new starter either on the desktop or in the upper area itself.
Missing tools such as system information, volume controls etc. lurked here too. GhostBSD suddenly felt much more functional – it only took one smart kick to get started.
After everything worked properly, I went back to the MATE terminal to add my remaining pair of disks. I previously checked ashift, the ZFS property that defines the minimum block size on disk. Unfortunately, although I made sure that the Force ZFS 4K block size option was checked during installation, Ashift was set to 9 – which means 2 ^ 9 or 512 byte sectors.
As snappy as GhostBSD has been so far, it would have been even better if it had used the correct hardware block size as I had asked for. Fortunately, the VM's underlying memory is a very fast solid-state pool, so skipping it didn't make things too painful.
Unfortunately, Ashift cannot be changed after it has been set. So I sighed, added a zpool tank level / dev / vtbd2 / dev / vtbd3 to put my remaining pair of virtual disks in the pool, and set off.
The problem with the size of the hard drive sector would be a much bigger disappointment in real life – and a bigger problem! – was, but it was not worth derailing a VM test.
A quick look at the GhostBSD Control Center
The GhostBSD Control Center provides links to administrative tasks such as printing, audio and software installation.
Software Station is GhostBSD's graphical package manager. It's functional, but primitive as a desktop app – we can't change the size of the oversized columns here.
The Software Station is divided into categories that FreeBSD veterans instantly recognize from the ports tree. We found gimp under Graphics, checked it, and clicked Apply to install it.
A progress bar that is far too inconspicuous shows us our progress in installing Gimp.
Most of the MATE Control Center from GhostBSD is very pleasant and modern. An unfortunate exception is Software Station, GhostBSD's GUI-based package management app.
I don't want to overdo Software Station's problems here – it works perfectly, although it's a bit primitive and could use a significant amount of developer love. In particular, resizing columns are urgently needed.
Software Station is divided into categories that experienced FreeBSD users can instantly recognize from the port tree. The information about each package is divided into fixed-width columns. The package name, version, and size columns are all significantly wider than required. As a result, very few package descriptions are visible without scrolling horizontally to the right.
The Package Name column is littered with names such as at-spi2-atk, eflite, py37-atspi, etc. These names must be short for command line management, but they don't mean much to a new user – or to many established users. If you scroll horizontally to the right to read the friendly package description, all elements except the version number and size will be hidden.
To be fair, we are in a VM here – and the resolution of 1024 x 768 would be absurdly low. Without scrolling on a full 1080p desktop, much more data would be visible. On the other hand, the 1366 x 768 display of an affordable laptop would have been almost as narrow as this.
The GhostBSD Vesa driver did not make me choose a resolution higher than 1024 x 768. This would probably not be a problem with real hardware either – but it would also not have been a problem with a typical Linux VM.
GhostBSD is an absolutely sensible choice for a desktop distribution. It still lags behind most of its mainstream Linux counterparts in a place or two, but I haven't spotted any real show stoppers or WTFs.
There were no obvious performance issues, and GhostBSD may have been slightly faster than Ubuntu 19.10, the host operating system on which it was virtualized. Audio worked immediately and with Firefox installed, YouTube videos could be played well.
Google Chrome will still be a no-go under GhostBSD – at least without any real Herculean efforts. I looked for Chrome installation stories, but all I found was "You can't have that under BSD" responses. This doesn't matter for YouTube, but it is a major stumbling block for users who need Chrome plugins or streaming websites that depend on Chrome's proprietary features.
I liked the GhostBSD ZFS installation dialog much better than FreeBSD's – but I was deeply disappointed that the "Force ZFS 4K block size" checkbox was not taken into account. That would have been a major stumbling block and a source of performance problems with a real installation and real hardware.
Most hard drives truthfully state their own block size, and ZFS will take this into account – but some, like the Samsung Pro SSDs on my workstation, are messing around and claiming to have 512 byte sectors. This is a legacy of Windows XP that would cough up a hairball if a hard drive was presented with a hardware block size other than 512 bytes.
An experienced ZFS user could probably work around the block size problem. We haven't specifically tested this, but it should be relatively easy to pull a terminal after pool creation and before installation, destroy the pool created by GhostBSD, and replace it with a new one with the correct Ashift setting.
Without a special wish for BSD under the hood, it would be difficult for me to recommend GhostBSD instead of one of the most common Linux distributions. But that's a pretty high hurdle, and I would have no problem recommending GhostBSD to a user – even a new Unix-like operating system – who specifically wants a BSD-based desktop.
Most of the few warts I've found in GhostBSD are extremely repairable, and polishing is clearly important to the community and development team. I suspect that most of the problems I found in this review will be fixed in the next version.
- The GhostBSD installer is pleasant, efficient, and mostly modern
- The MATE environment is well developed and functional
- The environment feels quick and snappy, with no lag or sluggishness
- Switching from zero to the desktop is also possible for very new users
- As sophisticated as GhostBSD is, it still lags behind its mainstream Linux counterparts
- There is practically no support for proprietary user-oriented software such as Chrome
- A new user who doesn't yet have "BSD friends" will find it more difficult to find support
- Crashed MATE top panel at first start
- Wrong ZFS block size, despite the check box that should have corrected it
- Software Station is primitive and difficult to navigate by modern standards