ZFS as a first class citizen, without wondering if Oracle will show up and take the ball away.
Jails, although that's not super relevant to the desktop experience. I won't mention systemd, although I truly dislike it (though I have no particular attachment to init scripts, I was quite fond of Solaris' SMF for example).
The absence of snap and whatever horrors Canonical keeps pushing is another plus, but I'm in not in a good position to judge its impact as I'm blissfully ignorant of how bad they are, I just stumble in the occasional horror story.
Biggest thing I'm missing and wish I had: Docker. Jails may be technically better, but the world went another way and they have no functional ecosystem.
- I always end up running out of disk space, because of Docker’s love of immutable layers for everything — my jails just live in a normal directory in the filesystem, no need to overthink it;
- I have no idea how to restrict /dev in Docker containers — I’m sure you can, but it’s a mystery to me;
- copying/moving files between host and container requires setting up volumes/ssh/whatever special ceremony; copying/moving files to/from jails is trivial, it’s the same as copying/moving files between any other directories;
- updating jails is easy; I use pkg and freebsd-update, just like with a normal system update, no need to update the host system one way, and the jails another way, like with Docker;
- jails don’t mess with my firewall rules, unlike Docker.
Overall, jails give me a much more cohesive experience.
You won't find a premade pihole jail, a downloadable HomeAssistant jail, etc. That's what I mean with ecosystem. Being the better solution is surprisingly unimportant when nobody knows you exist.
Is this still true now that FreeBSD is using the ZoL/OpenZFS tree?
Using the ZoL tree with FreeBSD doesn't have the same licensing conflict; BSD and CDDL software can mix.
"The CDDL applies to all files under the CDDL, while the GPLv2 applies to derivative works. The CDDL cannot apply to the Linux kernel because zfs.ko is a self-contained file system module — the kernel itself is quite obviously not a derivative work of this new file system."
Requiring a docker container to have a user space which matches the kernel kind of defeats the purpose.
Amen, brother.. Ubuntu 22 was my breaking point.
Even Certbot for Let's Encrypt instructs you to install certbot from a _snap_.
Yes, let me load this additional package manager/software channel on a server install, that will go super well/s.
I really enjoyed using it. The reasons for that are what others already mentioned: simplicity, well-thought-out organization of the system vs. userland vs. 3rd party packages (man hier), excellent documentation always available locally, ports, jails, pf, etc. It was all nice, but the killer feature, for me, was stability. The system simply refused to die, no matter what I threw at it or how I misconfigured it. At the time, Linux was a lot less stable than it is today - it could hang forever, corrupt the filesystem, or restart in the middle of doing something. Especially with proprietary, binary blobs and apps, rare as they were, Linux had a hard time accumulating uptime. On the other hand, FreeBSD worked, always. Well, it had no other choice, given that ACPI wasn't fully implemented and it couldn't suspend/sleep - it was a desktop but also a server for some private stuff, so that was ok.
Linux got much better over the years, both in kernel and userland. I have been using Fedora for close to 15 years now, and it works. I won't be going back to FreeBSD on the desktop, unfortunately. However, I'm tempted to try it again on an older laptop that plays the role of a NAS: no GUI, always connected to the router with a cable, always connected to power. I have Fedora running there, but I already use ZFS - it's great - so the switch shouldn't be hard.
* Have to use 14-CURRENT to support my RDNA2 graphics card at all. This was not simple.
* Systemd sucks, but on Linux when I start a sway session it co-ordinates all the xdg-desktop-portal-wlr / pipewire / pipewire-media-session (I think). There doesn't seem to be a freebsd equivalent for user level services. Although dbus / consolekit seems to be doing something, I don't understand why or how.
* Sound is just broken. My usb headset gives constant loud feedback, by bluetooth dongle spams the dmesg until it eventually gives up and my hda card seems to work in all the mixers but no sound is forthcoming.
* Firefox with wayland on just loses the compositor connection almost instantly. Alacratty seems fine though, as is xwayland.
* My webcam doesn't work, in firefox it's blank, in chrome the video is corrupted.
* I have no idea how to configure XDG_RUNTIME_DIR to get created a login with the right permissions etc on tmpfs. I could leave it on zfs of course but apparently that's problematic.
- https://vermaden.wordpress.com/2020/09/07/quare-freebsd/
Its simple and logical with lots of useful features that most people do not even know exist.
Also in may aspects it makes my life easier - like with ZFS Boot Environments or Rescue subsystem - Ports and Source infrastructure for custom system/packages building.
I also like the Community.
Here is mine 'desktop' documentation if needed:
- https://vermaden.wordpress.com/freebsd-desktop/
Regards.
- The hard separation between the base OS and user-installed packages that go in /usr/local - you can wipe the /usr/local and get back to the pristine state. Things don't get mixed.
- Better documentation, better man pages.
Whenever I log in to a Linux distro it feels like things are all in the wrong places. Hardware support is bad though, I wish hardware vendors would open source their drivers.
Switched to void and it is the same freebsd feeling, but with much better hardware support. And with my beloved ZFS!
Right now I'm running Fedora on my old laptop and I was positively surprised in how many details it got better in terms of user-friendliness and predictable behaviour in general, I hope it'll break the curse of "stable" distros constantly falling apart on my PCs.
My hardware is usually a little older anyway, so the latest stable release is good enough.
Flatpaks are finally to a point where if I need up to date apps I can just install it from Flathub.
Fedora has been a decent in-between in my experience. Packages are reasonably up to date and updates are frequent, but I've never had a few weeks of accumulated updates break things which is nice.
I only use windows to play games. But frankly, my personal laptop is used mostly for that, if at all. I have a work laptop provided to me for work stuff.
I still tend to use Ubuntu for the occasional freelance, research or teaching work I do though.
I’m not an evangelist on OS. I’ve used centos, fedora, Debian, mint, elementaryos and even for a time was swapping out DEs for window manager things like awesomeWM.
But at this stage in the game I’m too lazy to tinker with making the OS work. And Ubuntu tends to do well with mixed hardware such as having iris xe and nvidia chips on a single board. So I went with that.
I will die on this hill, and whoever disagrees has never tried what honestly feels like the future. My Linux PC is as stable and reproducible as my iPhone.
One day I will finish my Fedora Silverblue master guide that has been a draft for months...
(No, sorry, NixOS ain't better.)
But I agree with you that for the average user Silverblue surely is the the better platform, NixOS is for people how like to hack around and customize their environment.
I had never even heard these before! This sounds exactly like what I want!
One day I will finish my Fedora Silverblue master guide that has been a draft for months...
I would love to read it!
Canonical/Red Hat.
The changes have largely been the two of them warring for control of key projects, such that other distros are forced to fall in line and become second-class to theirs (why risk the knock-off when you can go straight to the source?). Red Hat's won every one of these battles so far.
Really? from what I read BSD complaints they hate RedHat related stuff like systemd and GNOME code was Linux only for w hile, not sure if this was fixed in GJPME or downstream.
What I love is the excellent documentation, stable OS + rolling packages, ZFS on root (snapshots!), the ports collection so you can recompile packages easily with your own settings if needed.
Also no attempts to include their own IP like canonical does with snap. The low level of commercial interest is great. There's nothing being replaced just for the sake of it.
The biggest problem seems to be wifi drivers with their closed source blob skullduggery making things difficult, but I have no need for wifi on my desktop anyway.
Linux feels clunky like a bunch of third party cogs all mashed together. Some with teeth missing some with too many. If it's not SystemMd taking over the whole startup of system services and needing its own DHCP server, it's then down to package manager's. Apt being replaced with snap, snap replaced by flat images.
Its divided and with no formality. Someone will create some new thing, I'll get popular, get introduced in to some distro, command others to use it and then end up being abandoned.
Linux is now in bed with corporate. The original idea was having a free alternative of unix and/or sort of fight against Microsoft. That's gone.
These are not all bad things, but turns the experience of Linux in to a mess.
For FreeBSD:
It just works, its solid, it bounces back. It has ZFS. Its Unix.
The kernel is as whole, its solid. Rock battle tested solid. Packages feel meshed correctly. Documentation is a single source.
Its just lovely to use and when you replace Linux for FreeBSD you'll feel a weight off your shoulders as your system will shutdown rather than systemmd displaying "Waiting 5minutes for X to shutdown". Have a great community which isn't divided by distributions.
By the way, FreeBSD also enjoys a bit of corporated love, with the difference that love only goes into one direction.
Which doesn't really matter to people who already used Linux or BSD.
Just a reminder that a range of Linux distributions available. There is choice.
If I had to choose one it would be Slackware.
(Must get round to upgrading to 15.0 sometime)
I've recently posted[1] my thoughts on commercial vs. FOSS-driven workstations.
One huge downside to FreeBSD on a workstation is the lack of modern WiFi support. Impatiently waiting for WiFi drivers emulated via LinuxKPI[2].
[1] https://wojteksychut.com/posts/work-tech-i-use-privately/
Though I admit that FreeBSD desktop is less user and especially novice user friendly than Linux. Another big reason to prefer Linux is closed source software. Sometimes closed source apps have Linux versions but practically never FreeBSD ones. Linux emulation works for simple apps but setting up something like Skype or Zoom (which requires camera/mic access) is too much of a work even for an experienced FreeBSD user (if possible at all).
It's also very convenient to use if you need up to date software since it is a rolling release, but there are some things in FreeBSD which is better like reproducible builds.
Kind of like Arch Linux but without the chaos, and the community appears to be growing!
Want to see how the “grep” command works? Just go to /usr/src/usr.bin/grep and read the source. Modify and reinstall it if you like. On Ubuntu this would be a huge chore of figuring out what package the command comes from, wrestling with apt-get source and dpkg-buildpackage, tweaking your apt settings to not immediately replace your custom-built one with the upstream version, etc.
That was on a ThinkPad x220, which supposedly is supported well by the BSD systems, and it did run well with PC-BSD. But I figured I was getting too old for fiddling around all weekend to get it to work, and Debian just worked(tm).
Before that, I used FreeBSD on my desktop roughly from 2003 to 2005, mostly because I liked its simplicity and it did feel snappier than GNU/Linux at the time.
Several things that Ubuntu misses:
- lack of ZFS Boot Environments - https://is.gd/BECTL - https://is.gd/BEADM
- no bootloader integration
- still requires ancient EXT4 or XFS /boot to start system
... and while the version of ZFS is newer on FreeBSD you can always install these packages and have LATEST OpenZFS available:
- sysutils/openzfs
- sysutils/openzfs-kmod
Hope that helps.