81 comments

[ 4.4 ms ] story [ 180 ms ] thread
Article seems to be dead now (HN hug of death).

I think one big reason is the BSD license. With fewer contributors, the ability for companies to create closed source products really helps to justify using it.

Yeah, it seems to be an ever increasing issue. I wonder what would be the minimum server specs to successfully fend off the hug of death.
What I find interesting about FreeBSD is the lack of a BDFL, so this is a testament to the governance model & structure they have built.

- OpenBSD (previously NetBSD) has Theo de Raadt

- DragonflyBSD has Matt Dillon

- Linux (kernel) has Linus Torvalds

- GNU has Richard Stallman

- FreeBSD doesn't have a "Founder/CEO" leading it, like the other examples above.

NetBSD also lacks a BDFL I believe.
Yes, I believe that happened when Theo forked NetBSD to create OpenBSD.

Similarly, while Matt Dillon wasn't a founder of FreeBSD, he certainly was a core/key leader within FreeBSD. When he forked FreeBSD to create DragonflyBSD, a sizable void was left within FreeBSD leadership team. (at least that's how I understand it)

Similarly Debian with their election system which seems to work fine
Debian already had its own share of dramas as well.

  FreeBSD doesn't have a "Founder/CEO" leading it, like the other examples above.
Now, sure. For a long while I'd say jkh came close to being a BDFL.
In my opinion, the presence of a BDFL is what elevates open source to excellence from an aimless bazaar. Otherwise it's just a game of politics and bureaucracy to organise a herd of volunteers that would rather bike shed than reach a common goal.

This is the reason why commercial software tends to be perceived of higher quality than most open source projects: you need someone to say "no, this is unacceptable."

Thank God we have Linus. Meanwhile the Linux userspace is terrible because there is indeed no Linus, so we're still squabbling over X.org and systemd.

Except, like in any kingdom, the king that follows isn't necessarly as good, and so far most of the originaly BDFL are still around.

I am the opinion this will all pass, and FOSS movement will fade once all key leaders are gone.

Proven by the fizzling out of all relevant movements throughout the human history.

Is the suffragette movement about to fizzle out? Movements fade away, unless they succeed in changing the status quo.

Open source has stopped being a movement since the turn of the millennium.

Are there any use cases where i should prefer FreeBSD over Linux?
Something something ZFS
I've met people running ZFS on Linux quite reliably this days, bar Oracle.
ZFS is nicer on FreeBSD. Even on the more ZFS-friendly distros it still feels like an after thought. But in FreeBSD it’s as close to being a core part of the OS as it has been since the demise of Solaris and its various OpenSolaris forks.

I say this as someone running ZFS on Linux too. So seen things from both sides of the fence.

It’s hard to explain why it’s a nicer experience though. Maybe someone else can?

Then again something something inotify, which kqueue does not equal.

I'm a bsd lover so don't take that wrong.

One example of the nicer experience, maybe as a by-product of the 1st class ZFS support, is that updating FreeBSD doesn't make me nervous like updating the Linux kernel does. On Linux, you're mostly limited to the kernel versions that have been explicitly tested against ZFS.
ZFS memory stats are integrated into FreeBSD's top. Boot environments are trivial to configure; the OS upgrade tools integrate with BEs for you. It is considered a standard configuration (and has been so for years), so guides, docs, and software are written with explicit integrated support and expectations that you'll use it.
“Prefer” is a subjective term. For the same use case some people might prefer FreeBSD, while others will prefer Linux.

Personally I prefer FreeBSD as an operating system but the lack of Docker keeps me stuck to Linux (I don’t even like Docker but at this stage it’s now the de facto standard for packaging containers).

True, but one of the advantages of the BSDs is that they provide an alternative way of doing things. For FreeBSD, you have Jails with Pot and Potluck and other alternatives. It might not be the de facto way of doing things, but the BSDs have never really been keen on following the standard way at the cost of everything else.
I’ve used jails since FeeeBSD 7 or 8 and love them. For me, the power of Docker is less about the OCI format (whatever it’s called) and more about Dockerfiles. If Jails could work against Dockerfiles then that would be a massive step forward.

Though to be fair I haven’t tried Pot. Used ez_jails a lot in the past, as well as rolling my own build scripts. So maybe I’m missing a trick?

This is what has been scaring me about Linux in the last 10 years as it seems we have been talking mostly about containers & ended up in a strange place:

- a lot of project distribute a docker image or we have community "distributions" like linuxserver.io. But nothing come close to a good distribution package management so far,

- the security of containers is still very unclear, misunderstood & unequal,

- the ecosystem is now fragmented between docker, podman, etc.

- generally it feels like things have become more complicated !

We also now do see new generation (?) of distributions centered around containers like CoreOS, MicroOS or even Silverblue.

My questions would be: is the BSD world trying go move this way too with bsdpot & potluck or consider this is not the way to go or this just a distraction and Ports will always be the way to distribute software?

I run FreeBSD as my host and pass data into linux VMs with bhyve 9p protocol support. This way I can have my docker data on my FreeBSD host's ZFS. Just pointing out another option, but it also depends on what type of stuff you are doing.
This sounds interesting. Got any more details about it?
I'll give a few pointers, I have done this with Debian and NixOS as well as docker and podman, currently I use NixOS/podman and that is all I have for examples. If you were using debian you would use a mount command with the Fstype and options below.

In a bhyve vm config file you add 'bhyve_options' and add some virtio-9p mount points. they are 'per slot' so each of these mounts will need a new number '-s 15' '-s 16' as in my below example.

on FreeBSD host, assuming you are using bhyve-vm (works with plain bhyve also):

/usr/local/vm/nixos/nixos.conf

bhyve_options="-s 15,virtio-9p,podman-archivebox=/HOSTZFS/Services/VM/NixOS/ArchiveBox -s 16,virtio-9p,podman-music=/HOSTZFS/Audio/Music/Flac"

in VM (nixos):

  fileSystems."/mnt/podman-archivebox" = {
      device = "podman-archivebox";
      fsType = "9p";
      options = [ "trans=virtio" "version=9p2000.L" "_netdev" "cache=loose" ];
  };

  fileSystems."/mnt/podman-music" = {
      device = "podman-music";
      fsType = "9p";
      options = [ "trans=virtio" "version=9p2000.L" "_netdev" "cache=loose" "ro" ];
  };
If you were not using NixOS, add your mount points in the VM (/mnt/podman-archivebox, /mnt/podman-music). Then mount them with your docker/podman setup.

  virtualisation.oci-containers.containers."ArchiveBox" = {
    image = "archivebox/archivebox";
    ...
    ...
    volumes = [
      "archivebox_data:/data"
      "/mnt/podman-archivebox/archive:/data/archive"
      "/mnt/podman-archivebox/sources:/data/sources"
      "/mnt/podman-archivebox/ArchiveBox.conf:/data/ArchiveBox.conf"
    ];

  virtualisation.oci-containers.containers."navidrome" = {
    image = "deluan/navidrome:latest";
    ...
    ...
    volumes = [
      "navidrome_data:/data"
      "/mnt/podman-music:/music:ro"
    ];
  };
The 9p mount points won't get passed into the VM until you STOP the VM and then START the VM (restart won't work). Once that is done and you can confirm the files are passed through and working, things 'just work'. This does not work for things that require file locks like passing database files through 9p. Hope this is helpful to someone.
It works well as a general purpose desktop OS as well as rock solid server. It is arguably simple and less complex, and has a cleaner, compact and immensely readable source code as compared to Linux.
If you want to a release a new proprietary hardware and you need a full fledged general purpose OS without releasing the source code. See Sony > PlayStation 3/4/5
I have been using simultaneously both FreeBSD and Linux for more than two decades.

I use Linux on all my laptops and desktops and also on servers that are used for computational purposes, i.e. on which I compile software projects or I run simulations or FPGA syntheses or CUDA programs on GPUs.

I use FreeBSD on servers that implement various networking or storage functions, e.g. firewalls, NAT, DHCP servers, routers, switches, file servers, backup on magnetic tapes, DNS servers and proxies, e-mail servers, Web servers and proxies and so on.

The main reason why I prefer FreeBSD in such servers is that for it I need to waste less time for maintenance and monitoring, because it provides a more stable and consistent environment where I need to make very few custom changes for the services that I need.

Why not Debian there? With unattended upgrades setup you can install and forget them.
In FreeBSD many services that I need work immediately after installation with very few changes in the default configuration.

In Linux I always have to work much more for a sane configuration.

There are also various specific details, e.g. I like much more the firewall programs that are available for FreeBSD than those that are available for Linux, so for any computer facing the public Internet I use FreeBSD. FreeBSD has better support for SCSI/SAS devices, so where I use such devices, e.g. tape drives, FreeBSD is also the only choice for me.

In FreeBSD I also normally use unattended upgrades and I almost never use more than an hour per year for maintenance, except for reading my e-mails where I receive statistics from the logs of the servers.

In my experience, if you know what you're looking for, and FreeBSD meets your needs, and you prefer a more classic unix-y setup, then it's great. If you want the cutting edge of everything, it may still work for you, but it's worth investigating to be sure. FreeBSD doesn't always do bleeding-edge stuff without a bit of hand-holding.

With ZFS and boot environments, it's great for upgrades, if you're okay with some downtime. You can certainly do high-availability, but again, there's some hand-holding.

I much prefer FreeBSD for everything I can use it for. But I don't use Docker, or Kubernetes. I use it as a server OS where the only interface is ssh.

If you want something with proper linage from UNIX, that was part of the whole UNIX System V vs BSD wars drama, the related AT&T lawsuit after they were allowed to charge for UNIX, 386BSD being reborn.

Or just a kernel that happens to have been inspired by UNIX and took its own path afterwards.

It's the other way 'round: You should use FreeBSD unless and until you have a use case that requires Linux. (For production; for yourself do what you like.)
ZFS, which is natively supported on FreeBSD. Jails, maybe; they are nice to have, certainly.

Beyond that - for regular server use cases, at least - it's mostly a matter of taste, I think. There are situations where you need an enterprise distro, i.e. RHEL or SLES because some third-party software requires that or regulatory compliance requirements demand it. Most of the time, I think the difference is minor for most intents and purposes.

EDIT: If you strongly dislike systemd, FreeBSD is an attractive choice, but there are Linux distros that use a different init system, too.

What are the FreeBSD/OpenBSD init systems? Are there competing ones?
I like runit, which is actually from Void Linux but can be used on FreeBSD. There's also OpenRC, again not limited to BSDs.
The BSD systems have their own init system, called rc. I've never written an rc script, but as a user/admin, I find it very nice.

There was an effort to create something akin to macOS's launchd for FreeBSD, but I don't know how that worked out.

> I've never written an rc script

Not trying to "RTFM" you but https://man.freebsd.org/cgi/man.cgi?query=rc contains a nice minimal example script for anyone who's curious.

Thank you! I recently wrote my first systemd unit file, and the experience was mostly pain free. I might recreate it as an rc script for good measure.
I’d say stuff that you just want to work, maybe because you’re a startup or otherwise small shop - in contrast to stuff where you want to generate a lot of artificial work for devops and consultants, for example in a corporate environment with K8s ;)
Serving static web content via kTLS. We (at Netflix) have worked for a decade to make this as efficient as possible.
I've been running a FreeBSD server (web, email, DNS) for 20 years at this point, so consider this a long-term review.

It just works! Specifically, keeping the system running and up-to-date is very low-maintenance. On the software side, the pkg system has been great—and a welcome change from manually installing ports from source. On the OS side, security updates and upgrading major and minor versions have all been painless.

I haven't run a Linux server long-term, so I can't compare, but my biased perception from the outside is that it seems like Linux changes more rapidly and requires a bit more hands-on management.

That heavily depends on distro.

Debian upgrades "just work". Even had colleague accidentally upgrade 2 releases at once (put too new repo on one of the old servers) and it worked without a hitch

Ubuntu? eh, usually ?

CentOS/RHEL/derivatives ? It isn't even supported as a feature.

Both my desktop and NAS are going 10+ years with just dist-upgrade. Also few hundred servers at work where we migrated from CentOS (which was a chore to manage tbh).

To be fair, Debian used to work even for FreeBSD back in the day with Debian GNU/kFreeBSD.
> To be fair, Debian used to work even for FreeBSD back in the day with Debian GNU/kFreeBSD.

As both a Debian and FreeBSD person, I think I was uniquely in a position to like this, and it was awful circa 2012. Some stuff would work, and a lot of stuff didn't, because FreeBSD basic utilities weren't packaged and GNU versions didn't have full functionality: network configuration was difficult, lots of administration was also difficult. You ended up needing a FreeBSD chroot, and then you might as well use FreeBSD/FreeBSD.

That's interesting about Debian and dist-upgrade. I think I had assumed everyone had consolidated on Ubuntu, but every Ubuntu installation I've run has been a short-lived VPS, so I haven't had to think too much about long-term upgrades. But maybe that's the new mindset—just periodically wipe everything out and reinstall your application from a script/container/what-have-you.
That's certainly a way, especially that reinstall takes about as much as full upgrade.

But I use configuration management anyway to keep the machines consistent, and, well, upgrade is less work than reinstall... especially if talking hardware that can take 5+ minutes just to reboot (which is like every actual enterprise server I saw).

I’m fairly sure RHEL has had in place upgrades for a few release now (at least going back to the 6 -> 7 transition, nearly a decade ago).
Years ago, I wanted to learn Unix so I installed FreeBSD and ran mail and DNS on it. I thought, this will be a great learning experience. Except...it never broke. There was never anything to fix, so I didn't really learn that much from it outside of how to set things up (but just once). Then I installed linux and so many things broke all the time that I was learning everyday.
I would argue that you really did learn the Unix way with FreeBSD.
Yeah, this matches exactly my experience from two decades ago.

I have also learned much more by fixing Linux, while my FreeBSD servers ran unattended for months or years.

You guys never update your servers?
I am infinitely more likely to setup unattended updates on a BSD box.
That, in a nutshell, is what I - and no doubt many others - appreciate deeply about FreeBSD. Getting it to do what you want may not be trivial, but once you got it working, it stays that way. (The same can be said about OpenBSD and NetBSD, too, with the caveat that the OpenBSD developers do not put such a premium on backward compatibility.)

Relative to Windows, this is what I like about GNU/Linux, too. I used to work as an admin/helpdesk monkey, taking care of ~75 users and about 10 servers. And things would randomly break all the time. Having used mostly Linux and BSD in my private life for more than a decade at the time, I constantly found myself wondering how people can live like this. FWIW, on Debian and openSUSE, I had no trouble with things breaking randomly except on Tumbleweed. But there, it's usually just a question of rolling back to the latest snapshot, waiting for a week or so and running the upgrade again.

My experience of learning Unix from the installation process back in 2001 or was kind of the reverse. I installed Red Hat on an old machine and it the desktop GUI worked out of the box. That wasn't really what I was going for, so I installed FreeBSD instead and I had to configure X11 and everything else manually, and I learned a lot.

Totally agree that once up and running, FreeBSD is extremely reliable. Linux can be reliable, but it depends a lot of the distribution, and what you're doing with it.

Yeah I would say FreeBSD is about on the level of Arch as far as where it starts you off after the installation. But it makes configuring either one a great learning exercise.
I've been trying to move to FreeBSD for quite some time, but I play games on Linux heavily, the last time I tried playing on FreeBSD I had some driver issues with Nvidia; of course, Nvidia not being the best when it comes to open source.

How is the gaming experience in FreeBSD these days? Has anyone tried it?

Funny, a long time ago I was in the hurdle of switching between Windows and Linux to play games, now with Proton, it is "FreeBSD vs Linux".

Same here. I’ll forever be on Fedora 38 until gaming via proton etc is as easy as it is on Linux.
I would not say I've been gaming with it, but proprietary nvidia drivers have not given me problems on freebsd.
I don't really know, but I suspect it still isn't very good for that use case. There simply isn't much overlap between those communities. Desktop environments on FreeBSD would still be somewhat unusual in my view and I would tell somebody trying to get that setup to just use Linux if it's a big deal for them.
How much if any does Netflix and Sony give to the FreeBSD foundation either in fiat currency donations and/or engineering time donated?

Netflix uses it at their core for the CDN stuff. I think the core of PlayStation OS is FreeBSD. So I’m curious how much these companies are supporting the foundation at.

You can see large donations listed by year here [1].

[1] https://freebsdfoundation.org/our-donors/donors/

It is also not just about the financial donations. These companies also do contribute back some source code. I know they do not contribute all of it back, however for closed source products to give back is a nice touch.
Both do, as does a large firewall maker (Juniper, I think). They keep certain aspects of the secret sauce back but upstreaming changes is enlightened self-interest as they don't have to apply a long series of in-house changes when an upgrade to FreeBSD comes out (Bryan Lunduke had an interview with a FreeBSD maintainer where this was discussed -- I'm not finding that on YouTube though).
Lunduke pulled his videos from YouTube a while ago. I think he moved to Odysee or another platform.
(comment deleted)
This would feel much more genuine if there wasn't a thick layer of advertising around it. Look at us, we sell services. Here is a list of our partners.
I have been using FreeBSD since 1999, it was version 3.somthing, cannot remember. Since then my main server/development box has always been FreeBSD (I have a Linux one as well for some software that just will not run). Somewhere along that path i became a Linux admin (and HPUX but that was long ago), starting with RHEL3 (I was using gentoo at home). I have a bunch of servers, FreeBSD, Linux and yes windows. They each have their place.

FreeBSD for me is simple. I have 2 Raspberry Pi 3's with 512MB of ram running FreeBSD 13 and Unbound and a Pi 4 Running FreeBSD and Asterisk. I forget they exist. They literally just keep running, I update them and if needed reboot and they just keep going. You can use mtree to verify the OS, Security is good. But some things like DNS, i do not play with, just let it run (and keep it patched).

I have a full blown Ubuntu Kubernetes cluster and a few RHEL and OEL vm's running various tasks in the lab. Most are the right tool for the job i need it to do.

I have never understood the flame wars for my distro (Linux vs BSD) is better than yours and my license is better (or allows more freedom) than your. They each really do have their places with some expected overlap. I am just happy with the variety that allows me a ton of choices and usually drives innovation.

I'm wondering if anybody has an explanation for the relatively few BSD distros as compared to Linux? Is it just due to the smaller community and limited resources or is there something different with BSD that leads to less division?
I think a lot of it is because unlike Linux, FreeBSD is a not just a kernel, but an entire OS, with a kernel, utilities, compilers, and a package manager. There have been different distros (PC-BSD, debian kfreebsd, etc), but I think the "default" upstream distro has most of what's needed.

And there are likely "distros" that you don't see. Eg, we run our own private "distro" on the CDN at Netflix, which is basically upstream FreeBSD + some kernel patches queued for upstreaming + a limited number of ports + some netflix specific stuff. I imagine other companies using FreeBSD (NetApp, Sony, etc) also have their own private distros.

I guess my question was more about something like Debian which would be more comparable to FreeBSD. Ubuntu is based on Debian. PopOS and Mint are built off of Ubuntu. They are all separate, but still pull the code from their upstream. Why isn't there a situation like that with the BSDs? As far as I know the only ones that exist like that are GhostBSD and HardenedBSD.

Why do the BSDs split for good instead of just pulling from upstream and making some changes?

There are also private linux distros. I wasn't really getting into them since they aren't available.

OpenBSD split from NetBSD about philosophy, and the changes go deep.

I never used PC-BSD, but I gather it is (or was?) mostly a few changes on top of FreeBSD, so it would fit your model. FreeNAS/TrueNAS core is more or less a specialized distribution of FreeBSD.

Otoh, DragonflyBSD is a fork of FreeBSD; there were big differences in opinion on how SMP should be implemented, and then big differences in implementation, making it hard to just pull and make changes.

Linux is just a kernel, anybody shipping it for use has to include a seperate userland.

FreeBSD is an entire operating system, it ships with a kernel and userland as one completed piece. So you could build a "distro" on top with just things like a desktop environment, but there wasn't the same need to.

This also means that most of the BSD's are fundamentally different operating systems. There are some "distros," but FreeBSD, OpenBSD, NetBSD, and DragonflyBSD are all seperate operating systems.

I understand when the BSDs are forked they become their own thing.

I guess my question was more about something like Debian. Ubuntu is based on Debian. PopOS and Mint are built off of Ubuntu. They are all separate, but still pull the code from their upstream. Why isn't there a situation like that with the BSDs? As far as I know the only ones that exist like that are GhostBSD and HardenedBSD.

With Linux, there was an independent need for a "pull from upstream" model, so one was built then further developed. That wasn't necessary for the BSD's, and by the time someone would consider rolling their own "distro" they would probably already be part of the FreeBSD project.

A part of it is certainly userbase size, but the project seems to allow more competition while still being part of FreeBSD. An example, FreeBSD ships with three different firewalls. With Linux, each one would probably have built their own distro with that being the key difference between them.