Hacker News new | ask | show | jobs
by infraredcabbage 2415 days ago
As much as I love OpenBSD, it's one of those things that doesn't work for enterprise.

1) Commands have different switches. This is really annoying since you're probably using GNU/Linux at your day job.

2) It doesn't support all the new and fancy container/automation stuff that your colleauge is super stoked about.

3) Most companies haven't even heard about it, which causes certain problems. Example: I was working for a company that had a collaboration with Cisco, and we needed some binary blob in order to provision networking equipment. Getting this to work on OpenBSD was ten times as much work as making it run on Linux.

4) If you share your laptop with anyone, e.g. your wife or your parents when you're on holiday, they'll be a lot happier with Ubuntu.

In a perfect world, everyone would be running OpenBSD, but in the world as it is now, Linux is "better".

4 comments

This reads like a mid-2000's "BSD is dying" slashdot post...

1) GNU extensions aren't always well thought out or standardized. Assuming everywhere is a current GNU userland will break frequently on multiple non-Linux OS's - look up trying to use `awk` on MacOS, which has BSD derived version.

2) Trendy developer conveniences with half-assed security like containers aren't really in line with OpenBSD's goals. If you want isolation, look into chroot, pledge, and unveil.

3) I'd blame Cisco in this case, not OpenBSD.

4) Says who? If a browser works, most people will be happy. The main use case for OpenBSD is network appliances like routers and infrastructure serving.

You're right, it is a BSD is dying post, only a decade later.

I agree with everything that you said. In an ideal world, we could all convince our colleagues that Docker and SELinux and Apparmor and such things are crap, and that everyone should be using OpenBSD alternatives. This is nothing but wishful thinking, however.

I wish the industry (and Cisco) would know about OpenBSD and wish to use it, but alas, this is not the case.

Yes, the main use is a fairly narrow part of possible uses, and introducing a whole new OS, package system and command set just because you prefer pf over nftables seems like something most of your colleagues would be a little disgruntled with.

> 1) GNU extensions aren't always well thought out or standardized. Assuming everywhere is a current GNU userland will break frequently on multiple non-Linux OS's - look up trying to use `awk` on MacOS, which has BSD derived version.

Even Linux isn't as consistent as some would have you believe. I regularly find that builds or application breaks because Red Hat is different from Ubuntu. And then, busybox is different from RHEL and Ubuntu. Also, busybox is different from older version of busybox.

I run into this often enough because customer runs stuff on RHEL while my company uses Ubuntu for development. And I happen to be working on an application that runs on different boards with different versions of busybox, as well as on mainstream x86-64 distros..

I've deployed quite a lot of OpenBSD at places you would certainly consider "enterprise", not sure I follow these points.

1) ??

2) Yes, this is fair -- but OpenBSD tends to fit more in the gateway/firewall/proxy/bastion space than running your microservices (although I've run plenty of node/etc apps on obsd hosts, IAAS and ansible is still a valid deployment path even after docker exists..)

3) Prop. vendor tools which require blobs should be run from whatever platforms they support. This is why you keep a windows laptop kicking around for flashing firmwares in the dc and so on

4) Family gets macs ;)

I don't think any of your points are enough to consider linux "better" than OpenBSD for any use case they're both capable of..

> es, this is fair -- but OpenBSD tends to fit more in the gateway/firewall/proxy/bastion space than running your microservices (although I've run plenty of node/etc apps on obsd hosts, IAAS and ansible is still a valid deployment path even after docker exists..)

I don't think that's the point. Nowadays, when somebody at works hits a bug and that ends up on my desk, I just tell them to setup a Docker container that reproduces the bug.

99% of the time the answer is, "oh, I had something misconfigured in my system, my fault". And I can close the bug without doing any actual work.

I can also develop on my laptop, desktop, etc. if all my environment is inside a docker container, without worrying that my workstation gets updated, some version of some library changes, and now I end up having multiple slightly different developer environments depending on the machine I use.

---

For me, the #1 reason not to use OpenBSD is lack of a good filesystem, and #2 lack of good drivers for modern hardware (e.g. I can't use a GPGPU from OpenBSD, or an Apple TV to stream my screen to do a presentation). Beyond that, lack of #3 docker prevents me from using it as a developing environment, and #4 lack of good cross-compilation toolchains from Linux to OpenBSD prevents me from trying to ship things from my development environment to OpenBSD systems.

> is lack of a good filesystem

What's wrong with OpenBSD's filesystem?

It doesn't support modern features like checksumming, transparent compression, or snapshots.
1) Some random examples:

Loading a kernel module: Linux: modprobe, NetBSD: modload, FreeBSD: kldload

Seeing RX/TX information on an interface: Linux: ifconfig, NetBSD: netstat -b -I ale0

Change MAC address: Linux: ifconfig eth0 hw ether, NetBSD: ifconfig ale0 hw ether

2) Yes, I agree that OpenBSD exists in another space, which is fairly small. Is it worth introducing "unknown" tech to your team, though? I mean, is pf that much better than netfilter's nftables, to introduce something relatively unknown?

3) I agree. And "whatever platforms they support" means Linux nearly always, and very rarely OpenBSD. So you'll have to deal with Linux, but OpenBSD is optional and introduces additional complexity/stuff others on your team don't know about.

I think OpenBSD is better technology, but most of your colleagues will consider it unfamiliar territory, you'll miss out on new technology, etc.

Different than GNU, true. But at work I support a system on AIX and I find the commands almost an exact match to AIX user space. The only notable difference I found was ksh, but AIX has ksh88 which 'echo 1 2 3 | read a b c' works.

Cannot get more enterprise that AIX :)

Possible tips, not openbsd specific: 1. Don't lend your corp laptop to your parents? 2. Don't try to solve all problems with one tool? 3. Accept that change requires efforts? 4. If you feel it's not worth it for you, don't assume it's not for others?
5) Don't give unsolicited advice ;)