At the time, FreeBSD could run Linux binaries faster than Linux could on the same exact hardware, for one.
At Yahoo, we used FreeBSD on all of our servers and Linux on zero of our servers, and that probably changed over time. I don't know.
It was just very stable. You could reboot without worry that a kernel update would break anything or prevent boot-up. It was almost a realtime OS considering how light it was. I don't think it actually qualifies as an RTOS but we knew exactly what performance we could get out of a particular server configuration, and if the performance ever deviated, we knew there was a problem. It was very deterministic in that way.
Linux may be as good or better than FreeBSD now. I don't know. But 20 years ago, Linux getting all the attention saddened me a lot.
At the time, if you wanted an open operating system, without any cruft clogging things up, FreeBSD was it.
I went to another company that was using FreeBSD. They were three major versions ahead of what I had at Yahoo, and I didn't need to relearn very much, almost everything I knew still worked, but performance was improved.
I think it was Marissa Mayer that mandated the switch to Linux. Facebook also forced WhatsApp to switch to Linux after their acquisition.
Coming from the experience of trying to build from source on Linux a decade ago ports is just an amazingly streamlined experience, it all really just works.
I only run it on my fileserver but it's a really nice experience there. I don't have the experience to run it in production at work but it's really a nice setup.
Anyway, I seriously doubt this is the case. Almost every single high performance computer runs on Linux. Most servers run Linux. I'd say except from Netflix, FAANGS run Linux almost exclusively for their servers.
I have a hard time believing FreeBSD is better than linux in any meaningful way, more so given the humungous resources The Linux Foundation has.
I recall reading at the time that it was because FreeBSD's kernel simply had less overhead overall and consumed fewer resources in its work, making that bit of CPU available to running processes instead of consuming it itself.
After using FreeBSD, the Linux kernel appeared very bloated and slow, at the time. And it was, as distributed by distro makers. So the comparison was fair, stock FreeBSD vs. stock Linux. If you want to argue that you could do better than stock FreeBSD with a custom Linux kernel, you'd be right, and if you allowed a fair comparison with a custom FreeBSD kernel, I think Linux would have again struggled to remain in the lead.
All of that being said, this landscape may have changed entirely. The Linux kernel has come a long way. The FreeBSD kernel has come a long way. So where things are now is unknown to me.
I will say that superior performance is not always the reason to choose an OS for high performance computing tasks. It is a sane decision to use an OS that has lower performance if it provides other benefits that are important to you.
Plus, if someone claims something, you bear the burden of the proof. If a person claims BSD runs Linux binaries faster than Linux nowadays, then that claim should be backed up by the truth.
I'm not gonna comment how was it 20 years ago because there seems to be quite an agreement on that, and I can't doubt BSDs where more mature than Linux at that point given Linux was younger.
https://www.phoronix.com/scan.php?page=article&item=freebsd-...
And please stop trusting benchmarks, they say absolutely nothing until you make that exact benchmark that mirrors your real-world workload. Otherwise it's just nonsense (except to find regressions)
https://www.phoronix.com/scan.php?page=article&item=linux_ga...
Saying a OS is faster than X is like saying a ferrari is faster than a jeep..on perfect roads..yes, on bad terrain..no, not even usable.
There are a few advantages freebsd has historically had, one being ZFS. Recently, though, freebsd switched their ZFS sources from the upstream Illumos to linux's version of ZFS. Not to say this negates freebsd's integration advantage, but I think it shows how linux's ZFS has grown really good over time.
Another one I've heard is FreeBSD handles really heavy TCP/IP traffic better than Linux. Not sure about this one since I've never had heavy enough workloads to test and don't know the theoretical basis of it, although Netflix seems very happy with FreeBSD for this reason.
Also, as you say, BSDs are just nice to use sometimes. And sometimes all you need is something just good enough to run x/y/z. Maybe the pleasure of using it can offset the performance losses for some people.
For networking performance, I doubt it makes a noticeable difference in personal use. Firewalls are pretty nice on FreeBSD though, at least for my uses.
Of course, it's not like FreeBSD doesn't have problems of its own - I've had multiple times where I boot into my machine and find that I don't have graphics until I build the drivers from ports because their binary packages were compiled against an earlier release, leading to kernel incompatibilities (also can't figure out how to get hdmi audio out of my current card, not a deal breaker but wasn't what I was hoping for either).
Pick your poison I guess, but until linux gets a comparably featured and stable filesystem I have a tough time seeing myself move away from FreeBSD. I've definitely considered various linux distros due to certain applications missing in FreeBSD or just general pain points though. Just very hard to leave zfs, and also most linux distros either seem to be stable with ancient packages, or always changing and often breaking things in the process. Stable base with latest packages is very nice.
Obviously distros trying to be especially kosher like Debian and Fedora will never include it by default, and Canonical is maybe stepping on thin licensing ice by including it with Ubuntu, but I get the impression it's pretty stable, especially if Canonical put it in a LTS release.
Something else I learned that might be relevant, iXsystems of FreeNAS/TrueNAS fame appear to be moving their development to Linux with "TrueNAS SCALE". Make of that what you will, I guess.
Linus and Greg K-H have both made statements and actions that make it clear that they are philosophically opposed to ZFS as an implementation ("more of a buzzword than anything else"), regardless of licensing issues. They want you to use BTRFS instead, and are going to throw up arbitrary barriers to make ZFS usage and development as painful as possible (like re-licensing non-GPL symbols that they notice ZFS using out from underneath it into GPL).
https://arstechnica.com/gadgets/2020/01/linus-torvalds-zfs-s...
Like, people make a huge racket about how NVIDIA's driver isn't in the kernel and how that means it will never be suitable for day to day use in a desktop environment, because it's out-of-tree and thus will always be in a place of reacting to changes in the kernel as an external team rather than being supported by the kernel team itself. And that's exactly the same situation ZFS is in and will always be in on Linux. And in fact the situation is actually worse than that, while CDDL is open-source it is incompatible with copyleft licenses, by design and by selection when Sun licensed the code. And then you've got the fact that the kernel team is stacked with BTRFS fanboys who are thinking and acting with their loyalties.
I get the desire to improve ZFS on Linux support but the FreeBSD version probably should have remained the repository of record so that ZFS could have been a first-class-citizen in at least one distro. The Linux team is legally and personally opposed to ZFS, it's ZFS choosing to place their focus on improving an abusive relationship.
Second thing, if more and more people start to use ZFS then it will automatically become a center of attention for linux kernel developers, because they don't want to break their users systems.
And one last note: not everything that is out-of-tree is automatically unstable, otherwise the whole userspace code would be unstable.
So FreeBSD's version has never been the "master copy", so to speak. In some ways the most sophisticated version has always been the (now very aggressively close sourced) Solaris 11 ZFS, which is very incompatible with the open source forks because of new features added.
FreeBSD switched from upstream Illumos to the OpenZFS/Linux sources because Illumos development has slowed to a crawl, while ZFS on Linux is ironically very active and has more and more corporate backing, while essentially all corporate backers of Illumos except maybe Joyent (?) are dead, as mentioned on the FreeBSD mailing list. This means in practice development on that fork of ZFS ceased as bugs piled up, since relatively few hobbyists are going to deep dive into something as complex as ZFS. [0]
FreeBSD gained several new features from Linux's ZFS that it simply didn't have before, like native encryption support in ZFS itself without needing Geli/GEOM. I've heard several FreeBSD users get excited about this, so I presume the wrapper wasn't well-loved. Other features mentioned in the mailing list are "multi modifier protection, project quotas, encrypted datasets, allocation classes, vectorized raidz, vectorized checksums, and various command line improvements". It's simply superior to the Illumos upstream, and will only improve over time while Illumos sadly stagnates into oblivion.
The kernel guys are never going to like it, and I fall closer to their camp. I'd rather use Linux's native layering mechanisms instead of using an omnibus package. But I also think ZFS on Linux is in practice very widely used and very mature. Same as the nvidia drivers, too -- people endlessly complain about them, but even Fedora adds a button in the GUI for installing 3rd party repos with the drivers, and my nvidia blobs have survived for 4 OS updates without breaking. There are several OSes like Pop_OS! that just include them OOTB.
[0] https://lists.freebsd.org/pipermail/freebsd-current/2018-Dec...
I think this is mostly related to Root on ZFS, which is pretty standard in the FreeBSD world, but not very stable in the Linux world. If you want to use ZFS on linux I would recommend you to put your linux root on ext4 (or something similar battle tested) and create a ZFS pool on the remaining disks.
All the while I'm not doing things differently from a decade or two ago ): While Docker is working well for me, I'm not sure last decade's push towards containers and dockerizing everything is actual progress. Or rather, declaring defeat in front of self-inflicted problems with shared libs (which btw seems also to a large degree a problem with glibc's insistence on shared libs), language/platform ecosystems, and a false separation of concerns story mixing permission and lib versioning issues.
I will say that performance aside, the UX of BSD firewalls is SO nice. Clear configuration files, features exposed simply, just wonderful.
The base system is separated from the stuff you install, and handled separately, so, you can have a stable, well tested base, on top of which you can run whatever new code you want. Just switch to `latest` in pkg.conf and you get new packages, similar to what you get in Archlinux and the likes, without also moving the core of the system to bleeding edge software.
Accomplishing the same with GNU/Linux is very difficult*; distributions such as Debian and Red Hat ship outrageously out of date packages even for non-essential stuff (i.e. incredibly old CMake, old Git, ...), while Arch Linux has a very recent Glibc and kernels, which not everyone might feel confident enough to use as their daily driver (I do and it's fine for me, but I've heard enough people not feeling too comfortable about it).
As a bonus, recompililing stuff from source on FreeBSD is super simple thanks to ports, so you have that added flexibility. No Linux distro has AFAIK such a flexible approach of both source or binaries being available and easy to install**.
* I think that a GNU/Linux that adopted the same approach as FreeBSD (i.e. base system + ports + pkg in /usr/local) would definitely find a space, but I think it takes way too much effort to build a new distro nowadays for this to become a reality.
** The closest to this I know is Gentoo (but it has no default repositories for binaries), which is nevertheless much more complicated in nature than FreeBSD's ports, and Archlinux, which has ASP but lacks an automated system to handle updating from source and installing dependencies (there was `srcpac`, but it's been dead for a very long time).
I think the fact that the most recent version of TrueNAS (the people behind FreeNAS) is Debian based as opposed to FreeBSD based, says a lot. I also migrated a couple of large FreeBSD fileservers that were using ZFS over to Linux because the clients were also Linux-based (HPC cluster). Specifically, I switched over to Linux for the file servers so I could use Gluster to combine namespaces for large file shares. The Gluster version that is supported by FreeBSD is a few versions old. I was sad to make the switch.
I still like how "clean" the base FreeBSD install feels though. It is minimal with very little cruft. Things work simply and are easy to customize.
I wouldn't say "better" (I don't know want a flame war); I'd say "different". I like FreeBSD, and use it for my firewall (I find `ipf` more intuitive than `iptables`).
I also use it for my fileserver (FreeNAS/ZFS).
I think containers (Docker) works better on Linux. Containers (namespaces & cgroups) are a Linux-thing.
Namespaces and cgroups are an evolution and improvement over jails, probably, because of other Linux things that existed in Linux. I don't know the whole history on this so I could be very wrong.