A Trip into FreeBSD
christine.website
christine.website
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.
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.
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.
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 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.
Underrated feature.
Haven't used it yet but what I've read about podman looks like it may fix some of my docker complaints. Again, I've only dabbled in both of them so would be happy to hear other experiences as well.
bastille among others try to provide a nice UX atop them, but the important thing is that jails are strictly more powerful (on FreeBSD a jail can have its own network stack, while still running on the same kernel, for example)
I dunno about 'superior' but jails are very definitely different and provide a bunch of features containers don't.
For anyone who is wondering, it is: "su -s /bin/bash user".
Typically when you want to su to it and it has nologin, it will say "This account is currently not available." or "su: user /bin/bash does not exist or the user entry does not contain all the required field". The former mostly.
You can bypass this with the aforementioned flag to su.
/bin/sh is part of base and can be relied upon (outside of esoteric setups), as well as /usr/bin/su
Someone said "sudo -u user /usr/local/bin/bash" works on FreeBSD. Does that work at least? Of course change the user and potentially the path to bash if you have it installed elsewhere.
She could have just ^C'ed it, but coming from Linux, how was she supposed to know that?
Or just all the things currently running interactively.
Or maybe just everything that hasn't started yet.
Any option is better than having to chose between waiting indefinitely or hitting ctrl-alt-del and starting in single user mode and hoping to be able to disable it there.
Agreed that it's a poor default these days, but for what it's worth the option is available in the post-install setup interface alongside some other security tuning knobs.
So the install completed, and everything was fine as long as I stuck to command line stuff. But under xfce, mate, and even plain X Windows, the mouse had a jerky/laggy movement that I didn't know how to fix. I tried enabling/disabling moused but it didn't seem to have any effect. Maybe it was something about running in a VM, but I have no such problem running linux distros in a VM. Anyway, it was such a pain that I finally gave up.
They’re on the Tier 2 support tier, not the Tier you’re foolish to even try to use this support tier.
> Had she started on a standard x86_64 PC desktop or supported laptop like the thinkpads, she would have had much better results.
On the other hand, if she owned the wrong laptop the entirety of the text might have been about making her touchpad work or something.
I think that alone shows a good difference between FreeBSD and NetBSD in terms of the out-of-the-box experience. I'm not saying NetBSD is better, I like both systems, I'm just saying that they do have very different assumptions about what should be enabled and running by default.
FreeBSD >= 13.0 has an aarch64 RPI image that should boot OOTB for both RPi3/RPi4 -- the medium article referenced predates the introduction of this image, and it should generally make all the firmware steps obsolete. The dts replacement might still be necessary with it, I hadn't really looked at the differences between the one placed in review vs. upstream.
I've been a Linux full time user since nearly the beginning (started in '92) and been slowly migrating to BSDs for server use. Unfortunately the baroque complexity of systemd is making Linux distros more into OSX-like opaqueness. And nothing wrong with OSX, I have a Mac too and like it for what it is. But I'd never run servers on OSX, and Linux is starting to become something I'd rather not run servers on. FreeBSD is a breath of fresh air.
At home, at any given time I might have around 10 or so Linux or BSD VMs across my laptop, Synology or Raspberry Pi’s. I’d like them to know each other’s names (even if they are not all directly reachable via IP). I really really hate typing or copy/pasting IP addresses.
`ssh seanlaptop.local` is much better then having to ping broadcast or log into the router :)
The simpler solution is to connect your DHCP and DNS servers. Dnsmasq has this built in, and is frankly a fantastic piece of software. If you’re sticking with ISC servers, BIND can be configure to allow dynamic DNS updates, and dhcpd can in turn be configured to manage those updates.
Then configure DHCPd to use that key to populate the domain with hosts.
Edit: This is roughly how it is configured: https://unix.stackexchange.com/questions/265142/isc-dhcpd-to...
If you use different dns/dhcp tools it might be done differently.
There seem to be quite a lot of posts where people 'try' out FreeBSD in a very superficial or largely inappropriate way. I'm a long-time FreeBSD user (20+ years) and it excels for stable operational *server* use-cases - trying it out as a user workstation for a few hours/days and complaining that the installer is text-based, the desktop environment is less polished, or performance is a few %-age points less than Linux on an artificial benchmark completely misses the point and isn't really helpful - if you want a simple rock-solid server operating system running it is great but you get the benefit in the long-term not immediately.
Linux users: don’t try to run freebsd as you would run linux... Than you’ll see why it is so different...
I'm not sure if it's the right approach to edit timestamps, sounds like a hack to me.
One more crippling bombshell hit the already beleaguered BSD community when IDC confirmed that BSD market share has dropped yet again, now down to less than a fraction of 1 percent of all servers. Coming close on the heels of a recent Netcraft survey which plainly states that BSD has lost more market share, this news serves to reinforce what we've known all along. BSD is collapsing in complete disarray, as fittingly exemplified by failing dead last in the recent Sys Admin comprehensive networking test.
You don't need to be a Kreskin to predict BSD's future. The hand writing is on the wall: BSD faces a bleak future. In fact there won't be any future at all for BSD because BSD is dying. Things are looking very bad for BSD. As many of us are already aware, BSD continues to lose market share. Red ink flows like a river of blood.
FreeBSD is the most endangered of them all, having lost 93% of its core developers. The sudden and unpleasant departures of long time FreeBSD developers Jordan Hubbard and Mike Smith only serve to underscore the point more clearly. There can no longer be any doubt: FreeBSD is dying.
Let's keep to the facts and look at the numbers.
OpenBSD leader Theo states that there are 7000 users of OpenBSD. How many users of NetBSD are there? Let's see. The number of OpenBSD versus NetBSD posts on Usenet is roughly in ratio of 5 to 1. Therefore there are about 7000/5 = 1400 NetBSD users. BSD/OS posts on Usenet are about half of the volume of NetBSD posts. Therefore there are about 700 users of BSD/OS. A recent article put FreeBSD at about 80 percent of the BSD market. Therefore there are (7000+1400+700)4 = 36400 FreeBSD users. This is consistent with the number of FreeBSD Usenet posts.
Due to the troubles of Walnut Creek, abysmal sales and so on, FreeBSD went out of business and was taken over by BSDI who sell another troubled OS. Now BSDI is also dead, its corpse turned over to yet another charnel house.
All major surveys show that BSD has steadily declined in market share. BSD is very sick and its long term survival prospects are very dim. If BSD is to survive at all it will be among OS dilettante dabblers. BSD continues to decay. Nothing short of a cockeyed miracle could save BSD from its fate at this point in time. For all practical purposes, BSD is dead.
Fact: BSD is dying
+1 yes, this.