This post is a review of my first 6 months using OpenBSD. There’s nothing technical here, just the impressions it has caused me.
What I’ve been using until now
I’ve been using GNU/Linux since the mid 90’s and it has been my main operating system at home since I suffered Windows ME. I’ve used Slackware, Debian, Mandriva/Mandrake, SUSE, Red Hat, Ubuntu, Gentoo, Sorcerer, Arch and other distributions I can’t remember. I love GNU/Linux, but there’s always something that makes me try yet another distribution. And it may be just me growing old, but I haven’t fully understood recent changes such as systemd.
Why I tried OpenBSD
The last time I felt that I wasn’t happy with the distribution I was using I decided to try a BSD, just to get to know other operating systems. First I tried FreeBSD because it’s said to be the most popular one and has plenty of software available to run on it. After installing FreeBSD I found that I couldn’t configure it on my laptop in a way I felt comfortable with. I can’t say anything bad about my brief experience with it, apart from “small nuisances”. For example, I couldn’t get my touchpad correctly configured easily. I found documentation on how I could edit Xorg configuration to play with different speeds to adjust it to my liking. But, shouldn’t it come with a sensible default setting? I can understand that not all corner cases can be covered, but I had it installed on my old x220, so it wasn’t exactly the case.
Then I installed OpenBSD. After using a rolling distro for years I didn’t want to be bothered about continuous upgrades, so I picked 6.6 stable that had just been released. I was looking for simplicity and minimalism and I found them. Maybe too much of them. I missed LVM, some programs, hardware support, and the feeling in recent years with GNU/Linux of being able to do almost anything I could think of. On the other hand, the documentation and manual pages where excellent and everything seemed easy and logical once I’ve learned and configured it. What’s more, almost everything worked out of the box with sensible defaults.
I also read about the philosophy of the project and I really liked it. Despite security not being my first priority, simplicity, consistency, good documentation and a relatively small system are things I appreciate. The only caveat was that the wireless card of my laptop wasn’t supported, so I had to buy a external USB wireless card. The speakers didn’t work either, but I always use headphones anyway. Unsupported hardware didn’t surprise me, as I was installing it on a new laptop (thinkpad x395), a model that had just recently been released. Trackpad worked great.
Why I’ve kept using it
Although at first OpenBSD felt a little bit alien too me, over the weeks I began enjoying using it more and more. I read the FAQ and quite a lot of man pages. I began a cycle of “what do I miss?” “how can it be done in OpenBSD?” “how do I configure it?” and bit by bit the alien feeling started to dissipate. I also began searching for “OpenBSD” on Twitter and reading now and then a couple of mailing lists using the web interface.
I read in Twitter that my wireless card was already supported in “-current”. So I switched to snapshots decided to return to stable when 6.7 arrived. It was so easy and fast that I started upgrading every couple of weeks. And it worked! I could get rid of the USB dongle. I also realized that there are more OpenBSD users and developers on the Fediverse than on Twitter. I tried to open an account in bsd.network, but as I didn’t know anyone there and they are in “invite-only” mode I registered on mastodon.social and began following messages about my recently installed operating system. (edit: I have now an account on bsd.network thanks to @solene)
After a while I got to the point where I could do with OpenBSD almost everything I did previously with GNU/Linux, but I enjoyed using it a lot more. I can’t stress enough how much I love it being minimal. I remember watching a video of Brian Kernighan in which he talked about the development of AWK. Don’t quote me on this, but what I remember of the general idea of what he said was that he regrets that it has gotten so big. At first it was simple and you could do with it the tasks it was designed for perfectly. But people continued asking for more and more features. It began to grow and grow. And the day came when it was too complicated and had many not so useful features. It seems that OpenBSD developers say “no” to the addition of a lot of features. So the system is kept simple and every part of it focused on doing the work it was designed for. I love it, even if sometimes a miss a little added functionality.
My ridiculously tiny first contribution
There’s something that I have been wanting to do during all these years. I really think that I should contribute to FOSS projects. I know that there are tons of projects out there and there is no excuse for not having done it before, but I suppose I’ll stick with “better late than never”. So when I noticed that sometimes developers ask for testing a new patch to the kernel, I thought that it was something that even a newcomer like me could do. So I prepared myself. I read the (I will say it again) excellent documentation, downloaded the source code through CVS and learned how to compile the kernel. The whole process was easy and logical once again.
The other day @stsp published a patch for the WiFi which needed testing and in minutes I had rebooted with the modified kernel. Everything worked and I couldn’t find any regressions. As a matter of fact I’m writing this post using a web interface with that same kernel. It’s a tiny thing to do, but it’s a start.
Thinking about the future
It’s impossible to know what will happen tomorrow. Interests and circumstances change suddenly. But I’ve got the feeling that I can continue learning and start contributing to the project. I plan on continuing reading mailing lists, testing patches and studying the source.
There seems to be also a lot of easy-to-start-doing work with ports. Maintainers seem to be overwhelmed and I’m definitively looking forward to an opportunity to contribute a patch to update some port. I’ll try to find one with no consumers that I can test on my machine.
OpenBSD is not for everyone. If you need every possible feature and program in existence it won’t be what you want. If you need support for every piece of hardware, it won’t be either. If you don’t like reading man pages you will find very difficult to use it. Developers put a lot of effort into documentation, so everyone is supposed to read it before asking how to do something.
If you don’t have a problem with the last paragraph and you want a system which has good documentation and is minimal, consistent, easy to use and configure in actual hardware, secure and reliable, try OpenBSD. In six months I have passed from “well, let’s try this yet another thing” to “wow, this is great. I want to learn more and get involved in this”. For me it has the perfect combination of minimalism and having enough functionality for being my main machine.