Acadix Software

Auto-admin
Desktop-installer
SPCM HPC Cluster Management
Lightweight Portable Job Scheduler
Biostar-tools Metaport
Another Programmer's Editor
Diskimage Tools
Personal Github Site
Auer Lab Github Site

FreeBSD as a Desktop System

What's the "Best" Desktop Operating System?

There's no shortage of rhetoric about which operating system is "best". You'll often see claims like "FreeBSD is a better server and Linux is a better desktop". All such assertions are inherently absurd because the terms "server" and "desktop" mean completely different things to different users, depending on their specific needs.

"Server" could mean a web server running open source software, in which case FreeBSD would be a fabulous choice with its unparalleled reliability and network performance. It could also be providing a service requiring a commercial software back-end, in which case you might be better off with a Mac, RHEL, or Windows server.

"Desktop" could mean a laptop used for web browsing and school work by a student with little interest in learning Unix. For such people, a GhostBSD, Mac or Ubuntu system might be the easiest option.

It could also mean a high-end workstation for a Unix-savvy scientist who benefits greatly from ZFS file system features, such as compression, and easy deployment of the latest software via FreeBSD ports. Using FreeBSD and desktop-installer, a bioinformatician who needs to run an RNA-Seq analysis could go from a blank hard disk to a functioning desktop workstation ready to process their data in less than an hour:

  1. Install FreeBSD, selecting ZFS file system: 5 - 10 minutes
  2. Run "pkg install -y desktop-installer" (a few seconds)
  3. Run "desktop-installer" and choose a lightweight desktop environment such as Lumina, LXQT, or XFCE (about half an hour if all goes well and you have a fast Internet connection)
  4. Run "pkg install -y rna-seq" (a few minutes)

Don't rely on other people's opinions, especially those who haven't asked you a single question about your specific needs or those who evidently have bizarre emotional attachments to their favorite software. The only way to really know what's best for your needs is to see for yourself. Fortunately, it's pretty easy to do these days. We're very lucky to live in a world where we can try out a wide variety operating systems for free.

The best desktop operating system for you depends only on your needs. Be sure to fully understand your needs and objectively select the operating system that best serves you.

What FreeBSD Offers

  • Probably the foremost reason for choosing FreeBSD is its renowned performance and reliability. I've personally worked with a wide variety of Unix systems since the 1980s, beginning with DEC VAX systems running BSD and Ultrix, followed by DEC Alpha (also BSD and Ultrix), Sun Sparc (SunOS/Solaris), MIPS, SCO OpenServer and Unixware, and Coherent. Since the mid-1990s I have been continuously running both BSD and Linux systems. None of the systems I've used has matched the reliability of FreeBSD.

    To clarify, FreeBSD is a set-and-forget system. Once properly configured, it will likely run indefinitely without crashing or freezing during normal use. Unlike many other systems, FreeBSD generally stays on its feet under the most extreme loads (though performance will suffer like any overloaded system) and almost always recovers on its own without requiring a reboot. I've seen FreeBSD systems run well over a year without a reboot. (Warning: This should only be allowed in a highly secure environment. All computers connected to the Internet should immediately receive security updates as they become available, some of which will require a reboot.)

    This is not to say that FreeBSD doesn't have bugs. They just tend to be more superficial and typically don't cause system outages. Most problems with FreeBSD come in the form of regressions in upgrades to software that's not part of the FreeBSD base. For example, if you're using bleeding-edge packages on a FreeBSD system, you may occasionally run into new problems after upgrading Xorg, KDE, Firefox, or LibreOffice. Using the default quarterly snapshots will prevent most such issues.

    Most Unix systems show near-optimal performance on modern hardware for typical use cases, but can differ greatly in resource requirements. FreeBSD demands less memory than most popular POSIX systems, leaving more for your applications. It therefore performs well on old hardware or as a virtual machine guest. Have an old iMac no longer supported by Apple? It will probably run FreeBSD quite comfortably, especially with a lightweight desktop environment such as Lumina, LXQT, or XFCE. Or, try out FreeBSD under VirtualBox under your current operating system.

  • FreeBSD has strong support for most popular PC hardware, provided that it's been on the market long enough to develop open source drivers. Hardware vendors don't usually provide open source drivers for us. I've installed FreeBSD on hundreds of different server, desktop and laptop systems and have yet to find one that would not function as a desktop computer. Most video chips just work, but a few might require some trial-and-error with graphics drivers and settings. Only in rare cases have I had to fall back on VESA drivers, which perform more than adequately for most purposes on modern hardware. Virtually all PC motherboards, disks/SSDs, mice, keyboards, Ethernet chips, etc. will just work. Most WiFi chips should work as well, though some of the less common ones may not be supported, or may not provide optimal performance. This is easy to work around with a USB WiFi dongle, however. There are many good quality WiFi dongles supported by FreeBSD. I've personally used the Edimax EW-7811Un with good results on a ThinkPad x120e until the native WiFi driver matured in FreeBSD 12. Note that Linux did not have an open source driver for this WiFi chip at that time either. I've also used the Edimax on Apple hardware with the troublesome Broadcom WiFi chip sets that have firmware license issues. Under FreeBSD 12.2, the Edimax USB WiFi provides sustained throughput around 2.4 MB/s (scp transfer from a wired computer via a Netgear C3000-100NAS router). This is identical to the throughput of a newer MacBook running Big Sur and slightly below the performance of FreeBSD's Atheros WiFi driver on a Toshiba Satellite (2.8 MB/s).

  • The FreeBSD ports system offers over 32,000 software packages that can be installed in seconds to minutes as binary packages, or just as easily (but slowly) built from source with custom build options such as non-portable optimizations and optional software components. The Debian package collection is the only one I'm aware of that may actually offer more software. At the time of this writing, Wikipedia indicates that the Debian collection offers 51,000 packages. Direct comparison of package counts is not meaningful though. For example, Debian typically has separate packages for binaries/libraries, header files, and documentation of the same software, whereas a single FreeBSD port will typically install all of them. Hence the Debian package count is inflated relative to FreeBSD ports. Also, the Debian package system does not support easily building from source. Whereas a single FreeBSD port can sometimes generate several different build variations, the Debian collection would offer separate packages for each, generally all built with only portable optimizations.

    Suffice it to say that the vast majority of popular open source software can be easily installed on FreeBSD using the ports system. Firefox, Chromium, LibreOffice, Thunderbird and dozens of desktop environments / window managers can be installed in seconds.

  • The FreeBSD Handbook is an excellent source of nuts-and-bolts information for new users. The features and software available for FreeBSD are too vast to document in one place, but the handbook is a great place to start getting a pretty good idea about how FreeBSD works under-the-hood and what it can do for you.

What FreeBSD doesn't Offer

  • Probably the main barrier for inexperienced users is ease of setup. FreeBSD has historically been more popular as a server OS than a desktop system. While it has all the pieces needed to build a great desktop system, it does not offer easy point-and-click installation or systems management. There are numerous configuration steps and pitfalls in manually setting up a basic FreeBSD installation as a desktop system that will take time for a new user to discover and mitigate.

    If you're new to the Unix world and just want to learn the basics without investing a lot of time and effort, you may find a basic FreeBSD setup frustrating. You might be happier with something like GhostBSD, or an Apple Macintosh. Ubuntu Linux, A fully-configured desktop system is very complex and these systems hide most of that complexity from you, so you can focus on your work or learning Unix basics.

    GhostBSD is FreeBSD augmented with a graphical installer and graphical tools for managing software, users, and updates. Much like Ubuntu Linux, it makes installing and managing a Unix system about as easy as it can be.

    For those beyond the beginner stage, there is a tool in the FreeBSD ports collection called desktop-installer, which makes it easy to correctly configure a stock FreeBSD installation with any desktop environments or windows manager, usually in under an hour. After configuring your system with desktop-installer, the system is managed using traditional FreeBSD command-line tools.

    GhostBSD

    Desktop-installer

    Easier for those new to Unix More flexibility for those with a little experience
    Graphical installer and system management Text install and terminal-based auto-admin menu or command-line tools for management
    AMD64 (X86_64) only Any CPU architecture supported by FreeBSD
    MATE or XFCE Any desktop environment or windows manager in the FreeBSD ports collection
    ZFS file system only UFS or ZFS
    4 GiB RAM minimum for install (can reduce to 2 GiB after) 1 GiB RAM required for Lumina, LXDE, LXQT, XCFE. Less for simple Window managers like FluxBox of IceWM, more for Gnome or KDE.
  • There may be a lag in driver availability for the latest-and-greatest new hardware. This is true of all open-source software. Linux will often, but not always have driver support for new hardware before the BSD world. However, in my 25 years of running both platforms, I've found that when FreeBSD doesn't support a particular device, Linux usually doesn't either, or at least not very well. Whether you're running Linux, BSD, Illumos, or any other open-source OS, you might have an easier time using popular hardware that has been on the market for a year or so. FreeBSD is very fast and memory efficient, so you don't need the latest hardware to see great performance.

Tips

Suspend/Resume

FreeBSD supports "suspend to RAM" sleep mode on most popular hardware. This is most useful on laptops and should be triggered automatically by the lid switch if properly configured (desktop-installer will configure this for you). More often than not, it just works, but if you run into trouble, don't give up too easily. Most issues are caused by specific device drivers. A popular strategy for isolating the problem is to comment out all unnecessary drivers in /boot/loader.conf. Then reboot and try several suspend/resume cycles to see if it's working reliably. If so, re-enable one driver at a time and test through several cycles again to identify the culprit. More detailed information is available in the FreeBSD Handbook.