My view on FreeBSD versus Linux, primarily on the desktop

July 30, 2014

Today I wound up saying on Twitter:

@thatcks: @devbeard I have a pile of reasons I'm not enthused about FreeBSD, especially as a desktop with X and so on. So that's not really an option.

I got asked about this on Twitter and since my views do not in any way fit into 140 characters, it's time for an entry.

I can split my views up into three broad categories: pragmatic, technical, and broadly cultural and social. The pragmatic reasons are the simplest ones and boil down to that Linux is the dominant open source Unix. People develop software for Linux first and everything else second, if at all. This is extremely visible for an X desktop (the X server and all modern desktops are developed and available first on Linux) but extends far beyond that; Go, for example, was first available on Linux and later ported to FreeBSD. Frankly I like having a wide selection of software that works without hassles and often comes pre-packaged, and generally not having to worry if something will run on my OS if it runs on Unix at all. FreeBSD may be more pure and minimal here but as I've put it before, I'm not a Unix purist. In short, running FreeBSD in general usage generally means taking on a certain amount of extra pain and doing without a certain amount of things.

On the technical side I feel that Linux and Linux distributions have made genuinely better choices in many areas, although I'm somewhat hampered by a lack of deep exposure to FreeBSD. For example, I would argue that modern .deb and RPM Linux package management is almost certainly significantly more advanced than FreeBSD ports. As another one, I happen to think that systemd is the best Unix init system currently available with a lot of things it really gets right, although it is not perfect. There are also a horde of packaging decisions like /etc/cron.d that matter to system administrators because they make our lives easier.

(And yes, FreeBSD has sometimes made better technical choices than Linux. I just think that there have been fewer of them.)

On the social and cultural side, well, I cannot put it nicely so I will put it bluntly: I have wound up feeling that FreeBSD is part of the conservative Unix axis that worships at the altar of UCB BSD, System V, and V7. This is not required by its niche as the non-Linux Unix but that situation certainly doesn't hurt; a non-Linux Unix is naturally attractive to people who don't like Linux's reinvention, ahistoricality, and brash cultural attitudes. I am not fond of this conservatism because I strongly believe that Unix needs to grow and change and that this necessarily requires experimentation, a willingness to have failed experiments, and above all a willingness to change.

This is a somewhat complex thing because I don't object to a Unix being slow moving. There is certainly a useful ecological niche for a cautious Unix that lets other people play pioneer and then adopts the ideas that have proven to be good ones (and Linux's willingness to adopt new things creates churn; just ask all of the people who ported their init scripts to Upstart and will now be re-porting them to systemd). If I was confident that FreeBSD was just waiting to adopt the good bits, that would be one thing. But as an outsider I haven't been left with that feeling; instead my brushing contacts have left me with more the view that FreeBSD has an aspect of dogmatic, 'this is how UCB BSD does it' conservatism to it. Part of this is based on FreeBSD still not adopting good ideas that are by now solidly proven (such as, well, /etc/cron.d as one small example).

This is also the area where my cultural bad blood with FreeBSD comes into play. Among other more direct things, I'm probably somewhat biased towards seeing FreeBSD as more conservative than it actually is and I likely don't give FreeBSD the benefit of the doubt when it does something (or doesn't do something) that I think of as hidebound.

None of this makes FreeBSD a bad Unix. Let me say it plainly: FreeBSD is a perfectly acceptable Unix in general. It is just not a Unix that I feel any particular enthusiasm for and thus not something I'm inclined to use without a compelling reason. My default Unix today is Linux.

(It would take a compelling reason to move me to FreeBSD instead of merely somewhere where FreeBSD is a bit better because of the costs of inevitable differences.)

Comments on this page:

If you ever do want to try running it on the desktop, it may be worth checking out PC-BSD, where a group of folks took FreeBSD and polished it up so it's a lot less manual:

It's much more GUI based (to the point where major applications can be installed like with Apple's .app system: a directory-contained bundle), but you can still get in under the hood and do it the Old School Way(tm).

By cks at 2014-07-30 16:25:19:

I took a brief look at PC-BSD and I don't think it does anything that makes me more interested in FreeBSD. My issues aren't very much in a lack of graphical glitz but at a somewhat lower level than that, and I don't think that PC-BSD can do much about upstream issues with, say, Firefox or Gnome and KDE libraries and so on. I also fundamentally disagree with an approach of distributing applications as giant self contained bundles.

(PC-BSD can pile effort into building them well and some amount of effort into porting them, but I don't personally believe that anyone can port major libraries or applications single-handedly without upstream support.)

[…] but I don't personally believe that anyone can port major libraries or applications single-handedly without upstream support.

The PC-BSD build infrastructure actually leverages the Ports tree AFAICT, but instead of putting things in /usr/local, it tweaks things so it's self-contained. PC-BSD's contribution seems to be a "wrapper" around all the work that's already done to get a Port working.

Similar perhaps to how Mint leverages Debian and Ubuntu (which also leverage Debian).

I wasn't thinking about the glitz, but more about the extra work in streamlining installation and such.

By cks at 2014-07-30 20:12:08:

The upstream I'm thinking of here is people like Gnome and Firefox and Go, who are in a position to not bother with making things work on FreeBSD or outright adopt Linux-only things (which unfortunately may happen with Gnome and systemd). Maintaining an entire port of Gnome or the like themselves without upstream support is probably not feasible for the FreeBSD ecosystem (and also not necessarily a sensible use of scarce developer resources).

By Matt Campbell at 2014-08-10 15:24:45:

I also fundamentally disagree with an approach of distributing applications as giant self contained bundles.

Why? Mac OS X, iOS, and Android all use self-contained app bundles, and so do the smarter third-party developers on Windows. It's a proven approach for packaged applications.

By cks at 2014-08-11 10:21:37:

I've now written up the problems I have with self-contained application bundle style packaging here.

Written on 30 July 2014.
« FreeBSD, cultural bad blood, and me
Why I like ZFS in general »

Page tools: View Source, View Normal, Add Comment.
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Wed Jul 30 01:31:40 2014
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.