I've revisited FreeBSD on and off since 1997, the last time being end of last year. Couldn't get my USB Schiit stack working unfortunately, which was a bummer.
Nice!! I'm also a FreeBSD desktop fan. It's my daily driver also. For pretty much the same reasons as yourself. I use every platform under the sun on a daily basis (Windows, Mac, Linux, Android, iOS) but FreeBSD is the one that made my daily driver status after I dropped Mac off it a few years ago. The others I use mainly for special purposes (e.g. windows for gaming) and as it's my job.
I agree about the electron stuff, FreeBSD is always forgotten. In some cases it doesn't matter because alternatives are available (e.g. VS Codium). In some cases it's super annoying. Sometimes when you ask the developers for it you can almost feel the rolleyes in their response. Even though it's probably just a tick box in their toolchain.
USB audio works for me but only after I installed pulseaudio. It's a shame having to do that because FreeBSD's sound system is better. But PulseAudio also integrated much better with KDE. With the default sound system I wouldn't see the volume applet in the panel.
For me it was also a big point that it feels less under control of big tech. They're always trying to push Linux towards their own interests. Ubuntu always having to re-invent the wheel trying to insert their own IP (like they do now with snap). Google and Microsoft fiddling with the kernels to make it work better on their infrastructure. FreeBSD seems to be more for the users by the users.
I'll have a look at your boot environment config, I hadn't heard of that yet. Thanks(e.g. Cryptomator) for the idea! ZFS is obviously a major plus anyway. It really helps making atomic backups. I used to use ZFS Send for this, but lately I've been reverting to making tarballs of the snapshot instead because a ZFS Send/Recv stream is really hard to retrieve individual files out of. I wish that was a bit easier. (In fact even tarballs are kinda crap for this because it has to scan through the entire file for every operation :P )
Some other things I don't think you mentioned:
- Rock solid, really. Does not allow you to overcommit memory and freak out (edit: Oh you did mention this sorry)
- Jails. Functionally much better than LXC but sadly lacks the 'docker' ecosystem.
- Very good maintainers that are available on IRC. Both for the desktop apps and FreeBSD itself. No need to sign up for hipster stuff like slack or discord. It feels like communicating with a startup rather than big tech (directly talking to the R&D team rather than putting a ticket in and hoping you get someone with some knowledge this time). One bug I reported on IRC was fixed, upstreamed and deployed the next day. Wow. A small community has its advantages too.
As to what I don't like, modern wifi seems to be a pain. For me it's not important at all as I prefer desktops over laptops and you have to pry the ethernet cables from my cold dead hands. However it getting to the point of always being a running joke whenever you bring up FreeBSD. This really should be fixed somehow. The problem is partly that the Linux community seems to have resigned to accepting blob drivers from vendors. Which obviously won't work for us.
I don't know if it would be a direct 1-to-1 replacement of docker, but have your checked out the project CBSD? It makes it quiet easy to stand up VMs and jail environments and even handles quiet a bit of the vnet stuff?
I will ignore the systemd stuff, because, well, you could have devuan which is debian without systemd.
With appimage, flatpak and nixos you can have newer stuff, but of course, you might have to do work yourself.
And the stability of the OS. What exactly? The stability only of the kernel? or the things interoperating with the kernel are more stable? but your kde on freebsd was also patchy and buggy?
and safe upgrades, well, debian does that for over a decade, come on. With ZFS on debian i did not work, but there would be btrfs. and as long you do not really have an data issue, i have a hard time believing btrfs is not good enough on the desktop.
disk encryption works as good as on freebsd as on linux.
switching between connections.. ever heard of nmctl?
I mean, i am happy if you found something that works for you, and the bsd guys are great.. but to be honest, none of your reasons are from my POV real reasons for switching. you just did not research the stuff. which is okay, but don't shit on the linux desktop architecture just because the knobs are not in the colour you like. or you do not even know about the knobs
I'm a FreeBSD desktop users since 2015 (and 1998->2007 before that), having used Ubuntu LTS as a desktop 2007->2015. What I miss most from Linux is apt/dpkg.
I think Ubuntu (debian really) does a fantastic job of packages. I love the stable set of packages + ppa's for when you need the latest version.
FreeBSD basically has rolling release packages (even the quarterlies are rolling release). I've been screwed over so many times by some conflict on upgrade that the solver cannot satisfy, and this has left me without a working DE several times. Eg, the solver decided to delete kde because some package had a conflict.
I may just be "lucky", but I never had these problems with ubuntu, even on distro upgrades.
EDIT: The 7 years on Linux was due to a ports update leaving me without a working window system in 2007 or so. I gave up and just installed Linux. The pkg system has matured a lot since then, and I never, ever, do source based ports upgrades these days
As a FreeBSD user I am always very frustrated with how out of date the ubuntu packages seem to be (particularly on the lts versions). There's also a surprising number of packages I use that are in FreeBSD repos by default that I have to go find an alternative for (ppa, appimage, compile from source myself, etc). I almost never have to do that on FreeBSD.
That said, I hear you on the upgrades. I've never had an issue with FreeBSD pkg removing my DE (perhaps because I only use a basic window manager) but the video drivers have a habit of breaking across minor OS upgrades forcing me to compile myself from ports, and often not properly documented. Not too often but often enough to be an annoyance, and one of the reasons I'm considering a linux (certainly not ubuntu though, probably fedora or void).
I came back to FreeBSD when I started at Netflix. Given my "once burned, twice shy" feelings about the ports system, I came back only because FreeBSD has ZFS boot environments, which makes rolling back from a bad update trivial.
I also ran PC-BSD at the time. They packaged stuff I cared about (eg, Firefox) with all dependencies, similar to how I understand NixOS works now.. This eventually faded out and became more like normal FreeBSD, and I finally converted to normal FreeBSD
I've been using Linux roughly as long as this fellow has and I don't think I've killed my installation any more than 5 times. Once you step beyond copy and pasting commands or a limited understanding of them to a more intuitive understanding of your system, these sorts of issues tend to fade away.
I tried using FreeBSD to run a desktop on. Both ports and packages were a PITA in various ways. I eventually found myself running everything as the Linux binaries under emulation.
Then I tried Ubuntu 5.04, with Debian's apt packaging, and I was like HOLY SHIT GUYS, THIS IS HOW TO DO THIS.
So Linux still annoys me to administer, but I can basically get my stuff done.
I'm a proponent of FreeBSD for desktop use as well and I'm currently playing around with 13.0-RELEASE + KDE Plama on my new laptop.
Unfortunately it's quite a new hardware (Clevo NV41MZ with i7-1165G7 and AX-200) and neither suspend-to-RAM (doesn't wake up in a working state) nor WiFi (iwm driver not ready and available for FreeBSD 13) work.
I have a RealTek USB WiFi adapter that kind of works, but I'm not sure if I can do without suspend-to-RAM on a laptop, as this is pretty much the most important feature for everyday use.
Systemd should have never made it into desktop operating systems. It's clearly designed and tuned (and bugs are prioritized) for servers. But unfortunately, there's no such thing as a "desktop Linux". Every "desktop" distro is just a server distro with maybe LibreOffice thrown in (if you're lucky). The issues the author are experiencing with split-DNS configuration (a purely desktop concern, nobody in a server farm will have split-DNS) are hardly unusual.
It's not ideal, but slit DNS is run on servers. For example running consul. Or a very large company where your team can't update the company wide delegation. Both I've seen in the real world
I disagree with systemd being designed purely for servers. We got systemd --user and session awareness which eliminated all kind of hacks of running daemons (eg. a sync app, sound) as a non system user.
...Hacks that worked around security features that were in place because Linux is, and always will be, a high-security server-first OS, with the desktop as an afterthought.
it makes even more sense for the desktop than for servers. servers do not often un/mount stuff, often services are just a few and long running, and certainly no usb stuff which is running around.
but the desktop is and will be a sprawling mess of components, look also too windows and mac. because nothing is totally certain, and something has to take care of it.
what is your argument that systemd is not made for the desktop? and split dns can also occur in server systems which are public but have a virtual "inner" network.
and my split dns works, so.. perhaps either your configuration sucks or the software is just not working at the desktop that seemlessly, but that will come. but it takes time.
21 comments
[ 3.8 ms ] story [ 52.2 ms ] threadI agree about the electron stuff, FreeBSD is always forgotten. In some cases it doesn't matter because alternatives are available (e.g. VS Codium). In some cases it's super annoying. Sometimes when you ask the developers for it you can almost feel the rolleyes in their response. Even though it's probably just a tick box in their toolchain.
USB audio works for me but only after I installed pulseaudio. It's a shame having to do that because FreeBSD's sound system is better. But PulseAudio also integrated much better with KDE. With the default sound system I wouldn't see the volume applet in the panel.
For me it was also a big point that it feels less under control of big tech. They're always trying to push Linux towards their own interests. Ubuntu always having to re-invent the wheel trying to insert their own IP (like they do now with snap). Google and Microsoft fiddling with the kernels to make it work better on their infrastructure. FreeBSD seems to be more for the users by the users.
I'll have a look at your boot environment config, I hadn't heard of that yet. Thanks(e.g. Cryptomator) for the idea! ZFS is obviously a major plus anyway. It really helps making atomic backups. I used to use ZFS Send for this, but lately I've been reverting to making tarballs of the snapshot instead because a ZFS Send/Recv stream is really hard to retrieve individual files out of. I wish that was a bit easier. (In fact even tarballs are kinda crap for this because it has to scan through the entire file for every operation :P )
Some other things I don't think you mentioned:
- Rock solid, really. Does not allow you to overcommit memory and freak out (edit: Oh you did mention this sorry)
- Jails. Functionally much better than LXC but sadly lacks the 'docker' ecosystem.
- Very good maintainers that are available on IRC. Both for the desktop apps and FreeBSD itself. No need to sign up for hipster stuff like slack or discord. It feels like communicating with a startup rather than big tech (directly talking to the R&D team rather than putting a ticket in and hoping you get someone with some knowledge this time). One bug I reported on IRC was fixed, upstreamed and deployed the next day. Wow. A small community has its advantages too.
As to what I don't like, modern wifi seems to be a pain. For me it's not important at all as I prefer desktops over laptops and you have to pry the ethernet cables from my cold dead hands. However it getting to the point of always being a running joke whenever you bring up FreeBSD. This really should be fixed somehow. The problem is partly that the Linux community seems to have resigned to accepting blob drivers from vendors. Which obviously won't work for us.
I will ignore the systemd stuff, because, well, you could have devuan which is debian without systemd.
With appimage, flatpak and nixos you can have newer stuff, but of course, you might have to do work yourself.
And the stability of the OS. What exactly? The stability only of the kernel? or the things interoperating with the kernel are more stable? but your kde on freebsd was also patchy and buggy?
and safe upgrades, well, debian does that for over a decade, come on. With ZFS on debian i did not work, but there would be btrfs. and as long you do not really have an data issue, i have a hard time believing btrfs is not good enough on the desktop.
disk encryption works as good as on freebsd as on linux.
switching between connections.. ever heard of nmctl?
I mean, i am happy if you found something that works for you, and the bsd guys are great.. but to be honest, none of your reasons are from my POV real reasons for switching. you just did not research the stuff. which is okay, but don't shit on the linux desktop architecture just because the knobs are not in the colour you like. or you do not even know about the knobs
I think Ubuntu (debian really) does a fantastic job of packages. I love the stable set of packages + ppa's for when you need the latest version.
FreeBSD basically has rolling release packages (even the quarterlies are rolling release). I've been screwed over so many times by some conflict on upgrade that the solver cannot satisfy, and this has left me without a working DE several times. Eg, the solver decided to delete kde because some package had a conflict.
I may just be "lucky", but I never had these problems with ubuntu, even on distro upgrades.
EDIT: The 7 years on Linux was due to a ports update leaving me without a working window system in 2007 or so. I gave up and just installed Linux. The pkg system has matured a lot since then, and I never, ever, do source based ports upgrades these days
That said, I hear you on the upgrades. I've never had an issue with FreeBSD pkg removing my DE (perhaps because I only use a basic window manager) but the video drivers have a habit of breaking across minor OS upgrades forcing me to compile myself from ports, and often not properly documented. Not too often but often enough to be an annoyance, and one of the reasons I'm considering a linux (certainly not ubuntu though, probably fedora or void).
I also ran PC-BSD at the time. They packaged stuff I cared about (eg, Firefox) with all dependencies, similar to how I understand NixOS works now.. This eventually faded out and became more like normal FreeBSD, and I finally converted to normal FreeBSD
But I use a computer to do stuff.
I tried using FreeBSD to run a desktop on. Both ports and packages were a PITA in various ways. I eventually found myself running everything as the Linux binaries under emulation.
Then I tried Ubuntu 5.04, with Debian's apt packaging, and I was like HOLY SHIT GUYS, THIS IS HOW TO DO THIS.
So Linux still annoys me to administer, but I can basically get my stuff done.
Supports binary package installation and operates more similarly to apt
Unfortunately it's quite a new hardware (Clevo NV41MZ with i7-1165G7 and AX-200) and neither suspend-to-RAM (doesn't wake up in a working state) nor WiFi (iwm driver not ready and available for FreeBSD 13) work.
I have a RealTek USB WiFi adapter that kind of works, but I'm not sure if I can do without suspend-to-RAM on a laptop, as this is pretty much the most important feature for everyday use.
It's easy with systemd or just use dnsmasq
Makes sense as systemd took several ideas from MacOS launchd
but the desktop is and will be a sprawling mess of components, look also too windows and mac. because nothing is totally certain, and something has to take care of it.
what is your argument that systemd is not made for the desktop? and split dns can also occur in server systems which are public but have a virtual "inner" network.
and my split dns works, so.. perhaps either your configuration sucks or the software is just not working at the desktop that seemlessly, but that will come. but it takes time.