| Title: Why I stopped using OpenBSD | |
| Author: Solène | |
| Date: 15 November 2024 | |
| Tags: openbsd linux life | |
| Description: In this blog post, I share my experience and why I stopped | |
| using OpenBSD | |
| # Introduction | |
| Last month, I decided to leave the OpenBSD team as I have not been | |
| using OpenBSD myself for a while. A lot of people asked me why I | |
| stopped using OpenBSD, although I have been advocating it for a while. | |
| Let me share my thoughts. | |
| First, I like OpenBSD, it has values, and it is important that it | |
| exists. It just does not fit all needs, it does not fit mine anymore. | |
| # Issues | |
| Here is a short list of problems that, while bearable when taken | |
| individually, they summed up to a point I had to move away from | |
| OpenBSD. | |
| ## Hardware compatibility | |
| * no Bluetooth support | |
| * limited game pad support (not supported by all programs, not all game | |
| pad will work) | |
| * battery life / heat / power usage (OpenBSD draws more power than | |
| alternatives, by a good margin) | |
| ## Software compatibility | |
| As part of staying relevant on the DevOps market, I need to experiment | |
| and learn with a lot of stuff, this includes OCI containers, but also | |
| machine learning and some weird technologies. Running virtual machines | |
| on OpenBSD is really limited, running programs headless with one core | |
| and poor performance is not a good incentive to work at staying sharp. | |
| As part of my consultancy work, I occasionally need to run proprietary | |
| crap, this is not an issue when running it in a VM, but I can not do | |
| that on OpenBSD without a huge headache and very bad performance. | |
| ## Reliability | |
| I have grievances against OpenBSD file system. Every time OpenBSD | |
| crash, and it happens very often for me when using it as a desktop, it | |
| ends with file corrupted or lost files. This is just not something I | |
| can accept. | |
| Of course, it may be some hardware compatibility issue, I never have | |
| issues on an old ThinkPad T400, but I got various lock up, freeze or | |
| kernel panic on the following machines: | |
| * ThinkPad X395 | |
| * ThinkPad t470 | |
| * ThinkPad t480 | |
| * ryzen 5600X + AMD GPU (desktop) | |
| Would you like to keep using an operating system that daily eat your | |
| data? I don't. Maybe I am doing something weirds, I don't know, I | |
| have never been able to pinpoint why I got so many crashes although | |
| everyone else seem to have a stable experience with OpenBSD. | |
| # Moving to Linux | |
| I moved from OpenBSD to Qubes OS for almost everything (except playing | |
| video games) on which I run Fedora virtual machines (approximately 20 | |
| VM simultaneously in average). This provides me better security than | |
| OpenBSD could provide me as I am able to separate every context into | |
| different spaces, this is absolutely hardcore for most users, but I | |
| just can't go back to a traditional system after this. | |
| Earlier blog post: Why one would use Qubes OS? | |
| In addition, I have learned the following Linux features and became | |
| really happy of it: | |
| * namespaces: being able to reduce the scope of a process is incredibly | |
| powerful, this is something that exists in Linux since a very long | |
| time, this is also the foundation for running containers, it is way | |
| better than chroots. | |
| * cgroups: this is the name of the kernel subsystem that is responsible | |
| for resource accounting, with it, it is possible to get access to | |
| accurate and reliable monitoring. It is possible to know how much | |
| network, i/o, CPU or memory have been used by a process. From an | |
| operator point of view, it is really valuable to know exactly what is | |
| consuming resources when looking at the metrics. Where on OpenBSD you | |
| can notice a CPU spike at some timestamp, on Linux you would be able to | |
| know which user used the CPU. | |
| * systemd: journald, timers and scripting possibilities. I need to | |
| write a blog post about this, systemd is clearly disruptive, but it | |
| provides many good features. I understand it can make some people | |
| angry as they have to learn how to use it. The man pages are good | |
| though. | |
| * swap compression: this feature allows me to push my hardware to its | |
| limit, with lz4 compression algorithm, it is easy to get access to | |
| **extremely** fast swap paid with some memory. The compression ratio | |
| is usually 3:1 or 4:1 which is pretty good. | |
| * modern storage backend: between LVM, btrfs and ZFS, there are super | |
| nice things to achieve depending on the hardware, for maximum | |
| performance / reliability and scalability. I love transparent | |
| compression as I can just store more data on my hardware. (when it's | |
| compressible of course). | |
| * flatpak: I really like software distribution done with flatpak, | |
| packages are all running in their own namespace, they can't access all | |
| the file system, you can roll back to a previous version, and do some | |
| interesting stuff | |
| * auditd: this is a must-have for secure environments, it allows | |
| logging all accesses matching some rules (like when was accessed this | |
| arbitrary file, when that file is modified, etc...). This does not | |
| even exist in OpenBSD (maybe if you can run ktrace on pid 1 you could | |
| do something?). This kind of feature is a basic requirement for many | |
| qualified secure environments. | |
| * SELinux: although many people disable it immediately after the first | |
| time it gets on their way (without digging further), this is a very | |
| powerful security mechanism that mitigates entire classes of | |
| vulnerabilities. | |
| When using a desktop for gaming, I found Fedora Silverblue to be a very | |
| solid system with reliable upgrades, good quality and a lot of software | |
| choice. | |
| # Conclusion | |
| I got too many issues with OpenBSD, I wanted to come back to it twice | |
| this year, but I just have lost 2 days of my life due to all the | |
| crashes eating data. And when it was working fine, I was really | |
| frustrated by the performance and not being able to achieve the work I | |
| needed to do. | |
| But as I said, I am glad people there are happy OpenBSD users who enjoy | |
| it and have a reliable system with it. From the various talks I had | |
| with users, the most common (by far) positive fact that make OpenBSD | |
| good is that users can understand what is going on. This is certainly | |
| a quality that can only be found in OpenBSD (maybe NetBSD too?). | |
| I will continue to advocate OpenBSD for situations I think it is | |
| relevant, and I will continue to verify OpenBSD compatibility when | |
| contributing to open source software (last in date is Peergos). This | |
| is something that matters a lot for me, in case I go back to OpenBSD | |
| :-) |