I used FreeBSD at Yahoo (even on my desktop) and purposely avoided Linux at all times, and I was very happy because of it.
Linux got a lot of usage where FreeBSD would have been a better choice simply because Linux was the "hot new thing" that people wanted to use. They didn't want to use the best thing, or look at alternate things, they wanted to use the thing they had heard others were using.
It's a shame, because FreeBSD is a great operating system that almost no one has used seriously.
Tangentially related, I use OpenBSD as my desktop, have for the past decade. Very stable, very simple configuration with sane defaults (this is better now than ever; most OSes get more complicated over time, OpenBSD seems to get simpler), and very secure.
Coincidentally just set up OpenBSD on an old iMac G4 to try as desktop. Pretty cool so far, though web browsing is basically, for me, limited to non-JS sites. No Firefox available and it would probably crash nonstop (Otter does). NetSurf is great though! Outside of that, the OS is easily-configurable and the "sane/secure defaults" approach is great. It also thus far feels very cohesive. Time will tell, but I'm impressed thus far. :)
I did the same a while back but for some reason the display is stuck coming out of the VGA port. Having never owned one and seeing no video I thought my machine was not supported by OpenBSD. I knew there was a VGA port and plugged the monitor in and bingo, X windows. It ran most programs just fine. I used it for a day mainly running drawterm to a plan 9 machine.
Honestly, I don't know how the landscape looks today.
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.
When I started in 2004, Yahoo used FreeBSD everywhere except for acquisitions (including Inktomi which was a large part of the host count, running Linux); when I left in 2011, it was more of a mix; there wasn't yet a mandate to migrate to Linux, but I suspect it was coming. The mandate at that time was more of support both.
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.
This is all still true. FreeBSD is amazing as an operating system, everything is integrated nicely, everything just works, sure the userland isn't the same as GNU in some respects but you get used to it (and some of the GNU utilities are available if you want - like gtar).
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.
What was stated is that BSD runs Linux binaries better than Linux, not better than BSD binaries.
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.
In the early 2000s, Linux binaries did run faster on FreeBSD than on Linux on the exact same hardware, when using a stock FreeBSD install and a stock (but light) Linux install.
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.
Benchmarks I've seen everywhere show worse performance for FreeBSD vs Linux.
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.
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)
I confirm the fact that linux binaries were noticeably faster at least in 2000, when I was using it exclusively. Also I had a laptop with a broken memory module. Linux would panic unless I put it in the fridge (don’t ask me how this came about, but it helped), but freebsd was stable, apart from some crashing applications. And the kernel configuration was easy to read and understand.
Also if firewalling/packet filtering was a consideration, ipfw was (is?) leaps and bounds nicer to work with than ipchains/iptables. This (c. FreeBSD 4.x) is what introduced me to FreeBSD.
The config file syntax matches that of the old pre-4.5 OpenBSD pf but the code under the hood has seen much evolution. FreeBSD's pf is SMP-capable, for one thing, unlike OpenBSD's that "will only use one processor": http://www.openbsd.org/faq/pf/perf.html
It is developed in a single source tree and released as a complete operating system, so the base-system utilities are all very well integrated with the OS and consistent with each other. The third-party software ecosystem is very flexible (especially with Poudriere) and does a very good job keeping those packages from interfering with the base system without also making them feel separate. It had containers before they were cool. A lot of configuration can be done in a very concise and consistent way, and the documentation is overall very thorough, for example:
I'm a big fan of BSD and it's philosophy, but I think it's relative lack of adoption is now a vicious cycle and it's falling behind. It is better in some specialties, IMO: if I was setting up a NAS server, some serious firewalls, or traditional web servers, I would give BSDs a serious look first. The documentation is great, and there's a lot to be said for it's simpler, cleaner implementation. However, I think Linux is winning still. I need CUDA for work, and frequently use software that supports Mac, Windows, or Linux. So for my daily driver or other day to day usage (like cloud instances), I wish I could use BSD but I just don't see it as being a viable choice anymore.
I think the case for running FreeBSD in some of those cases is dwindling a bit.
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.
As long as linux has to hack zfs into the kernel with all their shims to avoid breaking license terms, I'm going to consider zfs a FreeBSD advantage. I've heard too many people complaining about issues with zfs on linux, so as someone who likes to configure once and then forget about it for a few years, that's not for me. I don't want to update my system one day and then find I can't mount my filesystem anymore (or worse).
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.
> I've heard too many people complaining about issues with zfs on linux
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.
Used ZFS on Linux on NixOS as root for 2.5 years without any issues. NixOS does have good integration though, including automatically-run OS tests that verify that there are no regressions in ZFS support.
I haven't used ZFS myself, but the people I know who have have never mentioned problems with it. This is on pretty exotic configurations, too, like POWER hardware.
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.
Due to the licensing issues FreeBSD is never going to be a first-class citizen in the kernel source tree, and that's the most optimistic possible view of the situation.
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).
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.
ZFS never came from FreeBSD -- its origin is Solaris, and specifically from the tediously open-sourced and then thrown under a bus by Oracle OpenSolaris, forked into the Illumos project.
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.
Just out of curiosity, wouldn't it be able to setup thousands of ZFS test in a CI environment for every new linux development build, to see if there are any regressions, e.g. 1 failed, 999 passed.
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.
Idk Linux on desktop has regressed lately: OOM crashes/OOM killer kicking in (which maybe wasn't so great an idea to begin with), gnome3, snaps and other crap (that doesn't work well IME) littering mount points and other places with info used for internal purposes, systemd creating complexity for it's own sake (or rather monopolizing know-how at RedHat), wayland, bash/getline with vi editing mode broken more than it used to be ...
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.
Yeah I'd love to see an update on this benchmark re: network syscall performance: http://bulk.fefe.de/scalability/. FreeBSD has very good results in some of those, but even then Linux was showing some truly impressive strengths of its own. And which kernel has gotten even more attention since then, and become even more (that is to say, completely) dominant in the Top 500? (happens to matter for me, even though it's a strong data point anyway).
I will say that performance aside, the UX of BSD firewalls is SO nice. Clear configuration files, features exposed simply, just wonderful.
PCI pass thru, eh? That's pretty cool. I'll hand it to the BSD community (the community is another thing I love about BSD btw - attended MeetBSD a few years ago and it was such a fun crowd) - they create some killer compatibility layers. Like in this thread, that simultaneously illustrates this, and also why I'm afraid to put it on my primary work machine: https://forums.freebsd.org/threads/would-it-be-possible-to-p...
FreeBSD feels definitely more thoughtfully designed and assembled, while often Linux distros look like a mishmash of packages.
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).
A few years ago, my answer for servers would have been ZFS. However, given that the FreeBSD and ZoL source trees are now the same, I don't think that's necessarily the case. ZFS is still more of a first-class citizen on FreeBSD than Linux, but the distinction is minor at this point.
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.
> What about freebsd makes it a better choice as compared to Linux based systems
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.
FreeBSD jails were long before Linux namespaces and cgroups and offered (I think) all the convenience of containers very early on.
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.
I'd love to apply any license of my choosing to any software. Fortunately, that is not what our current culture considers the highest form of freedom :)
Because I'd only benefit as a consumer if companies and persons were forced to contribute back their published changes, and even release their stack if its AGPL. I win nothing if Sony makes playstation OS from freebsd but for no reason at all, I can't run games on freebsd. Can you imagine if you could just run all modern games on freebsd? Windows would have been long extinct.
Linux got a lot of usage where FreeBSD would have been a better choice simply because Linux was the "hot new thing" that people wanted to use. They didn't want to use the best thing, or look at alternate things, they wanted to use the thing they had heard others were using.
It's a shame, because FreeBSD is a great operating system that almost no one has used seriously.