Not necessarily for security reasons, but more as a byproduct of keeping things simple so we can manage them manually.
Xbps, its packager, is a breeze to use. And I've found no major qualms with runit, the init system.
Alpine is the most OpenBSD-like Linux distro I've yet to see. Of course, it's still not 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.
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.
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.
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).
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.
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.
You then install the minimum amount of software necessary to cover the use case
# apt install --no-install-{recommend,suggest}s xxx