My journey with OpenBSD and why I think it's better than Linux
11/27/24 - 844 words
Some of you who have read this blog for a while may remember all the way
back in my first actual post[1] when I talked about why I like Linux. As should
be obvious from the title of this post, I no longer hold that opinion. Now,
don't get me wrong, Linux is still leagues better than the likes of Windows and
MacOS, but it has one glaring issue: it's not a coherent OS.
# Coherency
[QUOTE]
I'd just like to interject for a moment. What you're refering to as Linux, is
in fact, GNU/Linux, or as I've recently taken to calling it, GNU plus Linux.
Linux is not an operating system unto itself, but rather another free component
of a fully functioning GNU system made useful by the GNU corelibs, shell
utilities and vital system components comprising a full OS as defined by POSIX.
Many computer users run a modified version of the GNU system every day, without
realizing it. Through a peculiar turn of events, the version of GNU which is
widely used today is often called Linux, and many of its users are not aware
that it is basically the GNU system, developed by the GNU Project.
There really is a Linux, and these people are using it, but it is just a part
of the system they use. Linux is the kernel: the program in the system that
allocates the machine's resources to the other programs that you run. The
kernel is an essential part of an operating system, but useless by itself; it
can only function in the context of a complete operating system. Linux is
normally used in combination with the GNU operating system: the whole system is
basically GNU with Linux added, or GNU/Linux. All the so-called Linux
distributions are really distributions of GNU/Linux.
[/QUOTE]
-I'm sorry, but I had to-
This copypasta, while being quite annoying, is indeed accurate. There is no
such thing as one single Linux operating system. All of the distributions bodge
together mostly unrelated software in order to create a semblance of a coherent
system, but do not be fooled. This system is not coherent. The documentation
style is all over the place. Core programs are half-functional at best (see
Pulseaudio and its infamously spotty track record). Generally, the systems feel
like what they are: hacked-together abominations. BSDs don't have this issue.
The entirety of the system works together seemlessly, and you can do most of
what you want with the defualt install (OpenBSD, for example, ships utilities
that permit it to act as a DNS server, router, firewall, mail server, and web
server). Also, everything /just works/. Audio? sndioctl. Hardware accel?
fw_update should do the trick. The system ships /sane defaults/ that makes
things work properly without doing too much. You're still given the freedom to
choose the WM or DE to use, but the ones OpenBSD ships by default (namely CWM)
are perfectly adequite for my usage.
# Documentation
All that's well and good, but what's the use of a system if you don't know how
to use it? OpenBSD's manpages do an excellent job at that. Unline GNU manpages
which seem to only be designed to give people a refresher on how to use
something (see the infamous ip[1] manpage for an example), BSD manpages are
compreshensive and convey all of the information you need to know about that
program, syscall, or idea. Take CWM for example. Its config file manpage[2]
clearly explains how to do everything that you could possibly want to do with
the program, as well as providing examples. This kind of documentation is neigh
unheard of in the Linux ecosystem.
# Code quality and simplicity
The entire OpenBSD base system is comprised of roughly 3 million source lines
of code. The Linux kernel on its own is 30 million. "But wouldn't more lines of
code mean more features and thus better?" you may ask. The answer is *no*. The
more lines of code you have, the more difficult your program is to audit. The
more difficult your program is to audit, the more likely bugs will slip
through. Complexity is not what you want in a maintainable computer system.
Windows and MacOS can get away with it because they have billions of dollars at
their disposal. Lines of code aside, GNU (the most common coreutils and
standard lib for Linux systems) just writes terrible code. Reading through,
it's full of more comments than code, because most of the code itself is
incomprehensible spaghetti. OpenBSD, on the other hand, is mostly readable for
someone who has even a base knowledge of C.
# OpenBSD isn't for everyone
If all you want is a computer to act "normally," OpenBSD isn't for you. It's an
operating system by hackers, for hackers, and it just so happens to be
productive as a side effect. Most of your programs won't work on OpenBSD; the
virtualization is worse than 9front[3]'s, somehow
[1] https://linux.die.net/man/8/ip
[2] https://man.openbsd.org/cwmrc.5
$ find -name author
ERROR 404: NULL NOT FOUND Programmer, hacker, BSD user, FOSS believer