Is OpenBSD for you?
This blog post is a step by step wizard for those who think about using OpenBSD as a primary OS and daily driver, but don't know if it meets the requirements. I am trying to focus on desktop/laptop use in this case. First thing most people would probably ask is, if they will be able to run their current personal setup after migrating to OpenBSD, or at least, if there is a working alternative for those apps/functionalities which are not available. So here is the software and hardware list of things you need to consider.
Hardware compatibility
- Smaller dev team means smaller hardware support list. Be sure you check the hardware you would like to use against official documentation
- Bluetooth. There was some basic support in the past ported from NetBSD, but removed because of security and code maintenance costs
- Wifi. Only 802.11g support on all chipsets except those covered by drivers bwfm(4), iwm(4) and iwx(4) which have support up to 802.11ac
- USB dongles. Tragic read/write performance. Problems with mounting dongles formatted outside OpenBSD. But works
- Bleeding edge laptops/desktops are most of the time unstable or not supported. In such cases, use the
current
version and choose the components based on what is already supported - Battery life is worse compared to Windows or Linux, but usable
- Sleep/Hibernate works in most cases. My experience is, that it works even better than Linux most of the time
- Fingerprint sensors. Some work, some doesn't. If they do, there is also possibility to login with fingerprint using
login_fingerprint
- Thunderbolt mostly works, but plugged-in device is available only after computer reboot. There is no hotplug support because OpenBSD has no NHI driver
- GPU. OpenBSD does not support the proprietary GPU drivers, so nvidia is the worst possible vendor for OpenBSD. There is support for opensource nv(4) driver, but it supports only old cards. OpenBSD incorporates DRM stack from the Linux kernel. So by checking the version of Linux kernel which was used, you can detect exact state of opensource GPU driver support.
Software Compatibility
- Smaller dev team means smaller software list. You can check for your favourite applications online at openports.pl
- Proprietary software. The vast majority don't support OpenBSD, even if the particular software supports Linux
- FAANG/MAMAA technologies. No support. They, probably by default, don't care about BSD world. So there is no support for development with Android, Node, Flutter, Electron, etc...
- Running Windows applications. There is no wine or anything like that
- Running Linux application. There was a Linux compatibility layer in the past, but it was removed because of standard OBSD reasons: security and code maintenance costs :)
- Other OS filesystems. There is only read support for EXT2/3/4. There is RW support for FAT32 and also NTFS through ntfs-3g
- Virtualization. No support for VmWare or Virtualbox. There is Qemu support, but only slow software emulation, because there is no such thing as KVM in OpenBSD. There is also native VMM which has support for BSD and Linux VMs, but not for Windows. There is also no support for graphics yet.
- Containers. No native Kubernetes and Docker support. It can be used in a virtual machine using VMM though
- No stable KDE. But there is an active development
- Not usable GNOME. There is full support for Gnome, but the performance is tragic. There are some major improvements coming to version 7.3, so it may be an option soon
- VPN. There is full support for all 3 major implementations: OpenVPN, WireGuard, IPsec/IKEv2
- Full disk encryption is available, but has to be done manually during the installation. It will be part of installation wizard from 7.3 up
- Dualboot is possible, but not with GRUB, because it is both boot manager and loader. OpenBSD loading mechanism is not compatible with GRUB. Therefore, you need to use software which is only boot manager and not a boot loader too. For example rEFInd will work. Windows will be OK with it. In the case of Linux, you have to be sure that GRUB won't re-enable itself during the distribution upgrade procedure. There is also another Linux option. You can recompile your kernel with EFI stub enabled. Then your kernel will also act as a boot loader. This is convenient especially when you are using modular distributions like Gentoo, where compiling a kernel is well supported and grub won't even be installed.
Performance
Performance is much worse than other operating systems. It's a toll for simplicity and additional security
Ease of use
- Installer provides options to install with X support automatically. OpenBSD is using hardened version of Xorg and xenodm(1) as a display manager / login screen.
- Default window manager is fvwm, but most people replace it with something else. It better be lightweight though. Tiling managers like dwm or i3, or standard managers like cwm or fluxbox. Xfce is supported too.
- Multimedia codec support is on par with Linux using
ffmpeg
- Display management is using
xrandr
, so the same as Linux - Audio management is present, but needs to be configured and controlled via terminal using
sndioctl
- Webcam management is present, but disabled by default. Needs to be enabled via
sysctl
then configured and controlled via terminal usingvideo
andffmpeg
- Power management is present, but needs to be configured and controlled via terminal using
apmd
andobsdfreqd
- Network management is present, but needs to be configured and controlled via terminal using
ifconfig
- Graphics acceleration (direct rendering) is supported
Types of use
- Definitely OK for standard use by a typical person. Web browsing (Firefox, Chromium), emails (browser, Thunderbird), playing music (QuodLibet), watching videos (VLC), using office tools (Libreoffice) or watching YouTube. It may be harder if one wants to use music/video/game streaming portals and there is also no native support for mainstream IM clients. Web versions tend to work though.
- Good for programmers by default, but support for modern programming languages is not great. Support for modern frameworks and web development is minimal. One needs to check the availability of one's tech stack.
- Great for system admins and system developers (C, C++, Perl, Python, Shell). Most of the devs are these kind of people and that's why OpenBSD also works best in this scenario. They do this OS for them and people like them, not for mainstream users.
- Great for people targeting security and simplicity more than performance, variety of options and modern ways of consuming media
Average OpenBSD John Doe
So, who is the average user of this operating system?
- He works in IT or academic sphere
- He uses UNIX like operating systems for years
- He feels best in terminal
- He prefers keyboard-driven control over mouse
- He is minimalistic with his setup (tiling WM, TUI apps)
- He does not use bleeding edge hardware, because he can still comfortably run his setup on the old one
- He owns a ThinkPad. The oldest that can still run his setup in the required quality
- He reads manuals
- He has his own set of scripts to optimize and control his setup
Avergage OpenBSD computer
What is then the mainstream OpenBSD hardware setup you may ask? How should I use it to have the least number of issues and go with the flow?
- 2-10 years old hardware with Intel CPU
- Integrated graphics
- Wifi card using bwfm(4), iwm(4) or iwx(4) drivers
- In the case of laptops, any that fulfills the above will do. But if you want to be sure, ThinkPad is the brand/model to go. AFAIK, many of the devs use them too
- Use SSD disk. OpenBSD IO speed is bad, so you need to have decent random access performance
- Be minimalist when it comes to your peripherals and custom hardware components