LowEndBox - Cheap VPS, Hosting and Dedicated Server Deals

Let's Try BSD, Part 1 of 7: Introduction (FreeBSD, OpenBSD, NetBSD, DragonFlyBSD)

BSDThis is the first part in our seven-part series on the BSD series of operating systems.

Part 1: Let’s Try BSD, Part 1 of 7: Introduction (FreeBSD, OpenBSD, NetBSD, DragonFlyBSD)

In this series, we’re going to try out each of the four major BSD systems.

From Wikipedia:

The term “BSD” commonly refers to its open-source descendants, including FreeBSD, OpenBSD, NetBSD, and DragonFlyBSD.

I started working with Unix in a pre-Linux environment, and learned Unix on SunOS, HP-UX, AIX, and SGI systems.  Linux came along and my feeling was “cool, another Unix to play with” because learning the quirks of each OS just went with Unix.

Today, we are evolving towards a Linux monoculture.  Commercially, Solaris will be dead soon and IBM’s AIX is almost a closed ecosystem.  That leaves Linux…and BSD.

The BSD operating systems (FreeBSD, OpenBSD, NetBSD, and DragonFlyBSD, listed in order of popularity) are cousins to Linux.  When I was a kid we’d visit my cousins in Canada and everything was very familiar but some things were a little different and you had to learn them.  That’s the experience Linux people have when they play with BSD.

The Backstory

The University of California, Berkeley was embroiled in a lawsuit over Unix with AT&T, which wasn’t settled until 1994.  Shortly after that, the famous Net/2 final distribution was released.  From this comes FreeBSD and NetBSD, and from those, DragonFlyBSD and OpenBSD, respectively.

Note that Linux came along in 1991 and really picked up steam fast in 1992-1993, so that by the time Net/2 was free and open source software, Linux was already well established.  If that lawsuit had never happened or it had been settled earlier, perhaps we’d all be using BSD-based systems today.

Today, each BSD family member has an individual identity.  Make no mistake, this is high quality software and some of these BSD operating systems power very impressive solutions, sites, and services.

Part of this is due to licensing.  Linux and much of the Linux ecosystem (glibc, gcc, and many other etceteras) are licensed under the GPL.  BSD operating systems are licensed under the BSD license, which has no copyleft requirements.  Apple’s macOS, for example, is derived from BSD for this reason.

But even if licensing wasn’t a differentiator, there are compelling reasons to use these operating systems.   OpenBSD is a unique security-focused operating system.  FreeBSD is built to be highly performant on x86-64 systems.  NetBSD will run on your grandfather’s pocket watch.

One striking difference between BSD and Linux is that all userland is under one shared source.  You can type a single make command and rebuild everything in the OS, from kernel to utilities to installed packages.  This is very different from Linux, where the Linux kernel is joined with some GNU project userland tools, and then a diverse array of packages from many authors are installed to deploy the OS.  On BSD, the entire OS is worked on by one team.  This leads, in my experience, to greater consistency version over version.

It’s also good to stretch one’s Unix muscles and see how core ideas in the technology can be implemented in other ways.  Some major ways the BSDs are different:

  • init systems
  • filesystem layout
  • accounting
  • system utilities (ps, df, etc.)
  • firewalls
  • package/port installation (just as there is yum vs apt)

Finally, one big flex by the BSD crowd is documentation.  Both OpenBSD and FreeBSD documentation is gorgeous, and because it’s all maintained under one developer roof, in my experience it’s very up to date and accurate.

My BSD History

I’ve used OpenBSD a lot because it is simple and very well put together, and the documentation is amazing.  The others I’ve only dabbled with over the years.  NetBSD on a Mac 68K, and FreeBSD out of curiosity – neither in about 10 years.

So What Are We Doing Here?

In this series, we’re going to try each of the four BSDs out, with the goal of installing Nginx + MariaDB + WordPress.

I’m not going to configure a firewall on each because they all use OpenBSD’s pf, so for OpenBSD I’ll configure pf as an example for all.

Next Up: VM Config at Vultr

 

raindog308

2 Comments

  1. Adam:

    Fantastic. Thanks for the backstory.

    What I was most excited to read about was your thoughts on documentation. In today’s era (2024) of LLMs and, good documents 100x the power. Someone with a doc, llm, and no prior knowledge can just ask.. how do I….?

    Looking forward to your future articles.

    June 16, 2024 @ 5:46 pm | Reply
  2. Actually NetBSD uses npf which is different than OpenBSD’s pf.

    June 16, 2024 @ 11:07 pm | Reply

Leave a Reply

Some notes on commenting on LowEndBox:

  • Do not use LowEndBox for support issues. Go to your hosting provider and issue a ticket there. Coming here saying "my VPS is down, what do I do?!" will only have your comments removed.
  • Akismet is used for spam detection. Some comments may be held temporarily for manual approval.
  • Use <pre>...</pre> to quote the output from your terminal/console, or consider using a pastebin service.

Your email address will not be published. Required fields are marked *