I have used UNIX for decades, and use it for almost everything. My preferred variant is OpenBSD, a true descendant of Bell Labs & Berkeley UNIX, and one of the leading versions of BSD. Linux is an operating system that was created as a clone of Unix and has been developed over the years, sometimes by people who don’t understand the original ideas of Unix, hence it has diverged significantly. Here are some things that are the same and some that are different between OpenBSD and Linux.

Similarities

From the non-admin user point of view, Linux and OpenBSD are quite similar.

  • There is a single filesystem rooted at '/', with entries like these:

    /
    |-- bin
    |-- boot
    |-- dev
    |-- etc
    |-- home
    |-- lib
    |-- mnt
    |-- sbin
    |-- tmp
    |-- usr
    |   |-- bin
    |   |-- lib
    |   `-- sbin
    `-- var
  • Common user commands like ls, rm, grep, vi, and many more are the same, though sometimes with some different command-line options or a few different subcommands.

  • The X Window System is provided on both, including dbus. KDE, Gnome, XFCE4, or any other desktop layer can be used. Wayland is optional on OpenBSD.

  • Common programming languages like C and Perl are included if they are used to build part of the base system, and optional otherwise. The list of add-on programming languages is long and growing, including Ruby, Python, Java, Haskell, and many more.

  • Both systems are open-sourced (Most Linuxes allow "binary blob" driver code; OpenBSD does not, though it does provide open-source drivers for devices that need binary firmware, and provides a download mechanism fw_update).

  • OpenBSD runs most of the same thousands of open-source as you’d find on Linux (most via add-on packages).

  • OpenBSD runs on most of the same types of computer system as Linux: PC’s, laptops, Macs, Arm, RISC-V, and others, though often with fewer devices supported.

Differences

  • There is a single development team and a single distribution; the source trees contain everything that is in the base system. Source is available via CVS and mirrored on github; see "Getting Source" on main page. OpenBSD was the first major system to make its entire source code freely available over the internet via a revision control system.

  • The OpenBSD system is smaller, more coherent and cohesive.

  • As a result, many things that are "built in" to Linuxes are optional and can be installed by the user with pkg_add. This includes Emacs, the bash shell, CUPS printing, and more. Most users need only some of those things, so they are optional.

  • OpenBSD tends to adhere to the POSIX standard for Unix-like systems. Linux distros tend to adhere to LSB, the Linux Standards Base. The two specs overlap but have many differences.

  • OpenBSD uses the BSD or similar licenses for most of its built-in software; GPL’d software is usually made available in the add-on category.

  • OpenBSD puts almost all config files in /etc and all local software in /usr/local. There is no need to hunt through /usr/local, /opt/etc, /usr/local/opt/etc, or any other twisty little passages.

  • The OpenBSD man pages are superior to most systems, so there are no separate "info" or "doc" files for most of the base system. There is a very good FAQ, on the web site (link at left).

  • Linux has a dozen different tools for adding software, including rpm, apt, dnf, yam and deb. OpenBSD has one: pkg_add. OpenBSD package management does a really good job of handling dependencies and updates.

  • The system for building the add-on software is public: the ports tree. You can build any package from source code anytime you like, with one command.

  • Linux has taken the notion of 'processes as files' to a crazy degree; OpenBSD does not have a /proc or /system filesystem. It has traditional Unix/BSD tools for gathering the same information.

  • The sudo command has been replaced by the simpler doas command. If you can’t deal with that change, you can either install sudo from ports, or use a shell alias, which works for common cases.

  • Indeed, many of the "traditional system administration" commands are different, beyond the basics like ps, mount, netstat, and ifconfig (even the latter has disappeared from or been hidden by some Linuxes).

  • OpenBSD does not provide, and does not plan to provide, a GUI-based installer. The text-based installer is simple and works well.

OpenBSD Advantages

If I may be permitted to list the main advantages of OpenBSD over Linux, without starting a religious flame war, I’d say the following:

  • mature OS, derived from 4BSD and hence V7, going back to 1970

  • relatively stable; system controlled by a small group with good taste

  • really good security: packet filtering; full code base audited

  • development of new security features such as pf, pledge, unveil, KARL and more, which are finding their way into other OSes

  • team also provides the standard ssh package used on most *nix system and even on MS-Windows

  • team also provides LibreSSL (cleaned-up OpenSSL), OpenBGP, OpenSMTPD (vastly more comprehensible than sendmail), and more

  • runs on most of the popular hardware platforms: amd64, i386, riscv64, arm64, and more

  • system largely compatible with traditional BSD UNIX (including SunOS)

  • large "ports tree" of software in source and pkg_add form

  • Almost all significant freeware and some commercialware available.

OpenBSD Disadvantages

Nobody claims OpenBSD is perfect! You should be aware of the following:

  • Quite a few newer hardware devices that Linux supports are not yet supported on OpenBSD

  • There is some software that just doesn’t work on OpenBSD. The ports team could use your help if your favorite tool isn’t ported yet!

  • Community can appear 'cold' to newcomers who either show up with bizarre suggestions and/or don’t read documentation before posting and/or who have entitlement issues (not sure this is actually a disadvantage; it may be a survival mechanism).

What about other BSD systems?

Unlike Linux, for which there is one master source for the kernel, the three main BSD systems each maintain their own kernel and drivers (that’s why we don’t call them "distros") as well as the core userland utilities. So device support (and sometimes even device names) and kernel facilities will differ between, say, OpenBSD and FreeBSD. What we get back is being a complete OS development team, maintaining the kernel, drivers and the 'core' userland stuff, in exchange for the single-kernel consistency that Linux has. At the end of the day, "Ya pays yer money and ya makes yer choice."