I’ve been waiting for this for a long time. A really long time.
In the late 90s I had tried running Linux for the first time. I had to empty a hard disk, had go through what I still remember to be a lengthy partitioning and configuration exercise, and finally had to install the system. What a relief it was when Knoppix came out, a fully self-configuring Live system on CD-ROM. Later, Ubuntu popularized the concept of Live ISOs which allow you to run a system without installing or configuring anything. Today, of course, we are no longer running from CD-ROM but from USB flash drives.
Ever since, I wanted the same “out-of-the box, no installation, no configuration, boot-straight-into-a-usable-desktop” experience for BSD. Today I am happy to say: It’s finally here!
Yes, I am typing this from FreeBSD. FuryBSD, to be precise. In a nutshell, think what FuryBSD is to FreeBSD as what Ubuntu is to Debian. It takes all the great software that is in FreeBSD and makes it really easy to get started by offering a Live ISO that boots straight into a desktop. How cool is that!
liveuser@furybsd:~ % uname -a
FreeBSD furybsd 12.1-RELEASE-p3 FreeBSD 12.1-RELEASE-p3 GENERIC amd64
This is not the first attempt at putting together a BSD based desktop operating system. I remember PC-BSD, but it never had a great Live ISO story.
Later, various Live ISOs appeared but their actual usability was very limited because they lacked a union filesystem which means that due to the read-only nature of ISOs, once the system was booted you could not really do much with it.
Also, those ISOs tended to need their own USB drive, they could not simply be booted as one of multiple Live ISO files from a large USB disk like I prefer to do.
Three and a half years ago I suggested to the TrueOS project:
Please provide a TrueOS Live ISO that lets one use the system without installing it to hard disk, the same way Ubuntu Live ISOs can be used. Ideally, it could be booted using the GRUB2 loopback mechanism
Provide TrueOS Live ISO · Issue #326 · trueos/trueos-core
Please provide a TrueOS Live ISO that lets one use the system without installing it to hard disk, the same way Ubuntu…
Back at the time, the answer was
Most Linux distribution have Live CD functionality through the use of AUFS or Overlay FS. Since neither of those work with the BSD kernel, I doubt this will happen anytime soon
All this changes with FuryBSD.
Booting FuryBSD with Ventoy
Ventoy is a tool that allows one to boot various Live ISOs straight from the ISO file, and it has built-in support for many Linux, BSD, and Windows ISOs — including FuryBSD. Works like a treat. I no longer need a dedicated USB drive just for the BSD ISO. I can just throw the FuryBSD Live ISO into a folder alongside all the other Live ISOs and boot it from there. Great!
Union filesystem module for the FreeBSD kernel
Checking out the mount points in the mounted system reveals that there is a
liveuser@furybsd:~ % mount
/dev/md2 on / (ufs, local, soft-updates)
devfs on /dev (devfs, local, multilabel)
/dev/iso9660/FURYBSD on /cdrom (cd9660, local, read-only)
/dev/md5.uzip on /usr (ufs, local, read-only)
/dev/md6 on /union (ufs, local, soft-updates)
<above>:/union on /usr (unionfs, local)
Intriguing. How did they do it? Sure enough, turns out that FreeBSD comes with
unionfs.ko, a kernel module that realizes a union filesystem :
root@furybsd:/home/liveuser # kldstat
Id Refs Address Size Name
1 44 0xffffffff80200000 2448f20 kernel
2 1 0xffffffff82649000 11c30 unionfs.ko
3 1 0xffffffff8265b000 11d40 tmpfs.ko
4 1 0xffffffff8342d000 5a48 fstab
5 1 0xffffffff83433000 7718 nullfs.ko
6 1 0xffffffff8343b000 8460 geom_uzip.ko
7 2 0xffffffff83444000 4810 xz.ko
8 1 0xffffffff83621000 1508 sysctlinfo.ko
9 1 0xffffffff83623000 5954 cuse.ko
10 1 0xffffffff83629000 f20 utouch.ko
11 1 0xffffffff8362a000 18a0 uhid.ko
12 1 0xffffffff8362c000 1aa0 wmt.ko
13 1 0xffffffff8362e000 2928 ums.ko
14 1 0xffffffff83631000 3df60 linux.ko
15 2 0xffffffff8366f000 3178 linux_common.ko
16 1 0xffffffff83673000 35b20 linux64.ko
Now, with this Linux compatibility layer in place, I wonder whether it is capable of running Linux AppImages. But that’s for another day…
The FuryBSD desktop
This is how the FuryBSD project describes itself:
FuryBSD is a brand new, open source FreeBSD desktop. FuryBSD pays homage to desktop BSD projects of the past like PC-BSD and TrueOS with its graphical interface and adds additional tools like a live, hybrid USB / DVD image. FuryBSD is completely free to use and distributed under the BSD license.
In my initial test, it worked flawlessly. It boots straight into a functional Xfce desktop. Firefox comes preinstalled, in fact I am using it to type this text.
In fact, I bet that most Linux users would not even notice they are running FreeBSD from just using the Xfce desktop.
Additional software can be installed using the
pkg install command.
FreeBSD has a Linux compatibility layer which allows one to run Linux applications. At least this is what I have heard for many years, but now I finally have an easy way to try it out. So here we go:
We have to install the
root@furybsd:/home/liveuser # pkg install emulators/linux_base-c7
Then we can do:
liveuser@furybsd:~ % ./desktop-file-validate
Except that it doesn’t work immediately:
liveuser@furybsd:~ % ./desktop-file-validate
ELF binary type "0" not known.
./desktop-file-validate: Exec format error. Binary file not executable.
But hold on, there is an easy fix:
liveuser@furybsd:~ % brandelf -t linux ./desktop-file-validate
And guess what, now the Linux binary of
desktop-file-validate works just flawlessly on FuryBSD. How cool is that!
Why use BSD on the desktop?
Which brings us to the question: Why would anyone want to use BSD on the desktop today when there are so many Linux distributions around?
Well, first of all, because we can. I like to try out various operating systems and to learn about them.
Then, there may be a case where for some reason BSD-licensed software is preferred to GPL-licensed software.
As a longtime Mac user, BSD is especially intriguing for me due to its family bounds with Mac OS X (yes, I still call it that, because in my opinion it peaked when it still went under that name). Especially with the Mac platform deteriorating rapidly due to Apple’s continued focus on “more important” things like Memoji and “Big Brother” like restrictions like app notarization, managed devices, “platform security”, “secure enclave”, increasingly enforced Apple IDs, always-on “Apple Silicon” processors, and all that other “security” crap that makes one feel like a guest on one’s own machine totally at the mercy of Big Brother (and secures nothing but Apple’s revenue stream), I really welcome alternatives like “the real BSD” (which Mac OS X is based on) to be easily available. (Yes. I tried Apple’s Darwin open source operating system. In fact, many years back I kicked off the PureDarwin project.) By the way: The boot messages look similar to the Mac’s — is that even the same font there?
There may be many other reasons, technical, philosophical, and others. For me it is because we can.
So, One could ask: “Why not?”
Give it a try for yourself!
My experience with FuryBSD has been flawless right out of the box, to a level of polish similar to what I encountered many years ago when I first used an Ubuntu Live ISO.
Just like the first Linux Live ISOs re-kindled my interest in Linux, so is FuryBSD doing for BSD. I will certainly explore it in more depth over the coming weeks and months.
Give it a try!