|
|
Subscribe / Log in / New account

The GhostBSD in the machine

By Joe Brockmeier
June 24, 2024

GhostBSD is a desktop-oriented operating system based on FreeBSD and the MATE Desktop Environment. The goal of the project is to lower the barrier to entry of using FreeBSD on a desktop or laptop system, and it largely succeeds at this. While it has a few rough edges that make it hard to recommend for the average desktop user, it is a fine choice for users who want a desktop with FreeBSD underpinnings such as the Z File System (ZFS), and the Ports (source) and Packages (binary) software collections.

GhostBSD has been haunting users for some time now. The first GhostBSD release (1.0) was announced in 2010, and was based on FreeBSD 8.0 and GNOME 2.28.2. The name is a portmanteau of "GNOME hosted by FreeBSD", even though the project switched to MATE in 2013. The project also offers an unofficial community spin of GhostBSD featuring the Xfce desktop. The most recent release, 24.04.1, was announced on May 20, and is based on FreeBSD 14.

Off to the races

Installation is almost dead simple. The installer walks users through setting up the preferred language, keyboard layout, time zone, disk partitioning, boot manager, then creates a user account with administrative privileges. Disk partitioning can be as simple as pointing the installer at the disk to use; in that case, GhostBSD will allocate a small partition for swap space and use the rest to create a ZFS pool with separate datasets for the root filesystem (/), /home, /usr, /usr/ports, /var, /var/log, and others. The installer also allows custom partitioning and the creation of complex setups with multiple pools and disks. Unfortunately, the installer does not provide a help menu or documentation to guide users with this. That is a recurring theme while using GhostBSD—its homegrown tools have no accompanying help menus or inline documentation.

The initial set of software for GhostBSD is minimal, but enough to get started. It provides the MATE defaults for file manager, text editor, terminal, PDF viewer, and so forth. Users also get Firefox, the VLC media player, Shotwell photo manager, and Evolution for email.

If the default software selection is not enough, GhostBSD provides an application called Software Station manage software without having to use the pkg command-line utility. It is a no-frills application that acts as a front-end for pkg. It lets users search the more than 34,000 available packages, or browse packages by one of the many categories, and install or remove packages. Unlike more full-featured desktop software managers, like GNOME Software or KDE Discover, Software Station does not provide screenshots, links to the web sites for the software, or much else.

Software Station does not act as a front-end for GhostBSD's Ports. If users want to install packages from source using Ports instead of the precompiled packages (.pkg files), they need to install the ports, src, and os-generic-userland-devtools packages.

Everything under the sun

Generally, installing from source should not be necessary. What Software Station lacks in sophistication, it makes up for in software selection. Most of the desktop software I would reach for on a Linux desktop is available on GhostBSD, such as LibreOffice, the Strawberry media player, Claws Mail, GNU Emacs, NeoVim, GIMP, and quite a bit more. Users can choose different desktop environments and window managers as well, of course. A Google Chrome package is available, but it is the Linux version of Google Chrome released on February 6 which is badly outdated at this point: stable Chrome releases happen roughly every six weeks. A native version of Chromium, however, is available and is up-to-date.

Updates and system upgrades are handled by the Update Station utility, but it is not entirely clear what the security-update policy is. GhostBSD founder Eric Turgeon said in a post on the FreeBSD forum that the GhostBSD ports tree is synced from FreeBSD's ports tree every week or two, and packages are built from the ports tree "about every two weeks unless there are CVEs in the default set of packages". Turgeon adds that he tries to stay on top of CVEs "as much as possible". GhostBSD users would be wise to subscribe to the FreeBSD security advisory notifications mailing list mentioned on the FreeBSD Security page, or at least keep a close eye on the advisories page.

When updates are available, Update Station displays all of the packages that are going to be installed or updated and offers to create a boot-environment backup as well. The boot environment is a ZFS snapshot of the root filesystem, which allows users to roll back to a known-good environment if an update goes awry. The snapshot does not cover the full system: the /home, /usr, /var directories (and others) are on their own mount points and not included as part of the boot-environment snapshot. In other words, a boot-environment snapshot serves as a rescue utility, it will not provide snapshots of user documents and such.

[GhostBSD Desktop]

The GhostBSD folks seem to like "Station" naming: there is also a Backup Station for manually creating boot environment snapshots, and a Station Tweak utility for configuring some of the desktop options such as the panel layout and whether window title-bar buttons are on the left or right side. The Backup Station utility is somewhat misnamed; it only allows users to create boot-environment snapshots. It does not expose other ZFS snapshotting capabilities, which is a pity. Those features are, of course, available at the command line but lack discoverability. It only took about five minutes with the documentation to be able to create snapshots and try some of the ZFS rollback features, but deeper understanding and mastery will clearly take a bit longer.

GhostBSD uses fish (the "friendly interactive shell", covered here in 2020) as its default shell, and Berkeley vi instead of Vim as the default editor. The fish shell's autocomplete features seem interesting, though the time I spent with GhostBSD is not nearly sufficient to fully explore its features or overcome 20-plus years of using GNU Bash. Further exploration is in order. Vim 9.1.404 is included in the default install, though it seems to be targeted for removal at some point. Likewise, Git is included but Turgeon says that most operating systems do not pre-install Git and has marked it for removal in a future release.

Hardware support with GhostBSD is somewhat lacking. For example, it required a system reboot for GhostBSD to discover an HDMI monitor the first time. Simply plugging the HDMI cable in was not sufficient. Bluetooth is, theoretically, supported—but it is not enabled by default. The documentation on the GhostBSD wiki points to a six-year-old forum post with a lengthy set of instructions to try to configure Bluetooth hardware. These are not insurmountable hurdles, but they are things that one would expect to simply work for a desktop-oriented system.

Another problem was that the MATE desktop panel would crash/disappear sometimes when installing new software. This happened, for example, while installing Google Chrome. (My best guess is something goes awry while adding new menu items for applications to the MATE application menu.) The panel can be resurrected with "mate-panel --replace &", but it does not lend confidence when a core component crashes frequently.

Live and let ghost

GhostBSD seems like a good option for those who already prefer FreeBSD and want a distribution that's customized for the desktop, or for users who want to get a first taste of FreeBSD. It is not as polished or full-featured as mainstream Linux desktop distributions, but it is user-friendly enough for experienced Linux and BSD users.

Intrigued users can find MATE and Xfce ISOs on the download page. The project also maintains a development tracker that provides insight into the features to expect and bugs that should be fixed in releases coming soon. The next release (24.07.1) seems to be expected in July.



to post comments

Worth the try?

Posted Jun 24, 2024 15:23 UTC (Mon) by marduk (subscriber, #3831) [Link] (2 responses)

I'm dying to try it, but it sounds scary.

Worth the try?

Posted Jun 24, 2024 19:47 UTC (Mon) by gfernandes (subscriber, #119910) [Link]

That's easy to fix... ;-)

Just install the GhostBSDer Station...

Worth the try?

Posted Jun 24, 2024 19:51 UTC (Mon) by jzb (editor, #7867) [Link]

Thank you for providing a pun that I missed. Surely there are more just waiting... In all seriousness, though, it was no harder than installing, say, Slackware. Great project for Linux users crossing over to the other side.

bash the fish

Posted Jun 24, 2024 16:00 UTC (Mon) by shironeko (subscriber, #159952) [Link] (6 responses)

I too has been stuck on bash for years, dabbling in zsh for a few years getting lost in the tinkering rabbit hole and subtle incompatibilities. In the last year I had this epiphany when I tried fish for the second time; fish's obtuse scripting syntax is a blessing not a curse, it makes interactive use a bless and ad-hoc fragile scripting uncomfortable.

I've been using fish for more than a year now and I still don't remember how to set a variable or how to write a loop and I'm more happy because of it. It snaps me out of it when I subconsciously try to write something complicated in a interactive session. It reminds me that I better write what I'm about to do into a file, so I can iterate on it with all my editing tools' help instead of using ctrl-r ctrl-w like a cave man, and it also help me re-evaluate if what I'm doing is better suited for another scripting language. If what I'm trying to do is truly not worth writing down, it only takes a split second to type bash and enter

bash the fish

Posted Jun 25, 2024 6:22 UTC (Tue) by marcH (subscriber, #57642) [Link] (3 responses)

That's exactly why I have a never bothered trying fish or zsh yet: I don't want to lose the very useful continuum between interactive use and not. I want to keep writing small functions and small for loop interactively and "promote" them to a "real" script if needed. The other way round, I want to keep the ability to copy or source small functions from a script into the current interactive shell for testing.

This is really one of the most important benefits of a good shell: seamless transition between the two.

PS: don't forget to use shellcheck. shellcheck saves lives.

bash the fish

Posted Jun 25, 2024 12:55 UTC (Tue) by shironeko (subscriber, #159952) [Link] (2 responses)

how do you have shellcheck for interactive shell?

bash the fish

Posted Jun 25, 2024 16:36 UTC (Tue) by marcH (subscriber, #57642) [Link] (1 responses)

I don't use shellcheck in interactive use, I don't think that's possible (or necessary)

bash the fish

Posted Jun 25, 2024 16:48 UTC (Tue) by shironeko (subscriber, #159952) [Link]

Right that kinda goes into what I'm talking about, by letting me do more of my ad-hoc scripts in a proper environment (in my case emacs) I get the benefit of all my tools. If I do it in the shell, I get none of that; doing it right in the shell feels fast and powerful, but it's usually slower overall if I need to iterate on it or very costly if I make a dumb mistake or my cat jumps on my keyboard at a inopportune moment.

bash the fish

Posted Jun 25, 2024 22:41 UTC (Tue) by ceplm (subscriber, #41334) [Link] (1 responses)

You know about `Alt-E`, don’t you?

bash the fish

Posted Jun 25, 2024 22:59 UTC (Tue) by shironeko (subscriber, #159952) [Link]

what's that?

ZFS requires barely any partitioning in simple cases

Posted Jun 25, 2024 6:34 UTC (Tue) by marcH (subscriber, #57642) [Link] (3 responses)

> The installer also allows custom partitioning and the creation of complex setups with multiple pools and disks. Unfortunately, the installer does not provide a help menu or documentation to guide users with this. That is a recurring theme while using GhostBSD—its homegrown tools have no accompanying help menus or inline documentation.

There are two relatively simple answers here:

1. ZFS documentation already exists, so no need for FreeBSD to copy/paste/diverge it.
2. ZFS (and hopefully: btrfs and other modern filesystems) killed the "art of partitioning". Volume managers are now built-in and not required anymore: good riddance!

Understanding 2. took me a surprisingly long time because it wasn't about learning a new approach: it was about UNlearning the obsolete approach. Unlearning always takes longer. It's also the sure sign of a significantly different and better way!

Unlearning takes longer because it's harder; it also takes longer because most documentation if focused on learning and rarely helps with unlearning. This is one of the rare ZFS documentation pages that really helped unlearning the old ways: https://illumos.org/books/zfs-admin/gbcik.html "ZFS and Traditional File System Differences".

ZFS requires barely any partitioning in simple cases

Posted Jun 25, 2024 11:52 UTC (Tue) by pizza (subscriber, #46) [Link] (2 responses)

> Understanding 2. took me a surprisingly long time because it wasn't about learning a new approach: it was about UNlearning the obsolete approach. Unlearning always takes longer. It's also the sure sign of a significantly different and better way!

Except of course that the system firmware [1] only understands partitions, and on top of that also has specific requirements for what can be booted from.

So we're still stuck understanding "classic" partitioning.

[1] UEFI or whatever

ZFS requires barely any partitioning in simple cases

Posted Jun 25, 2024 13:35 UTC (Tue) by eru (subscriber, #2753) [Link] (1 responses)

Except of course that the system firmware [1] only understands partitions

But in that case you should only need a minimum of two partitions: a small boot partition, and and second for everything else. Still simpler. But Ubuntu created five, when out of curiosity I let its installer use ZFS. Does an EFI system really need two boot partitions?

Device       Start       End   Sectors   Size Type
/dev/sda1     2048      4095      2048     1M BIOS boot
/dev/sda2     4096   1054719   1050624   513M EFI System
/dev/sda3  1054720   5249023   4194304     2G Linux swap
/dev/sda4  5249024   9443327   4194304     2G Solaris boot
/dev/sda5  9443328 976773134 967329807 461,3G Solaris root

ZFS requires barely any partitioning in simple cases

Posted Jun 25, 2024 15:07 UTC (Tue) by jem (subscriber, #24231) [Link]

>Does an EFI system really need two boot partitions?

No. The "BIOS Boot" partition is needed for GRUB, when booting a legacy BIOS (non-EFI) system with a disk that has been partitioned using a GUID Partition Table (GPT).

Originally the space on the disk immediately following the MBR was store the second stage of GRUB. This space was left unallocated by convention. This scheme is incompatible with GPT, so the solution was to create a separate partition, the BIOS Boot partition, for the second stage. This is actually an improvement compared to the old system, since there was no guarantee that the "no man's land" outside of any partition wasn't used for something else, or that it even existed.

Advantages of FreeBSD?

Posted Jun 25, 2024 14:51 UTC (Tue) by rsidd (subscriber, #2582) [Link]

> users who want a desktop with FreeBSD underpinnings such as the Z File System (ZFS), and the Ports (source) and Packages (binary) software collections.

I used to use FreeBSD about 20 years ago, and back then it was arguably better/faster than Linux. It would be good to say why one would want "FreeBSD underpinnings" today. I use ZFS on linux (yes, there are licence issues, but I am going with Ubuntu's lawyers), and if you really want ports/packages-style software there's gentoo.

I'm sure there are good reasons to use FreeBSD today, but it would be good to lay out what they are.

FreeBSD used to tout its collaborative development model as superior to Linux's centralized model, and also its combined kernel+userland as more coherent than Linux's mix of kernels, libc's, toolchains, etc. But today it sounds like the latter is more advantageous and is what has enabled things from Alpine Linux to Android.

Meanwhile FreeBSD's decentralized "get a commit bit, do what you want" model arguably led to the wireguard disaster (where the trusted guy with the commit bit was a convicted criminal for what seems like insane behaviour.) In linux multiple layers of scrutiny, funneling up to Linus himself, would have caught things like that.

This is not to bash FreeBSD. But it would be good to highlight genuine reasons to use it.


Copyright © 2024, Eklektix, Inc.
This article may be redistributed under the terms of the Creative Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds