This blog by Vermaden is probably one of the most cited in the FreeBSD community when someone in a forum/subreddit asks why FreeBSD. I think it does a good job encapsulating the reasons one would choose FreeBSD over Linux or other OS’s.
I’ve become more partial to the *BSD’s in the past couple of years and respect what each one brings. I do daily drive Debian tho ;)
I do like all of the beasties, but all of them have the same problem that keep me from just setting up a BSD based workstation: Lack of hardware support. Way too many times have I installed a BSD on an old Laptop and the sound doesn’t work, or doesn’t work properly. The WiFi doesn’t work or is flakey. And on both FreeBSD and DragonFlyBSD the radeon graphics driver fails to load and you’ll lose the Display. But then any Linux distro has no issues on the exact same hardware.
I’ve compared Linux with FreeBSD on a rack server of mine in terms of power usage and performance. The system has 16 GB of ECC memory and a 6 core 2 threads Xeon and a SAS RAID controller. Both FreeBSD and Void Linux were basic stock installs on an SSD.
To keep it short: Linux won. With Linux on idle (with only htop running in a TTY) the System would use around 85 Watts. The same but on FreeBSD would make the System use ~105 watts. I spent a whole day researching for loader.conf and sysctl tweaks, but I only managed to get it down to 100-101 watts. In terms of performance FreeBSD wasn’t bad compared to Linux (in fact it’s about the same I’d say), however in certain situations Linux was better. Like when all CPU threads are maxed out because of some program FreeBSD tends to become very unresponsive, while Linux can cope with it a lot better.
Now I’m not saying that FreeBSD is bad. But in all my attempts at using it as a daily driver or Server OS has just showed me that it’s less of a headache in the end if I just go with some minimal and simple GNU/Linux distro.
I might try a beastie again as a daily driver once I can get my hands on some decent BSD friendly hardware.
lack of hardware support is a huge problem. FWIW, if you have a thinkpad, OpenBSD should work on it no problem. Free/NetBSD will work on Thinkpads with some minor tuning.
What you said about performance re: FreeBSD v Linux tracks with what I’ve read. Basically, those who know are capable of tuning FreeBSD to their needs, and can make it as performant (or more so) than Linux. Re: graphics, that’s something to research before using any BSD.
I think the biggest advantage of FreeBSD is still storage; ZFS and boot environments are a huge deal. BTRFS is just behind ZFS in this regard. I also like the stability that FreeBSD provides. Linux changes very rapidly and this can be a problem for some.
I will say that I think FreeBSD is way behind in innovating. A lot of their pros (jails, ZFS, boot environments) come from Solaris, or are being equaled by linux (networking performance, as an example).
I still wanna give FreeBSD a try… I just haven’t had much of a reason too yet.
It’s a good os, even if it is lacking in some ways compared to linux. Boot environments/ZFS is pretty great.
I also appreciate that FreeBSD is slower to change, and won’t change just for it’s own sake. Features are thought out and added with care. Linux is obviously a little fragmented, which means development happens quicker and newer features pop up, but then there’s the issue of things breaking, or distros make big changes that force users to find another distro. (Think of the change redhat made to CentOS for example).
yea sometimes I’ll setup a VM with some kind of BSD for fun but whenever I try it on my real hardware I get some weird issues like you mentioned. Similar things happened years ago when I was first messing around with linux and today I have very few (actually almost zero) linux-related hardware problems so hopefully the BSDs follow the same trajectory and eventually become more usable/popular
used thinkpad is your best option I think for BSD
deleted by creator
Is there a BSD (or a reasonably simple way to install a BSD) without any proprietary code (including drivers, microcode, etc.), like Debian?
I believe OpenBSD does not include any proprietary software in its repositories. Or at least, I know that it does not have any proprietary drivers or microcode.
Nice, thank you. I’ll have to take a look at OpenBSD
NetBSD and OpenBSD can also be completely compiled from source. The source for each of them is available to look at online.
OpenBSD is great; if you ever need help setting it up for desktop use let me know I’d be happy to help
Sounds like it would take a very long time, but it does sound interesting. I’ll keep that in mind when I decide to try it
deleted by creator
Nice. If I can’t get it working, I’ll pester you and @whoami with questions
deleted by creator
it actually doesn’t take too long. OpenBSD’s install process is actually quick and really straightforward. Here are two resources that helped me:
https://www.c0ffee.net/blog/openbsd-on-a-laptop/
https://sohcahtoa.org.uk/openbsd.html
Also, OpenBSD’s man pages are updated with each new release, and the FAQ is a good thing to check out:
here is a discussion on Reddit about OpenBSD:
https://www.reddit.com/r/openbsd/comments/6qd3pf/openbsd_proprietary_components/
Edti: you’re original question is basically asking if one of the BSD’s has something like a linux-libre kernel correct?
I believe OpenBSD won’t ship any binary blobs for things like wifi cards, for example. the microcode is something I would have to look up. Each one should function the way Debian does in terms of how it works out of the box. But getting certain hardware to work might require binary blobs, which I think is true in Linux, with things like NVIDIA cards.
https://www.phoronix.com/scan.php?page=news_item&px=OpenBSD-Sucks-Presentation
https://www.openbsd.org/policy.html
If I understand correctly, the core of each BSD is free software (code you can see and modify), but to make things like certain wifi cards or GPU’s work you may have to use proprietary code. For example, NVIDIA releases drivers for FreeBSD, but I would imagine those are similar to what you get in linux—binary blobs.
EDIT: I was going through a NetBSD mailing list, and it looks like they do ship some proprietary code, but that discussion was more than a decade old, so I don’t know for sure.
Yes. I wouldn’t use it for anything where I’d need proprietary GPU drivers, but I do typically have to install proprietary Wi-Fi drivers on Linux. The important thing for me is that I can’t accidentally install anything that isn’t fully open-source unless I explicitly decide to (like adding “non-free” repositories in Debian)
If you have an NVidia card then you may want to look at NetBSD. They use a nouveau port from Linux.
Thanks. Luckily, I don’t think I’ve ever had an Nvidia card
or tell me more about your hardware and maybe I can help more if I know specifically what you have. OpenBSD will often work with manufacturers to get them to
On Linux, it’s nice to separate installations made with and without the package manager. For example, the package manager can install sshd binary at /usr/bin/sshd but if for some reason I manually compile and install it, I can install it at /usr/local/bin/sshd.
On freebsd it looks like the package manager (pkg) is installing packages in /usr/local. Is it possible to have a separation like the one I described above?
ooof…that’s one I don’t know off the top of my head…it might be possible using the ports tree (aka building from source) rather than using pkg. Also, what is the use case for doing that? Answering that will help to figure out how to do it on BSD vs linux,
Try asking on the freebsd forums or at unitedbsd.com if you can’t get any help here.
Use case is as I said separating the prefix that is used by your package manager vs. what you are installing your manually compiled stuff in. It helps in avoiding conflicts between your manually installed stuff and the binaries and libraries installed by your package manager.
FreeBSD allows you to compile your own software from souce, which should allow you to choose where you install it…Gentoo’s portage is based off of FreeBSD. Also, pkgsrc is available to you. https://www.pkgsrc.org/