For decades, Linux and BSD have stood as two dominant yet fundamentally different branches of the Unix-like operating system world. While Linux distributions, such as Debian, Ubuntu, and Fedora, have grown to dominate the open-source ecosystem, BSD-based systems like FreeBSD, OpenBSD, and NetBSD have remained the preferred choice for those seeking security, performance, and licensing flexibility. But what if you could combine the best of both worlds—Debian’s vast package ecosystem with FreeBSD’s robust and efficient kernel?
Enter Debian GNU/kFreeBSD, a unique experiment that merges Debian’s familiar userland with the FreeBSD kernel, offering a hybrid system that takes advantage of FreeBSD’s technical prowess while maintaining the ease of use associated with Debian. This article dives into the world of Debian GNU/kFreeBSD, exploring its architecture, installation, benefits, challenges, and real-world applications.
↫ George Whittaker
More of a list of upsides and downsides than an actual in-depth article, but that doesn’t make it any less interesting. There’s a variety of attempts out there to somehow marry the Linux and BSD worlds, and each of them takes a unique approach. I’m not sure the Debian userland with a FreeBSD kernel is the way to go, though, and it seems I’m not alone – Debian GNU/kFreeBSD was officially dropped from Debian in 2015 or so, and after a flurry of unofficial activity in 2019, it was discontinued completely in 2023 due to a lack of activity and developer interest. Odd that the source article doesn’t mention that.
If you’re still interested in a combination of Linux and BSD, I’d keep an eye on Chimera Linux instead. It’s very actively developed, focuses on portable code by supporting many architectures, and its developers are veterans in this space. I have my eye on Chimera Linux as my future distribution of choice.
I think comparing GNU/kFreeBSD with Chimera Linux confuses their nature and gives the wrong impression that they are similar when they are in fact almost opposites.
GNU/kFreeBSD is based on the idea that there is a GNU operating system and that this operating system is available with multiple kernels. It is based on the premise that the kernel is a swappable and non-essential user preference in the way that a window manager is. I find this concept totally flawed.
Presumably you run Debian GNU/kFreeBSD hoping to have a similar experience to Debian Linux. However, outside of I guess having apt as a package manager, it is not going to feel like Debian at all. In terms of compatibility and limitations, it is going to be a lot more like FreeBSD than Debian. You will run into critical differences like hardware support before the system even boots up. Sure, many of the same applications will run but that is because FreeBSD itself has over 35,000 ports. Which applications will run on GNU/kFreeBSD has more to do with the POSIX nature of both Linux and FreeBSD than it does with anything specifically to do with the idea of a GNU OS. GNU/HURD, despite being the true “GNU OS” will run far fewer apps than either of them.
Chimera Linux, on the other hand, feels just like a Linux distro. There are /proc, /sys, and /dev working as you expect. There are all the normal Linux drivers for hardware support. There is Kernel Mode Setting and the Direct Rendering Manager working with Mesa. Your applications are running on Wayland and Pipewire. You can use Podman and Distrobox and Flatpak as you expect. There is KVM and QEMU for virtual machine support. Networking, including WiFi and Bluetooth work the way you expect. All the normal filesystems are there. You can run Chimera Linux as a Docker container. All of the above are completely foreign to FreeBSD and therefore to GNU/kFreeBSD as well.
Unlike GNU/kFreeBSD, a typical Linux desktop user could sit down at Chimera Linux and use it for quite a while before discovering anything remotely BSD about it.
Chimera Linux uses the FreeBSD userland. It makes other “alternative” choices as well like dinit/turnstile instead of systemd and musl instead of glibc. Of these, musl has the greatest impact. Using musl puts Chimera in the same family of Linux distros as Alpine Linux, or Adelie Linux, or Void Linux. musl has nothing to do with FreeBSD. Using dinit sometimes matters but, day-to-day, the experience and even syntax is pretty much the same as systemd. Certainly dinit is a very different to FreeBSD. The choice of BSD userland may be the least likely distinction from other Linux distros to actually impact your day as a typical Linux user. There are differences but most day-to-day commands and options are the same (at least for me). You may want to install bash to run third-party scripts but lots of Linux distros use dash as a system shell these days (basically the Linux version of the Almquist Shell that Chimera gets from BSD). So, that is not so different.
More than the actual technology (code), I do think that Chimera Linux shares some philosophical overlap with FreeBSD. That makes sense given the historical tie to Void Linux which itself found inspiration in NetBSD. That said, in my view, Chimera Linux feels very much like a “Linux”. GNU/kFreeBSD does not. GNU/kFreeBSD does really feel like FreeBSD either though. My own view is that Chimera Linux is the best of both worlds whereas GNU/kFreeBSD is perhaps the worst. Maybe that is why it failed.
In Chimera Linux, the choice of the BSD userland reflects the desire to be a simple, but not TOO simple, system. It is consistent with many other engineering choices throughout the system, none of which borrow from FreeBSD directly. Overall, Chimera Linux is just an alternative vision of an ideal Linux distribution. GNU/kFreeBSD felt like it existed more to support the idea that a multi-kernel GNU OS is a legitimate concept than it did because anybody wanted such a system.
To the GNU tools, the kernel is swappable. The GNU tools have been ported to many OSes which makes them rather generic, and it’s why many of the GNU tools are getting replaced with Linux specific tools.
For the most part, Linux + systemd + GNU is the canonical Linux OS.
The differences are fairly noticeable. The userlands are similar, but GNU is not Unix, which means GNU added options for convenience. The FreeBSD userland doesn’t have those extensions since it’s more “Unix”. Also, long options aren’t are prevalent with the BSDs.
It was Debian proving it really was the universal operating system, and that was probably peak portability. Gentoo even had a FreeBSD version around the same time.
https://wiki.gentoo.org/wiki/Gentoo_FreeBSD
Debian GNU/Hurd still exists to support the concept of Debian being a Universal Operating System, so there will probably be some other kernel in the Debian universe at some point.
> For the most part, Linux + systemd + GNU is the canonical Linux OS
I totally agree with that. And the “standard” runtime in Flatpak uses Glibc as well.
> The FreeBSD userland doesn’t have those extensions since it’s more “Unix”. Also, long options aren’t are prevalent with the BSDs.
A lot of those extensions have been added I believe. For example, “ls –color=auto” works even though the native BSD switches are different. I guess it depends on what you use. The ‘-i’ switch on sed is different. RegEx on find is different. And apparently people write stuff like ‘ls * -l’ vs ‘ls -l *’ which blows my mind (and is not supported on the BSD userland). At least for me, my day to day is quite portable between the systems.
And of course, you can install GNU stuff on Chimera just fine. I use GNU make, autoconf, and bash.
GNU/kFreeBSD is less weird then it seems. It’s hard to run a FreeBSD system without some GNU stuff, mostly gawk and gmake, and something usually pulls in bash. GCC is still a good compiler, and it supports more architectures then Clang.
The BSDs came with a lot of GNU stuff originally, and they’ve slowly moved to a fully BSD licensed base over the years.
The text of this article seems extremely generic and it repeats itself often. It reads like an “auto-answer” to the question “what is Debian GNU/kFreeBSD?”.
Are you sure it isn’t LLM slop, Thom?
Maybe. It’s hard to tell with LinuxJournal. This fits with other clunkers they’ve published.
For a long long time I was a huge BSD fan, trying all sorts of solutions, eventually I had to give up as I just kept finding roadblocks. A lot of my associates in R&D or Engineering still use BSD, but in the context of being a very task specific solution, some do write the driver for the custom hardware they run. Given I was developing custom hardware on short cycles it was never an option to be writing my own drivers, I didn’t have the time to be forever at the keyboard ahead of the workbench, I didn’t have the option to settle on a specific platform so I was stranded left dependant on vendors, and just too few support BSD.
A lot of my associates also have a general purpose PC in Linux, Windows or MacOS that sits besides a BSD workstation, it’s a truth rarely mentioned.
Long comments. Maybe some opportunity for article contributions with all that time lol?