I use FreeBSD on a desktop as a server and for desktop usage with a touchscreen to run a virtual pipe organ that needs an obscene amount of resources to run. There’s a few things that I see as pros:
Zfs on root/by default. Absolutely love zfs and not having to screw around with dkms/kernel issues etc to get it running is a huge plus imo
Jails - I cannot stand docker. It’s opaque and I’m stuck trusting that whatever image I’m downloading is updated/secured and or running multiple extra containers to stack together. With jails I spent my time setting up the jail once (installing services etc), and using a jail manager (bastille) I can maintain what I think is better control of the internals and updates etc. the commands mirror the os as well which is nice
Integrated world - the way bsd integrates the core system and separates out the packages means most security updates just need a service restart not a full reboot so uptime between OS patches can be months at a time. They’re also very conservative about changing how the core system functions so how I install/set up/maintain the system in 2007 is the same as today.
The manual. Anything I need to know when adding services including edge use cases is in the manual on their website. Much cleaner written than the arch manual, and has a pdf download available if you aren’t going to always have the internet (and a terminal interfaced manual option to download).
For my usage there’s not much I can think of for cons, but I will say laptops and particularly WiFi suffer currently. There’s funding and works in progress to fix this but still idk I’d use it on a laptop today without carefully checking support for the hardware like I would’ve with old school Linux. They’ve come a long way recently with edge cases for instance I’m currently running a windows vm with gpu pass thru using their bhyve vm manager, something that wasn’t supported a year ago, so I am optimistic the funding will help in the next few years on some of the laptop issues.
I'm 100% with you on Docker. I haven't used BSD jails in a very long time, but do you have a view on how they compare to other Docker alternatives in Linux like LXC containers and systemd-nspawn?
The majority of the Internet's routing and switching architecture is BSD based. Historically it had the most stable and performant network stack of all the OSs.
I used it extensively at one job in a previous life when I was a network appliance developer. It was rock solid and lightning fast. Tried it as a desktop at home and had a terrible experience.
The little differences in the Unix commands used to drive me nuts as well...
Had isn't Linux faster now. I know on the very resource restrained box I used li ix had noticeably faster network. Went from 500 ish to full gigabit speeds.
It very well could be these days. It could also be default settings that are better on Linux for certain activities. The network stack is highly tunable.
I tried FreeBSD on a laptop.
It spammed error messages all over the installer's TUI until I disabled my fingerprint reader in BIOS.
Then I had to patch and recompile the kernel to get it to talk to my laptop's battery sensor.
Then there were half a dozen other issues I solved one by one, like getting the touchpad and the camera to work, and auto-detecting my networked printer/scanner.
Then I read up on why WiFi is so unbearably slow, and the solution was to pass-through a WiFi driver from inside a Linux VM.
I didn't actually notice any end-user advantage of having a "fully integrated system" either, so I gave up and went back to Linux.
I've used Linux for 20 years now, and yes the experience was similar to back then.
But back then, there wasn't a better FOSS option. Now there's modern Linux.
Don't get me wrong, I think BSD is a great system. It's just not the right OS for a new-ish convertible laptop.
While you're not wrong there are still FreeBSD pain points particularly around wifi that remind me of 2007 when I first moved to Linux (and then FreeBSD). They're working on it and have some funding put aside to pay developers to help remedy this. Laptops also are very likely to have odd and end edge cases, for instance my chromebook needs to pass audio over i2c which FreeBSD doesn't support and even linux needs some hacky scripts to run through the commands to enable this (and the script needed an update because THIS particular model was slightly different from others by the same brand...). Linux in this regard moves much faster in getting support going and requires little to no pain especially in comparison. I love FreeBSD and use it everywhere I possilby can but there's certainly things it's just not easy/practical to use it for right now.
One thing no one mentioned is the license. I won't touch BSD because if any BSD system gets good enough, a big corpo can fork it, get slightly ahead, and then never give back.
BSD developers: who cares about that. And, it is already happen. Android libc use lots of code of OpenBSD libc. OpenSSH is used everywhere.
GNU's ssh implementation seems to be some abandoned trash, even though it was started in 1998, before OpenSSH. If OpenSSH doesnt exist, we can hope that everyone will be using differently broken ssh implementations; I'd expect gnu ssh to be a buggy, unreliable implementation which support hundreds of thounsands of flags and configuration options. Workers everywhere will be punished because of their buggy implementation of ssh. Why workers in every companies have to make their own ssh implementation? They should be doing something else.
BSD is well designed and cohesive but has many more missing bits and contraints than Linux. So, if you are in its sweet spot, it is awesome and maybe better than Linux. However, outside that it can be totally unusable.
For me, the biggest issue is the lack of software. There is both a mountain of it as it is of course an POSIX compatible OS and at the same time it is trivial to need important software that is missing.
As a desktop, it therefore feels very nice and also very limiting.
I love that it is actually real UNIX with an unbroken history back to the beginning. I find that really compelling. At the same time, I always get “bored” using it because it inevitably does not support what I want to do.
I am still hoping Chimera Linux finds a sweet spot that melds the two worlds in a nice way.
Glad you brought up the software point. Back when I tried I had the same issue, but no one mentioned it when I was hearing about why I should try out a BSD system. Seems that even open source software often doesn't have any of the BSD's in mind and you end up needing to use that linux compat thing I remember seeing. If that even works for whatever you are trying to use.
I have used all 3 major BSDs (Free, Open and Net). FreeBSD is ideal for servers due to its performance. OpenBSD is perfect for security appliances and NetBSD is perfect if you have exotic legacy hardware.
This being said, I have also used OpenBSD for about two years as my daily driver on an old second hand laptop, and I really liked it. With a minimum of configuration, installing software was as easy as Debian (just your pkg_add), and configuration is just super easy since the OpenBSD documentation.
It has improved a lot done then: installing security updates (sysupdate) and upgrading (sysupgrade) from one version to the next is amazingly simple. If your hardware is supported, OpenBSD is just a pleasure to use. Its only default is the lack of "advanced" file systems and volume managers.
I have used all 3 major BSDs (Free, Open and Net). FreeBSD is ideal for servers due to its performance. OpenBSD is perfect for security appliances and NetBSD is perfect if you have exotic legacy hardware.
Funny that those descriptions contradict what these Distro actually aim to do. NetBSD is a the supposed performance oriented distro. FreeBSD should be able to do both, desktop and server. But your are on point with OpenBSD.
I have no idea what you are talking about. NetBSD is portable. Its performance is very good (it has to be, since it works on stuff like 68040 Amiga and Atari), but probably a bit under FreeBSD, since FreeBSD is mainly focused on Intel and AMD.
In my opinion Linux over the years got too caught up in politics and involved with big corporations having influence on certain non-trivial decisions.
But I also think the BSDs are better actual Operating Systems in contrast to Linux being only the kernel of which different projects make use of to provide their final products to the end user, its way more fractured.
You clearly don't know what you're talking about. OpenBSD is an absolutely legitimate Desktop OS and has no special use case. Its hardened and comparably slower than Net- and FreeBSD, but thats it . Guess you're an "expert".
I've heard BSD people criticize Linux ecosystem as "fractured", and this discourages me from BSD. I see Linux ecosystem as one that grants you choice, and I love that. This criticism gives me the impression that BSD takes that away, that where will be one standard way to do many things. Maybe I am wrong or misunderstood.
It's more that changes can be made with coordination across the OS, with a shared vision and goal. Linux distros are primarily integration projects, putting together the components from other peoples projects. BSDs are in control of the base OS project as one coherent project.
OPNsense is the best firewall, IPS, and IDS I've used. If they made a Linux version of that OS I'd switch to that in a heart beat becuase of driver compatibility
For a server - it's fantastic if you're a reasonable adult and if you don't have a compulsive need to install every shiny new "app" you find on the internet. Terrible if you hate reading any kind of documentation. Terrible if you already decided that some of its core concepts are stupid and try to force stuff in order to mimic your favorite Linux dist.
Takes some knowledge and planning to set everything up properly but when it works, it works forever.
ZFS works as intended. I hear that it's miles better these days though in Linux.
Jails will make your life so much easier.
If the software isn't available in the ports tree you don't need it. You may want it but you really don't need it (bro just download my Docker image, I wrote a webserver in rust bro I promise it's super stable and it's never been done before bro). Enable Linux binary compatibility or fire up a virtual machine with a tiny dist if you're a masochist.
I personally like the default firewall, pf. It's got a bad reputation in some circles though.
I guess it depends on the use case. If you prioritize network and zfs performance, sure. There's a reason why the Netflix CDN or your router runs some BSD derivate.
I'd argue that the jails are a feature that hasn't been replicated. Each jail is a container and can be set up as an isolated environment with its own filesystem, network stack, set of user accounts etc. I know there are a few similar solutions on linux but nothing that is so deeply integrated.
Yes, of course. I believe it was a NetBSD developer who initially wrote it.
I tried PC/BSD on a desktop quite a few years ago and it was pretty good, apart from having to build a lot of my software from their ports tree. That ultimately put me off and I went back to Linux. I tried FreeBSD on an old laptop last year and no matter what I tried, I couldn't get it to recognize my Wifi adapter. I gave up after a couple of days.
So, if your hardware is supported BSD is good, but if it's not than it's really not.
Seriously though, I tried putting FreeBSD on my Linux laptop a few years ago and it was not a fun time. Reminded me a lot of running Linux on desktop in the 2000s when I first discovered Linux.
I'm rooting for them though. I like the idea of keeping development and documentation so tightly integrated and maintained by a single dedicated company.
MacOS is actually not a BSD as some people like to think.
It is Unix, it used to be posix tested but it has never, ever been a BSD.
MacOS is based on the mach kernel, a kernel that was intended to replace the BSD kernel for a GPL licensed Unix. Most of the people who wanted a GPL Unix just went with Linux in the end. We are still waiting to see what Hurd has to off though.
https://en.m.wikipedia.org/wiki/Mach_(kernel)
Your point is well taken and I appreciate expanding my knowledge on this a bit, but I don't think that it is that cut and dry. Mach, the kernel from which both is not Unix. Mach is basis for XNU (X is not Unix, sound familiar). From the screenshots from Wikipedia, pretending that BSD is not embedded within MacOS is just trying to obfuscate things. The Mach virtual memory manager for instance is in FreeBSD, so it goes the other way around as well.
I used FreeBSD before I used Linux. It was still really complicated to set up at the time. I can't speak to modern versions. I also used openbsd more recently to make a router out of a sun ultra 5 I trash picked. Learning pf and seeing up a router all by hand was a good learning experience. Then the hd crashed and I didn't have a backup of my configs. I didn't have enough ambition to start from scratch, and there are plenty of modern distros that are ready made routers.
I use GhostBSD on a Lenovo ideaPad 300 Which is a FreeBSD based Desktop oriented BSD
I've used it to stream to Twitch, surf the Web, play music, edit photos & videos, etc.
Linux Is Not UniX
FreeBSD is for those who love UNIX. Linux is for those who hate Microsoft.
I have a FreeBSD time server that will be hooked up to a GPS at some point and my router uses OPNSense, so FreeBSD as well. I haven't really used it much, but to a journeyman who will never write much if any code, they each have their own use case. I have a Mac Mini and a MacBook Air (really my wife's), so I technically use it there.
Linux dominates and will dominate the desktop space between the two for a good long while (newer packages, more support, etc...). It also currently wins out with regard to gaming between the two. There is nothing wrong with Docker/Podman/LXC, but I don't know enough about jails to really comment on which is better. Support is massive for docker though, virtually everything self hosted has a docker image. So I think that Linux takes the application server space for the most part.
FreeBSD keeps better time as I understand it, so that is why I chose it for my time server. Network Devices often use FreeBSD and do so very well, although there is also OpenWRT and others that do routing well, but are children compared to OPNSense and pfSense for example. I am thinking about spinning up a matrix server and and/or an email server on a FreeBSD box just to see how well they do.
Controversial segment follows:
Although there is substantial overlap, each major OS works its own brand of magic pretty well due to the support that people give it. I use Windows for my gaming PC for example because Playnite and better game support. MacOS, which is based on BSD btw, still has the market cornered on the creative pursuits. Apple products in general have the most robust and well put together user experience and will for a very long time. Android has the market cornered on bombarding you with a thousand ads near constantly via phones, smart TVs, and digital signage if that is what you are looking for. Its big use is in its ability to be hacked and shaped by more tech savvy users.
I remember so odd not so transparent stuff not working well when I tried it years ago, like throttling of cpu/gpu, fan control, sleep modes, stuff like that. Provided your hardware is fully supported though I think they provide an excellent experience.
Maybe I should try to rebase my home server to freebsd …
I've tried FreeBSD and in my experience, it was just like clunkier, worse documented linux. I specifically remember having issues with wifi drivers not working and drivers as a whole being a huge pain. I've also tried setting up OpnSense in a VM (for testing purposes) and that was just as clunky.
I've also thought of trying TrueNAS core... But the way I see it, it's just clunkier TrueNAS scale without proper virtualization and with more limitations.
And those my thoughts on FreeBSD. Clunky.
E: All of that and it's just licensed under the wrong license... I like the BSD license, I just don't think it works for an OS.