-- Leo's gemini proxy

-- Connecting to mizik.eu:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini;lang=en

Is OpenBSD for you? - Marián Mižik


home

gemlog

projects

atom feed



2023-03-13 | 6 minutes reading | tags: OpenBSD, Laptop


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 using `video` and `ffmpeg`

Power management is present, but needs to be configured and controlled via terminal using `apmd` and `obsdfreqd`

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





2024 Marian Mizik | License: CC BY-NC-SA 4.0 | marian at mizik dot sk | marian_mizik@bsd.network (mastodon)

-- Response ended

-- Page fetched on Thu May 2 09:01:05 2024