Hacker News new | ask | show | jobs
by mlang23 1701 days ago
This brings back fond memories. When I came back from CCC Camp 2003, OpenBSD got me interested. So I gave it a try, and had a real fun time in the ensuing 12 months. The simplicity, pretty good docs and the installer ("Do you want to edit /etc/hosts with ed now?") got me really hooked. I eventually didnt make it away from Linux for several reasons, but I still miss playing with OpenBSD. It felt so right and unbloated, something I cant say about Linux anymore these days.
2 comments

I think Arch is very close to the OpenBSD philosophy.

Not necessarily for security reasons, but more as a byproduct of keeping things simple so we can manage them manually.

I do not fully agree on this statement. Arch uses systemd which cannot be caled "keeping things simple" in my opinion. I think Voidlinux is a bit closer to what you description.
Void was created by a former NetBSD contributor, if I am not mistaken.

Xbps, its packager, is a breeze to use. And I've found no major qualms with runit, the init system.

Then use one of the derivatives. Obarun, Artix come to mind.
I don't need to.
Does Alpine Linux feel bloated too?
It's much better than monstrosities like debian and the like, but still more bloated than OpenBSD.

I have raw installs of OpenBSD 6.9 and Alpine on virtual machines. Running "ps ax" fills half of my terminal screen on OpenBSD, and requires several screens on Alpine.

Well, ps on linux shows kernel threads whereas on OpenBSD it doesn't.

The list is pretty short on my alpine install if you exclude kernel threads:

    # ps ax | grep -v ']$'
    PID   USER     TIME  COMMAND
        1 root      0:01 /sbin/init
     1985 root      0:00 /sbin/udevd
     2361 root      0:00 /sbin/syslogd -t
     2387 root      0:00 supervise-daemon wpa_supplicant --start /sbin/wpa_supplicant -- -i wlan0 -c/etc/wpa_supplicant/wpa_supplicant.conf
     2388 root      0:00 /sbin/wpa_supplicant -i wlan0 -c/etc/wpa_supplicant/wpa_supplicant.conf
     2473 root      0:00 /sbin/udhcpc -b -R -p /var/run/udhcpc.wlan0.pid -i wlan0 -x hostname:pi4
     2567 chrony    0:00 /usr/sbin/chronyd -f /etc/chrony/chrony.conf
     2592 root      0:00 /usr/sbin/crond -c /etc/crontabs
     2621 root      0:00 sshd: /usr/sbin/sshd [listener] 0 of 10-100 startups
     2652 root      0:00 /sbin/getty 38400 tty1
     2653 root      0:00 /sbin/getty 38400 tty2
     2654 root      0:00 /sbin/getty 38400 tty3
     2655 root      0:00 /sbin/getty 38400 tty4
     2656 root      0:00 /sbin/getty 38400 tty5
     2657 root      0:00 /sbin/getty 38400 tty6
     3099 root      0:00 sshd: root@pts/0
     3102 root      0:00 -ash
     3109 root      0:00 ps ax
     3110 root      0:00 grep -v ]$
I don't think kernel threads are a good measure of bloat. And a base install of Alpine is smaller than OpenBSD.

But that's a fair point about presentation. OpenBSD seems to be more 'quiet' by default, and tends to only show relevant information. dmesg on OpenBSD seems much cleaner compared to the mess that Linux outputs.

Thanks for the clarification! It is indeed true that alpine is very clean an not bloated at all; just that openbsd seems more intentionally polished.

As a matter of fact, I don't think this has anything to do with linux itself, just with the large distributions. If you use alpine, slackware or void you get a similar streamlined experience.

what are you trying to measure?

openbsd will definitely feel from 10000 feet more "bloated" because its simply not as performant as linux. that's not a bad thing, it purposely does things the "right" way for security purposes and doesn't take any shortcuts.

alpine is a lot smaller than openbsd but it really was created for an entirely different purpose. i always take alpine as "a muscl distro that makes a good docker container, oh and it runs on bare metal too, i guess". i've never seen alpine on metal in prod and i've been around the block a whole bunch. ive seen it in a metric ton of docker containers though.

a chatty dmesg also isn't really bloat as well. although dmesg is a bit of a mess (and only recently default restricted to privileged accounts at least on arch).

I don't consider poor performance to be bloat (though poor performance can be a symptom of excess bloat). Bloat is more about obesity, and it shows in disk usage (upgrades take forever? yeah two gigabytes of data across 2000 packages; kernel doesn't fit in flash? keep unticking those kbuild options..), excessive memory usage, ridiculously long man pages, etcetra. Bloat doesn't necessarily impact performance in normal use, e.g. those 2000 packages I got on Fedora mostly sit on my disk untouched. But it's still there and it shows when it's time to update (and sometimes while doing other stuff).

OpenBSD might not scale well to a large number of cores, and the program running on a 8-bit microcontroller (with 512 bytes of ram) on my breadboard isn't fast, but neither are particularly obese.

I don't think the purpose between Alpine and OpenBSD are that far apart. Alpine aims to be a simple, small, and secure general purpose OS. OpenBSD is very similar, even if Theo has been pushing the "research OS" angle. There's obviously a big difference in how much software include in the base install.

> I don't think kernel threads are a good measure of bloat.

It kinda is. Totally unrelated, but there is nothing quite like seeing hundreds of [nfsd] tasks hard-blocking in D on each server in a cluster. Time to reboot... well... everything.

You can build Debian up to anything you want. I prefer installing new systems from the netinstall image and skipping the mirror configuration step completely. This produces a very minimal system that has all the basics (bash, ssh client, vi, and coreutils), but without anything else. If you throw away apt caches, it weights around 500 MB (half of which are various kernel modules).

You then install the minimum amount of software necessary to cover the use case

  # apt install --no-install-{recommend,suggest}s xxx
No idea, never tried. I went from SuSE straight to Debian, and haven't bothered to check any other distros out since.
Well, if you ever have the time to give it a try..

Alpine is the most OpenBSD-like Linux distro I've yet to see. Of course, it's still not OpenBSD.

What about Void? It even used LibreSSL out of the box for a while.
I'm not super fond of rolling releases. It always feels weird when people recommend Arch or Void to an OpenBSD user. OpenBSD has very nice releases with a tested & documented update process between each.
OpenBSD has the -current branch, which is actually a rolling release