Skip to content

Why I'm using OpenBSD rather than Linux

I used various flavours of Linux for many years, but since 2014 I've changed to OpenBSD. This happened more or less by accident. I first installed OpenBSD largely from curiosity, not dissatisfaction with Linux. But the more I used it the better I liked it. until I finally installed it on all my computers.

At first I kept one laptop running Linux so that I could use Adobe Flash and Skype, neither of which run on OpenBSD. But Flash is no longer maintained for Linux and the sites that demand it (fortunately a decreasing number) complain that the version on Linux is too old. Skype is no longer available for 32-bit machines (like mine) so that is no longer a reason for me to keep Linux.

OpenBSD is often praised for its security but that wasn't what attracted me initially. I didn't think myself to be particularly vulnerable, but I've changed my mind somewhat now in view of the increasing quantity of internet fraud and the number of ISPs and other holders of data whose security has been breached (TalkTalk is the latest example as I write). OpenBSD gives me a degree of confidence, though I hope not complacency.

There is a different kind of security that I also care about: what to do if everything goes wrong. Recently I stupidly managed to delete my /etc directory, thus rendering my system unbootable. I regularly backup /home both to tarsnap and to another computer on my local network, but of course I needed to reinstall the system. OpenBSD is the easiest OS to install that I've ever used, so reinstalling took only about half an hour. I still had to fetch the third-party packages that I use, but I keep a list of those so I knew what I needed to get. Best of all, I didn't even need my backup of /home; OpenBSD helpfully sets up a separate /home partition by default and I didn't need to overwrite this during the reinstall. Recovery from my mistake was therefore relatively painless.

I could have done all this on ArchLinux or Debian too, but installing those takes longer.

Using OpenBSD as a desktop
I find that OpenBSD works well as a desktop OS. Any disadvantages? I've already mentioned Flash and Skype, both of which have security risks so you are better off without them if they are not essential. Arch and Debian have more packages than OpenBSD but in practice this hasn't made much difference to me. Arch is more bleeding-edge than OpenBSD, even the -current flavour (branch) I use, but again that hasn't been a problem. And I like the *BSD concept of having a unified base system, which even includes X in the case of OpenBSD.

The stability of OpenBSD is excellent. The -current flavour, which I use, is roughly comparable with Debian unstable, which does occasionally spring a surprise on you, but in almost 3 years I've never had any major problems with OpenBSD.

None of this is meant as a criticism of Linux, which, as I say, I used happily for many years.

There's a lot more to say about OpenBSD as a desktop OS, including why I find it works better for me than does FreeBSD, but I have other posts about that and I won't repeat myself here. Please use the tags to read more.

OpenBSD: Full details

I have a variety of computers, ranging from a desktop (Acer Veriton M460) through Thinkpads of several kinds, both 64-bit and 32-bit. All run OpenBSD.

OpenBSD was probably the easiest OS to install that I've ever tried. By simply following the defaults (except for choosing the uk keyboard) I found myself, after about 15 minutes, with a working system including X. Everything else worked as expected too, including sound, which is often something you have to struggle with in Linux.

Installing third-party applications such as Firefox was equally easy. OpenBSD does have ports via a scheme borrowed from FreeBSD, but you don't need to use them since all the ported stuff also exists on OpenBSD as packages, and you are encouraged to use those instead of ports. (You only need ports when you want to modify a supplied program.) I found that nearly everything I wanted existed as a package so getting my system into order was pretty easy.

But of course nothing is ever as simple as it seems at first. Coming from a Linux background I had to adapt to new ways of thinking. This particularly applies to updating/upgrading the system.

In Linux this normally involves downloading and installing new packages and their dependencies, and you can do this in OpenBSD for third-party packages, which are mostly ported from Linux. But doing so won't work unless you upgrade the base system at the same time. There are several ways of doing this.

1. There is an official "-release" every 6 months, in May and November, from which you can upgrade your system.

2. There is a "-stable" branch which only gets serious errata and security fixes; you have to compile this yourself from source and it doesn't get you anything new (so you can't install new versions of third-party packages, since they won't work). This could be compared to Debian Stable.

3. There is also a "-current" branch, in which the developers post their new code. It is updated frequently both as code and as "snapshots". There are differing opinions about the desirability of using this. You can read dire warnings about the possibility of finding yourself with an unusable or even unbootable system, but plenty of people do use -current on production machines. I've now done numerous upgrades (using snapshots, not compiling from source) and there have been no serious problems. Snapshots are roughly comparable to the Sid branch of Debian, but remember that they are only concerned with the core system of OpenBSD. Packages are separately maintained and have to be installed separately.

Keeping OpenBSD up to date with snapshots and packages isn't difficult although it does take a little time to do. But you don't have to do it too frequently — just when you think it is necessary, perhaps because a new or updated package that you need has become available.

1. The number of packages available for OpenBSD is smaller than on most Linux distributions. I found most of what I needed but in a few cases (qsf, sitecopy) I had to compile my own from source.

2. Some packages are rather old. Mostly it doesn't matter too much, but it can be a problem. For example, I had a lot of slides made with LyX and Beamer on another machine, and when I wanted to edit these I couldn't because the OpenBSD version of LyX was not compatible with the one I'd used previously. (LyX was updated a month or two later for OpenBSD.)

3. Some things I looked for simply don't work on OpenBSD. One of these is Flash, which is needed for BBC iPlayer. There is no Flash for OpenBSD and most people who use the system don't want it anyway because of its poor safety record. A possible way round this is to use get_iplayer. [Note added 01/04/2016: BBC now provides HTML5 as an alternative to Flash and this works well with Firefox and Chromium.]

Skype is also not available for OpenBSD. If you need this you will have to use Linux.

4. My flatbed scanner (Epson Perfection v330) needs proprietary software that isn't available for OpenBSD. So I brought back my Epson Perfection 1650 from abroad and this works out of the box with the sane backend. Incidentally, I think this now-superseded model is a better scanner than the v330.

5. To get round these and similar difficulties it would seem logical to install OpenBSD and Linux on the same machine and dual boot, but although this is technically possible it's harder to do than you might expect. You are probably better off using at least two machines rather than attempting to dual boot. Virtualisation is another possibility but I haven't tried that.

6.. Finally, if you want to use OpenBSD you have to be willing to learn a lot of new things. (You might say that's a feature not a drawback since it helps to keep your brain alive!) At first glance OpenBSD is quite similar to Linux but on closer acquaintance numerous differences appear. The OpenBSD folk pride themselves on their documentation and are right to do so, but you need to read it carefully and do a lot of googling rather than ask newbie questions on the mailing lists, which are a lot more technical in tone than those of most Linux flavours. (DaemonForums may be a better place to ask beginners' questions.) Absolute OpenBSD (2nd edition) by Michael Lucas (ISBN-13 978-1-59327-476-4) is certainly worth getting if you decide you want to run OpenBSD regularly on one or more machines.

Currently OpenBSD is the only OS that I'm using.

For a comparison of OpenBSD and FreeBSD for the desktop please see Which BSD as Desktop.

FreeBSD: Full details

I have a variety of computers, ranging from a desktop (Acer Veriton M460) through Thinkpads of several kinds, both 64-bit and 32-bit. All run OpenBSD but I have tried FreeBSD in the past and here I offer some comments on my experience.

Installation of the base system (no X) is easy enough although not quite as straightforward as for OpenBSD.

Now you can install X and anything else you want, using the new and improved packaging system (pkg). This is much easier than installing everything via ports, which is what I had to do previously, although ports are, of course, available if you want them. Sound worked out of the box for me.

So far, so good, but I encountered a few difficulties setting things up as I wanted them. You will note that some of them concern third-party applications and not FreeBSD itself.

1. Blank black screen on exiting X
At first when this happened I thought I needed to do a hard reset using the power button to get out. Then I found I could reboot by typing the command in the (invisible) terminal, although I couldn't see anything on screen. The real solution to this problem is to put this line in /boot/loader.conf:


2. Entering "Sleep" when lid is closed
This worked out of the box for me wth OpenBSD but it seems to be a problem in FreeBSD, to judge by the discussion on the Net. I found that it was enabled for me with this command:

sysctl hw.acpi.lid_switch_state=S3

To make it happen on boot I inserted the line in /etc/rc.conf.local. I think some machines may need something other than S3, and the command may not work for all machines.

Note added after upgrading to 10.2: lid switch and suspend to ram no longer work; in fact, they lock the computer up and I have to do a hard reset.

3. Fetchmail
I use fetchmail to collect mail from my ISP. In FreeBSD I got error warnings about certificates being incorrect, although the mail still arrived. The solution is given in the fetchmail man page: use these switches to eliminate the error messages:

fetchmail --sslproto 'SSL3' --sslcertck

4. Printing
My printer is a networked Brother HL5250DN. In OpenBSD printing worked fine with CUPS. In FreeBSD I set up CUPS without problems and a test page was printed, but I couldn't get lpr, lp, or lpq to work. This seemed to be because of a conflict with the native BSD printing commands, but stopping the BSD daemon didn't help. After a day's fruitless experimenting I followed the example of another FreeBSD user I found on the Net: I gave up on CUPS, used the BSD daemon following the setup instructions in the FreeBSD manual, and installed apsfilter. I then got good printing, using the generic Postscript driver.

Here is my /etc/printcap.

# APS1_BEGIN:printer1
# - don't delete start label for apsfilter printer1
# - no other printer defines between BEGIN and END LABEL
# APS1_END - don't delete this

5. LyX on FreeBSD
I use LyX a lot, for writing books and papers and for making slides with Beamer. When I loaded a Beamer file to edit it, LyX complained that beamer.cls and a number of other files weren't on the system. I therefore installed the texlive-texmf package which is supposed to provide the necessary files. But even after reconfiguring LyX it still complained that the files were not there. After more on-line research I found I needed the tex-formats package as well. (It provides pdflatex.) FreeBSD has been criticised on DistroWatch for failing to install all needed dependencies for third-party packages.

6. Using a scanner with xsane
I have an Epson Perfection 1650 which works well with xsane on Linux and OpenBSD. There is a packaged version of xsane for FreeBSD so I installed it, but the scanner would only work as root. This is a permissions problem. There are two methods of solving it.

Method 1: modify the permissions

1. make a usb group and add yourself to it:

pw groupadd usb
pw groupmod usb -m

2. Add yourself to the operator group:

pw groupmod operator -m

3. in /etc/devfs.conf insert this line:

perm xpt0 0660

4. in /etc/devfs.rules insert these lines:

add path 'ugen*' mode 0660 group operator
add path 'usb/*' mode 0660 group operator
add path 'xpt*' mode 0660 group operator

5. Very important: activate the entry in /etc/devfs/rules by adding this to /etc/rc.conf:

6. Reboot. You should now be able to run scanimage -L and xsane as user and have them find your scanner (assuming that it is supported by sane, of course). Note that sane-find-scanner probably still won't find it as user. (It does work as root but for some reason in my case it finds both my Epson scanner and another scanner that I don't have!)

Method 2: use the saned daemon

To do this, add these two lines to /etc/rc.conf:


Then restart the machine either by rebooting or running (as root):

service saned start

Next, add this line to /usr/local/etc/sane.d/net.conf (you may just need to uncomment it):


I'm grateful to several correspondents on the freebsd-questions mailing list, especially Warren Block and Patrick Hess, for help with this problem.

FreeBSD works well as a desktop once you get it set up as you want. But this can take quite a bit of time because in some cases finding a solution to difficulties isn't easy and can need a good deal of research on line. Some of what I needed to know wasn't documented and I depended on the kindness of people answering in freebsd-questions@. For a comparison with OpenBSD, see see the taglist below.

Which *BSD as desktop: OpenBSD or FreeBSD?

Most people who think of trying a BSD would probably go for FreeBSD, but OpenBSD is also a possibility. and is what I prefer. Here I offer my assessment of the differences.

Both are easy to install, OpenBSD slightly more so. But the difference isn't important.

On OpenBSD very little needs to be done. In particular, X works out of the box. Both systems have very good packaging systems, but FreeBSD doesn't always install all the dependencies you might need. For example, I had a lot of difficulty getting LyX Beamer to work on FreeBSD because of unsatisfied dependencies that took quite a time to figure out. FreeBSD has more packages than does OpenBSD but so far I've missed only two that I needed on OpenBSD: qsf and sitecopy, both of which I compiled myself without difficulty

Sometimes things that you would think would be easy need a lot of work in FreeBSD. For example, getting xsane to work as user took me hours in FreeBSD whereas it worked out of the box with OpenBSD. The same applied to printing with CUPS. And FreeBSD gave me a blank black screen when I closed X; there is a solution to this but why did I have to spend time finding it? Suspend to ram worked automatically in OpenBSD but needed research in FreeBSD, and after a minor upgrade from 10.1 to 10.2 it stopped working again (and locked up the computer when I tried to do it).

Both OSs can work well as desktops but FreeBSD needs a lot more work to achieve this than does OpenBSD. For that reason I'd say that OpenBSD is the better choice. I have a lot more information about both OSs; please use the BSD tag below or on the right.

FreeBSD as desktop

I was a Linux user for many years but I was drawn to the BSD philosophy of having a core system to which third-party packages can be added. I know that quite a number ot Linux users feel the same attraction, and some try out a BSD system, although I suspect that most go back to Linux fairly quickly. The BSD system most often chosen for such experiments is FreeBSD, and here I offer my experience of using this as an alternative to Linux. As I explain in other posts here, I found that OpenBSD better for the desktop than FreeBSD, but FreeBSD is certainly a possibility and here I offer my experience of using it.

What I want in a desktop
Perhaps I should have said "What I don't want in a desktop". I don't want Gnome, KDE. or any other desktop environment. I don't want complicated window managers either, with lots of widgets or decorations. My window manager is spectrwm; if I wasn't using that it would probably be dwm or ratpoison. If you are looking for more fancy stuff you probably won't use any BSD, although I'm sure that both FreeBSD and OpenBSD can provide it on request. My computing philosophy is KISS (Keep It Simple, Stupid)

I find that FreeBSD gives me a lot of what I want but it does have some fairly important problems for the desktop user. For details of these and how I (mostly) solved them, please see FreeBSD: Full details.

More links to my other posts on BSD below.

OpenBSD as desktop

Many Linux users, I think, harbour a curiosity about the BSD family and quite a few try out one of its members, though I suspect most of them return to Linux fairly quickly. I did so myself in the past but I now use OpenBSD on all my computers. I used to think it was only of interest to people running servers, but then I chanced to read this article in DistroWatch. It suggested that OpenBSD can, in fact, be useful as a desktop, at least if you don't want anything too fancy (that's me). (DistroWatch now has a more recent review of OpenBSD.) But why did I make the change?

What I want in a desktop
Perhaps I should have said "What I don't want in a desktop". I don't want Gnome, KDE. or any other desktop environment. I don't want complicated window managers either, with lots of widgets or decorations. My window manager is spectrwm; if I wasn't using that it would probably be dwm or ratpoison. If you are looking for more fancy stuff you probably won't think of using any BSD, although I'm sure that both FreeBSD and OpenBSD can provide it on request. In computing my motto is KISS (Keep It Simple, Stupid).

For further details of my experience of using OpenBSD as a deskto please see OpenBSD: Full details.