The killer features for me:
- The pf firewall. Rules you actually understand!
- Jails! When you cannot have Zones this will do.
- Native ZFS. Stable, mature, safe and with all the features you can dream of.
- Linuxulator. Binary compatibility with Linux if need be. Can be put in jail as well.
- pkg/ports. I really like it but I might have been indoctrinated.
- Networking stack. Good. Stable. Makes sense to me.
For a nice graphical UI Linux is more smooth but if you are willing to tinker it can work. As Linux gets all the attention you will see stuff such as Chromium lag behind.
I can understand that can scare people off. But FreeBSD feels like a comfortable old glove for me. I will suffer the minor holes. My beard has grayed and my hair line is non-existant.
If waiting for a laptop I would perhaps wait for FreeBSD 15 for much needed improvements in WIFI. If you want fast WIFI today you need weird hacks routing through a Linux VM[1]. It works rather well but it is honestly a bit clunky.
I'd say less maintenance, churn and deprecating knowledge. I've used FreeBSD as a desktop for the whole 5.*-branch (good times) and I am sure that I would still find myself home should I install it. Linux... not so much, though some distributions are better. There was that idea of "stable core and bleeding-edge applications" and freebsd did deliver, at least in those time, because ports and OS were not same, unlike in linux package management.
Maybe on some distros, but on Ubuntu is just an `apt-get install` away, or can be even be added from installation time. I've been using it for many years without any issues and the experience is great.
I actually combine some non-ZFS filesystems with ZFS with encryption and compression for all my setups, including my laptop. I plan to blog shortly about it and how I'm automating it all. Target is also a Framework laptop, too.
I've tinkered with it in the past and I once had a job where we ran in on our servers. It seems pretty nice, but it never gets the attention Linux gets and the hardware support situation is sorta sad. I always chalked it up to the license and assumed people using it just don't contribute anything back. I love Linux and the support it receives from seemingly everyone these days, but it would be nice to have other options too.
Even under Linux DisplayLink support was a bit iffy, with kernel updates breaking support with frustrating regularity, but that hasn't happened in the last couple of years.
Apparently FreeBSD has had DisplayLink support built into the kernel since 2015[0], and I'm sure I've tried it since then and couldn't get it to work. However it's been at least five years since I tried it last, so maybe I need to try again (although I'm very comfortable with my Linux desktop flow now).
[0]:https://www.phoronix.com/news/FreeBSD-DisplayLink-Support
I have been a happy FreeBSD user for 25 years. It is a FAR SUPERIOR server operating system compared to the rest.
Similar or usually the case more flexibility than Linux due to the excellent ports system that lets you finely tune what you install and the equally excellent binary package system(pkg), while at the same time, base is stable.
No ons is dicking around with the basic system tools, they just keep getting fine tuned.
I would guess 10-30 years down the line we will have an excellent BSD desktop.
The onboarding rails just aren’t there these days. Everyone says the BSD documentation is superb, but the man pages are more of a reference than an onboarding guide.
One major challenge is LLMs have a hard time with BSD-related prompts. They’re trained on so much more Linux content, and there’s just enough overlap between both systems that hallucination rates are extremely high in my experience.
I'm not sure about that. This isn't FreeBSD specific so it's a bit tangential, but I've certainly debugged systems where someone thought it appropriate to run their intensive job on a live box (mind boggling, yes). Seeing it smack dab under their name is kind of important.
Am I missing something?
I grew up in times when people were using stuff like Solaris, Novel and my older friends would occasionally gift me a whooping set of 7CDs with something like SUSE or RedHat so I could join the cool kids club.
While former - in my headspace - were like Oracle - specialized, enterprise solutions, the latter were just different breeds of Linux trying to compete with Windows. Nowadays, for an ordinary dude like myself, we pretty much settled on Ubuntu with plethora of different distributions for hackers and tinkers, but, at least for me, there's not much difference between Mint or Arch. It's like sports team, everyone has their own favorite team, but at the end of the day the all play football. Or fashion.
It's like if you'd ask me about a bike I could go for an hour long tangent about different breeds and brands, but at the end of the day if you just want to cycle around the neighborhood just pick any bike you can that more or less fits your size and you're set.
But for whatever reason BSD seems to occupy different space, why?
Back in those days I could make any Windows installation unrecoverable. I could severely botch a Linux system. But FreeBSD would always keep chugging, no matter what crazy idea I wanted to try.
It may not be the fastest. It may not be the flashiest. But in my mind, it has this whole "reliability" thing written all over it like no other OS has.
For instance, when I was a student (and thus poor), I had a PC made of (free) scavenged parts. It wouldn't boot Windows. Linux would crash during boot. But FreeBSD just chugged along like there were no issues at all.
I later discovered there were some physical issues with the UDMA mode on the IDE controller, and that's probably what tripped of the other OSes, but FreeBSD would just work. Albeit slowly, but it actually ran fine. For years.
So while I no longer rely on FreeBSD myself, I look back on it with fondness. That's also why I decided to help port .NET to FreeBSD when the first cross-platform version of .NET Core was launched (for Windows, Linux and Mac only). I thought every decent OS deserved to have a working .NET version ;)
Pros:
- It is actually in a way easier than Linux. The installation is less complex and more reliable than a Fedora if you are not afraid of the TUI. More important it will soon include a desktop installation script.
- All the software you will ever need is in pkg or ports unless you are a degen
- You will pick up jails for container use cases in 10 minutes and will never want to go back
- VM with vm-bhyve is simpler than libvirt and no XML to deal with.
- Same with networking, you will pick it up quickly and no more confusion between NetworkManager, systemd-networkd, ifup, etc.
- The linux-compat feature will get you very far and there are a lot of Linux apps packaged already
- Hardware support is ok if you check first on https://bsd-hardware.info/
- The wifi thing is no problem with https://github.com/pgj/freebsd-wifibox
Cons:
- You won't be able to mount/read your LUKS drives from your Linux era.
- Sometime very critical packages like Chromium disappear because they won't build (for example no chromium in pkg on the current FreeBSD 15 BETA)
- Bhyve do not support SPICE so you are stuck with the perf of VNC.
- Bhyve do not have vsock so no blazing fast waypipe
- You basically loose a lot of security feature of web browsers, most of the sandboxing of Firefox and Chrome. This is really bad.
- I haven't really dived into it but it seems there is no Bluetooth LE
- It is fast but doesn't feel as fast as an Alpine
If you are thinking about it and this is ok for you, I would say go for it.
https://svnweb.freebsd.org/base?view=revision&revision=34396...
Is security not a priority for their developers?
They are not directly comparable since ZFS is also the volume manager for your ZFS filesystems, enabling features like `zfs send` of snapshots or entire filesystems for easy backups.
> Let's start with the first and probably most important step: setting up the network. […] I don't fully remember how I actually set up the network as it's been a while, but it involved adding the following to `/etc/rc.conf`
This would be a great time to show off FreeBSD's documentation. A great “Step 1” would be https://man.freebsd.org/cgi/man.cgi?networking(7)
And then later on when people reasonably wonder what the heck else is going on in `rc.conf`: https://man.freebsd.org/cgi/man.cgi?query=rc.conf
All of the modern `rc.conf` examples will also be using `sysrc` instead of telling you to edit the file directly, at first as a first line of defense against fatfingering the file formatting, and later when you get more advanced as a way to transparently descend into Jails' `rc.conf`s without having to think about it: https://man.freebsd.org/cgi/man.cgi?query=sysrc
One thing FreeBSD's installer does not do a good job with that's very relevant for laptop usage is any automatic setup of hardware-specific kernel modules. You will want to enable either `coretemp` or `amdtemp` (depending on your particular Framework model) which will automatically populate all the sensor data, easily queried via `sysctl`:
- https://man.freebsd.org/cgi/man.cgi?coretemp
- https://man.freebsd.org/cgi/man.cgi?amdtemp
[Lammy@Emi] sysctl dev.cpu.{0..7}.temperature
dev.cpu.0.temperature: 40.0C
dev.cpu.1.temperature: 43.0C
dev.cpu.2.temperature: 41.0C
dev.cpu.3.temperature: 42.0C
dev.cpu.4.temperature: 40.0C
dev.cpu.5.temperature: 40.0C
dev.cpu.6.temperature: 42.0C
dev.cpu.7.temperature: 43.0C
e: and see my comment here about the quickstart firewall class options that let you avoid writing any of your own rules until you really want to! A laptop would do well with `firewall_type=client`: https://news.ycombinator.com/item?id=45794391