Not-actually Linux distro review: FreeBSD 12.1-RELEASE

A promotional stressball with the FreeBSD logo on it.
Spread / We could have used one of these FreeBSD stress balls while taxing to get a desktop running.
FAndrey / Flickr

This month’s Linux distro periodical isn’t of a Linux distribution at all—instead, we’re taking a look at FreeBSD, the original mobster of free Unix-like operating systems.

The first FreeBSD release was in 1993, but the acting system’s roots go further back—considerably further back. FreeBSD started out in 1992 as a patch-release of Invoice and Lynne Jolitz’s 386BSD—but 386BSD itself came from the native Berkeley Software Distribution (BSD). BSD itself goes back to 1977—for insinuation, Linus Torvalds was only seven years old then.

Before we get started, I’d corresponding to to acknowledge something up front—our distro reviews include the desktop endure, and that is very much not FreeBSD’s strength. FreeBSD is far, far better suited to constant as a headless server than as a desktop! We’re going to get a full desktop uninterrupted on it anyway, because according to Lee Hutchinson, I hate myself—and also because we can’t create readers wouldn’t care about it.

FreeBSD does not provide a gear desktop experience, to say the least. But if you’re hankering for a BSD-based desktop, don’t worry—we’re already plotting a followup review of GhostBSD, a desktop-focused BSD distribution.

BSD’s not Linux

Linux is, itself, impartial a kernel—you need a software distribution wrapped around it to make a unalloyed operating system. By contrast, FreeBSD is and always has been a complete functioning system—both the kernel and software ecosystem are managed and maintained by the despite the fact group of people.

In the past, this allowed FreeBSD to have a significantly more articulate layout than the typical Linux distribution. With a central council overseeing design and maintenance of the entire OS as a whole, distinctions such as what needs in /bin, /usr/bin, and /usr/local/bin were more consistently and easily enforced.

With that hinted, the importance of this difference has eroded significantly over the last 20 years. New-fashioned Linux distros tend to have large and very professional systems behind them—it’s difficult to see how the FreeBSD committee’s oversight of FreeBSD as an unmixed operating system differs significantly from Canonical’s oversight upward of Ubuntu or Red Hat’s over CentOS and Fedora.

One thing that remains odd between the two camps is the kernel license. The Linux kernel is licensed GPLv2, and the essence Linux kernel developers can be notoriously cranky about potential violations of that validate. FreeBSD’s kernel, along with most code authored by the FreeBSD present, is licensed under the two-clause BSD license.

If you’re not completely up to speed on open documentation licenses, we can sum up the difference in a nutshell—the GPL requires derivative code to also be documented GPL, and the BSD license does not. The GPL also has a curious definition of what it means to be “second-hand”—under the terms of the GPL, any code that links to GPL code is “derivative” and above a answerable to to compatible licensing requirements.

The ZFS filesystem is a famous example of the GPL’s definition of “derivative” being activated on its head. ZFS was originally developed for Solaris and had been ported to FreeBSD once eventually getting ported to Linux. It is clear that ZFS isn’t “derivative” of Linux in any natural usage of the word.

Since a kernel module must link to the substance, any kernel module—regardless of its actual development history—is therefore a “unoriginal” work according to the GPL. This is controversial, and in practice, there are many sheer proprietary kernel modules—such as Nvidia’s proprietary binary driver module. Regardless, it’s a the bush point for many kernel developers.

By contrast, the BSD 2-Clause license scarcely requires that any redistribution of BSD-licensed code must include the jus canonicum canon law’s original copyright. This allows the reuse of BSD code within non-BSD-licensed forecasts, as well as vice versa. If you wanted to make ProprietaryBSD and sell it as a goods with no user access or rights to the source code, the BSD license pleasure permit you to do so—you’d simply need to acknowledge the BSD copyright when you did.

Installing FreeBSD

Installing FreeBSD has a distinctly old-school feel to it. The entire process is text-mode, in the mood for a Debian or an Ubuntu Server installation. That’s not necessarily a bad thing; it significance you’ve always got keyboard shortcuts, fast menu rendering, and you can defer the right stuff hardware-driver issues until later, after the OS itself is installed.

For thither a decade—1997-2007, give or take—I was a staunch FreeBSD consumer and strongly preferred it to Linux. Very little has changed about the institution process since then, although I don’t remember a LiveCD environment.

Be put someone on noticed, however, that the LiveCD environment is really only useful for go system rescues—there’s no desktop and very little pre-installed software. You’re totally dropped at an “Amnesiac” login prompt. From there, you can login as destroy (with no password, though nothing gives you a hint about that) and get a veldt shell.

Once you begin the actual installation, you’ll choose a keyboard map, a hostname, and then any unrequisite components to install.

Will it ZFS? You’re darn right it will

FreeBSD has supported the ZFS filesystem for fancier than any operating system but its native Solaris. So of course I’m going to do a ZFS on entrench install here—and a proper one, on multiple disks, at that.

This didn’t be lacking me to dig into the manual partitioner, but I tried it anyway. You need to know what you’re doing in FreeBSD’s partitioner uncountable than you do in most—for example, if you create a partition table with the “BSD Describes” scheme, you’ll have accidentally consigned yourself to BSD “slices” rather than solely partitions, and no other operating system will be able to read your disks.

I also organize a bug in the partitioner almost immediately—despite giving me “freebsd-zfs” as an example of a valid cope with to free-type into its Type: text box, it complained of an invalid argument when I appraised it. You also can’t simply cancel out of this dialog—the only way to get out was to free kidney “freebsd” instead, after which I could choose to nuke the healthy partition table and go back to the guided installer.

The guided ZFS installer still has a few warts in it but no realistic pitfalls. Organizing a full and potentially complex ZFS pool in a simple menued installer is not a trivial chore. FreeBSD, unfortunately, doesn’t get through the process without reinforcing some conceptual errors.

Before all and foremost, a pool is not made of disks—a pool is made of vdevs, and human being vdevs are in turn made of disks. Let’s say you have 12 disks convenient to you—you might arrange them all in a single RAIDz2 vdev, with amateurishly 10 disks’ worth of usable storage capacity and two disks’ value of parity. Or perhaps you’d choose a RAIDz3 vdev instead, with inhumanly nine disks’ worth of capacity and three disks’ worth of similarity.

What escapes many users is that a pool does not own to consist of a single vdev. You might choose instead to have two six-disk-wide RAIDz2 vdevs in the consolidate, or four three-disk-wide RAIDz1 vdevs. More commonly, we see a pool of repeats—in our 12-disk example, typically this would mean six two-disk-wide reflect vdevs.

The FreeBSD developers wanted to enable automatic provisioning of this routine pool-of-mirrors scenario, but it broke their paradigm of selecting a virtual-device genre. So they shrugged, ignored the conceptual error, and offered “raid10” as a “virtual-device paradigm.”

Selecting “raid10” here got me a pool of mirrors. It also give the impression of run off me cry a little on the inside.

Once you’re done configuring your disk setup, there’s one more penny-ante wart to deal with on the way out. The main disk-configuration menu’s bottom button isn’t an OK—it’s a Superior. I took a confused second or three to realize that I needed to arrow all the way rearwards up to the very top of the menu, highlight >>> Installthen go back and hit Select to proceed.

Leave a Reply

Your email address will not be published. Required fields are marked *