Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Honest question: Why choose BSD over Linux?

I've worked/played around with BSD back in the 90s and actually never looked back. Tried it here and there within the last 20 years but never found it as versatile as Linux.

Working on macOS (how much BSD is still in that system?) since 6 month now and finally getting used to it. Still feels a bit crippled compared to the tools I used under Windows/Linux.



For OpenBSD on a server in particular, many useful tools (web server, mail server, pf...) are developed by the same team and better integrated in the base system. This means consistent documentation, behavior and syntax (e.g. for configuration).

In contrast, Linux distributions are a collection of software taken from different sources, with all the quirks that may derive from this.

(I don't want to imply that the BSDs have only advantages over Linux and not the other way round, but the OP asked specifically why _BSD over Linux_).


Linux user for 25+ years here. (When did kernel 0.9 come out?)

I learned how to perform basic admin tasks for Linux and OpenBSD in the 1990s.

I relearned how to do all those things under Linux at least five times since then, and am facing yet another round of "why the fuck is everything broken (regressed back to worse than 1998 levels of stability) and different again this year?" with my Linux machines.

I recently installed OpenBSD and FreeBSD in VirtualBox VMs and am doing a bake off for my next desktop OS.

FreeBSD is slightly ahead from the "annoyingly terrible stuff works in a pinch" perspective, since I have some windows game getting to a splash screen via LLVMPipe under Steam. (It runs out of DRAM, and needs a GPU that doesn't exist, so I'm counting this as working.)

OpenBSD is ahead from the "if its available at all, then it is solid" perspective.

Both of them are more familiar to me than the Linux desktop that's hosting the Virtual Box VMs.

Also, I'm increasingly concerned about the ethics of the upstream Linux development community. Red Hat's new business model is based on violating the GPL (maybe they are not technically breaking it, though I think they are), and they have enough weight to force the ecosystem to do whatever they want.

They've rammed all sorts of user-hostile crap (most of those regressions, for example) on to my (ubuntu, arch, etc) machines, so it's not just a theoretical concern.


Go ahead and find a guide showing you how to do a thing that Just Works regardless of the flavor of Linux distro. You can't, because they're gratuitously different for the sake of differentiating themselves. You can't even use one guide to cover multiple versions of Ubuntu.

Now find a guide showing you how to do a thing for any of the BSDs. That guide is more usable on one of the other BSDs than any Linux guide is usable on a different distro.

That's one reason. Others include the ability to keep track of what's on a system, since the BSDs don't include the kitchen sink and have good package management, the fact that they're lighter weight than most Linux distros (in some cases significantly), that they're more consistent and more deterministic, the fact that you can literally rebuild the whole kernel and OS trivially, and so on.

There are many reasons, but for me, the one thing that really stands out is cleanliness.


> Now find a guide showing you how to do a thing for any of the BSDs. That guide is more usable on one of the other BSDs than any Linux guide is usable on a different distro.

That's simply not true in my experience. Sure, man pages for base utilities are usually interchangeable between BSDs, but the same is true on Linux.

When it comes to the system (init, networking, firewalling, package management, configuration, etc), BSDs are different enough that you'll need your own variant's documentation to make things work properly.

And again, Linux isn't that different there. More often than not a page on the Arch wiki will put you on the right track regardless of your distro of choice.


If I might make some counter-arguments to some of these

A lot of the points of differentiation in terms of plumbing layers are slowly eroding away, systemd helped a lot by standardizing things around service files as opposed to the patchwork of init scripts (and OpenRC and everyone else scripts)

I don't know about BSD's being lighter weight than a Linux system, but I don't really know what your baesline of light weight is (Ubuntu? Debian? Arch? Gentoo?)

For more consistent and deterministic systems there's offerings such as Nix and others

As for rebuilding the whole OS and kernel trivially? Gentoo stands out as probably the easiest one in that regard, your entire system can be rebuilt with "emerge -e world"


> If I might make some counter-arguments to some of these

Of course :)

> A lot of the points of differentiation in terms of plumbing layers are slowly eroding away, systemd helped a lot by standardizing things around service files as opposed to the patchwork of init scripts (and OpenRC and everyone else scripts)

It has been my experience that systemd has been inconsistent from one version of systemd to the next. I've given systemd a fair shake, and even those people who swear that it's the bees' knees haven't been able to help me figure out how to work around somewhat silly issues (in other words, they shouldn't have been telling me how easy it is if they can't even illustrate its ease themselves).

> I don't know about BSD's being lighter weight than a Linux system, but I don't really know what your baesline of light weight is (Ubuntu? Debian? Arch? Gentoo?)

You can't really compare a BSD, or all of the three major direct BSDs, with the best of each Linux distro. Sure, Nix is better at being deterministic, and Debian is much better than the others about not changing gratuitously, and Gentoo can easily rebuild everything, but what happens when you need all of those things in once place?

By lightweight, I mean that I can literally run NetBSD on a VAXstation with 24 megs of RAM, or a Mac LC III+ with 36 megs (http://elsie.zia.io/), where I literally compile everything besides the OS from source, on those machines. Sure, perl takes more than a week, but they work.

This has other benefits: I can easily, without much fuss, run everything I need for a tinc tunnel in 128 megs with tmpfs for logs and no swap on an appliance-like device. It's surprisingly easy to do this starting with the default OS, whereas small Linux systems are often unrecognizable compared with their "normal" distro counterparts.

> Gentoo stands out as probably the easiest one in that regard, your entire system can be rebuilt with "emerge -e world"

Exactly. I love that. It's great, and it'd be wonderful if that were more widespread in other Linux distros.

OTOH, NetBSD takes it further: you can build NetBSD for any architecture on any other so long as you're running a reasonably Unix-like OS with a reasonably relevant compiler.

So, again, Linux in general has so many nice things, but if you want them all in the same place, in the same distro, you're kinda out of luck.


> Go ahead and find a guide showing you how to do a thing that Just Works regardless of the flavor of Linux distro. You can't...

You can, but it's not so much a guide - Ansible roles.

Wise usage of the modules and deconstruction of the personalities (ie: package names, file paths) means a playbook that works for one distribution can work for any.

You can even aim for the stars and support entirely different operating systems!

Not to detract from the cleanliness of BSD - it truly is delightful.


is freebsd more clean than debian in your opinion?..


I think you're right in saying that it's not as versatile than Linux, but if your needs are focused, then it's actually a feature. For example, for small web servers: an OpenBSD base install comes with httpd(8), relayd(8), sshd(8), pf(4), etc.: tweak a few configuration files and drop a cross-compiled single-binary Go and you're all set.

OTOH, if you want to toy around with "edgy" open-source software, I would expect Linux to provide a better experience.


I think the same is true for Debian Linux.

Small and comes with a lot of packages that are only an "apt install" away. I only install packages that I need an check that nothing else is running and/or has open ports.

Don't see this as a pro BSD argument.


As far as I know, the OpenBSD team ensures that the base installation is useful already, so that their "secure by default" claim has some intrinsic value. As a result, even without installing extra packages, you get an usable system, unified (written by the same group of people), well-documented (reading the man pages and knowing what to expect from the software often is enough), easy access to OpenBSD-specific software, etc.

I personally enjoy having not to ask myself questions like, which http server I should be using, and just be rolling with whatever's in the box.

I wouldn't be surprised for Debian, and others, to provide a similar experience, perhaps not as tightly packaged though. I'm not sure the difference is that remarkable either, unless perhaps you have some specific needs that you know are well-managed by *BSD-centered software.


Crippled in what way?

Others point out Homebrew, but I still prefer MacPorts for command line tools. It feels more “BSD” to me, while Homebrew reminds me of some tools a Node developer would write (cheeky terminology, overuse of emoji, cleverness over correctness, etc.).

At home I just use macOS and FreeBSD and many of my personal projects typically build on both. The base userland tools are mostly the same, but the non-POSIX stuff diverges heavily (file system control, process isolation, configuration, etc.)


When I need to install some random program, I can't just create a container and build it. Instead, I need to install a pile of random dependencies, and then homebrew, macports and xcode all fight with each other.

Also, the MacOS window manager is objectively terrible. "Move window to right of screen" involves a keypress, trackpad hover, and menu selection. "Maximize window" doesn't exist. "Minimize window" makes the window inaccessible with command-tab and option-tab. Neither of those keyboard shortcuts function properly if there is more than one monitor plugged in.

Fractional scaling breakages still exist.

The font renderer is de-featured (vs the open source ones) because it is working around some expired patents involving true type hints.

It can no longer open postscript files.

I could go on for a long time.

MacOS makes a passible dumb terminal for accessing remote development environments though. It also integrates in well with iOS, etc.


For me, they've been easier to administer and more reliable. I've had some running for years with minimal maintenance and they just keep chugging along with no security issues and all of the utilities I need out of the box.


For servers I'm exclusively using Debian for 20 years and there was literally never a problem while upgrading from one release to another. Of course there were hickups with packages but not with the core system. I expect something similar for BSDs...


The same can be said for distros like debian. Seems like a weak argument pro-BSD to me.


Because not everything needs to be linux. In fact, this modern trend of running linux everywhere from critical infrastructure to IoT devices is worrying as it feels like a monoculture is starting to rise its ugly head once again.


If you're missing some CLI tooling on MacOS, it's worth checking out the Homebrew repositories to see if you can find what you're looking for. I use several up-to-date GNU versions of utilities instead of the older BSD-flavoured versions that shipped with MacOS.


For OpenBSD in particular, security baked into the core.


I started with Linux back in the 90s then changed to OpenBSD in 1997, then FreeBSD in 1998. Ran it for many years. Eagerly awaited MacOS X as it was called back then, and I was not disappointed.

In my opinion, macOS is the supreme UNIX™ workstation still, although there are things you need to work around or disable like SIP in rare cases. It definitely has BSD heritage, and Homebrew is pretty mature at this point, which wasn't always the case.

For servers though I tend to just stick to Linux these days, mostly out of practicality. I miss the days of easily recompiling the BSD kernel by just editing a single file.


You don’t need to pay for more than one CPU core if you run OpenBSD, because you can’t utilize them anyway. ;)


What do you mean? OpenBSD introduced SMP support for x86-64 almost 20 years ago, and for Arm64 about 5 years ago.


I think they might be confusing threads for cores.


SMT is disabled by default these days but can be enabled if desirable.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: