What is BSD? What is OpenBSD?

Sponsored by
HostEurope Logo

What is BSD? What is OpenBSD?

Introduction

This essay tries to make you aware what BSD is, what MirBSD is, what the differences are, and where you can gather more information about BSD. It also provides you with basic information about other free unices, and tries to make you aware of the problems open source coders have with hardware vendors.

Table of Contents

  1. Terms
  2. History
  3. BSD today
  4. OpenBSD today
  5. Future OpenBSD
  6. Related links

Impaled Penguin, by Wim When OpenBSD dragons start being creative...


1. Terms

What is this "BSD" thingy you all are talking about?

Well, BSD is a free Unix® derivate developed at the University of California at Berkeley. In short, you can compare it to the GNU/Linux group of operating systems, although there are some differences.

First, BSD is not just a kernel, like the Linux project, but it also includes a whole bunch of userland and a so-called "ports tree" providing packages of third-party applications. The whole BSD source code is made freely available, although usually not the GNU GPL license is used because the BSD developers chose not to force users to open their modifications.
The BSD systems are usually developed by a "core group" as opposed to the "bazaar" approach of the free software world (although core GNU software is organized centrally, too - the so-called "cathedral" approach). This ensures you code quality - you know whose code you are using.
Also, the BSD code is organized in CVS repositories instead of source code archives. Using CVS, you can retrieve any prior version of the source as well as the most current code - of course anonymously and checksummed.

You can get BSD in various flavours, comparable to GNU/Linux distributions, although the typical flavours don't differ as much from each other as, say, Debian and SuSE GNU/Linux. The developers have the same aims, but they concentrate on different things.
There is a lot of questions about the very differences of, say, OpenBSD and FreeBSD; I do not list them here, but instead urge you to use Google Groups and find out by yourself. This is a good practical training, because there is a thing called "FAQ" (Frequently Answered Questions) you are obliged to look at yourself before asking BSD-related questions in e.g. newsgroups.

The main flavours of BSD are OpenBSD, FreeBSD, NetBSD and Darwin. They all started from BSD Net/2 (see History) and took code from 386BSD.
Darwin is the underlying operating system code of Apples Mac OSX. Apple backports changes to Mac OSX to the Darwin repository.
PicoBSD, emBSD and some other flavours are comparable to the mini-distros of the GNU/Linux world. They are very small, for example made to fit on one floppy, and concentrate on embedded use, firewall-from-floppy (like fli4l) and similar stuff.
The flavour we are mainly using is OpenBSD.

2. History

Since many people have written about the history of BSD systems, I do not want to loose much words here - the article is already growing faster than I originally planned it ;-) Please look at the homepage of Marshall Kirk McKusick, one of the head cows of BSD at Berkeley.

3. BSD today

These days, a Linux hype is catching the PC world, making people aware that there is more than one operating system for their computer. Many have used Microsoft® Windows® before and have a look at the Unix® world, mostly represented by the various free GNU/Linux distributions. They get aware there are zillions of (free and commercial) unices out and probably start testing them. Some hit BSD. Some use GNU/Linux, Solaris or whatever. Some use the free GNU tools on Windows. And some start using more than one operating system at the same time...
Most of the people who start using BSD don't do it because "everyone does" but rather because it fits their needs and they like it. This fits the aims of the BSD projects.
Theo de Raadt, head cow of OpenBSD, is doing the coding only for himself and mainly because he just likes it. He says he does not want world domination, he does not want everyone to use OpenBSD. Not only because more users cause more problems, more support efforts. The reason #1 for it is that users should use the right toy for the job (see "Unix philosophy"), not one that tries to do everything.

Unluckily, most hardware vendors do not provide Open Source developers with specifications for their devices. Instead, they write drivers by themselves, usually for Microsoft® Windows®, but these times GNU/Linux drivers also become popular.
Some of the vendors publish binary drivers that are only published for kernel version x.y.z and do not work with others, but some vendors ask the Linux head cow Linus Torvalds if he wants a real free driver for the hardware in his kernel and donate it to him.
The latter situation makes 99% of the users happy, since they have got driver support for their kernel. Unluckily, the Linux kernel is licensed under the GNU GPL which does not allow the BSD people to get the code and put it into their kernel, unless BSD will become GPL, too. The developers do not want it though, because they do not want to force the customers to GPL their code, too. On the other hand, BSD drivers can be integrated into the Linux kernel quite easily due to license compatibility.
In the meanwhile, Linux driver developers usually provide the BSD projects (at least one, like FreeBSD) with their drivers under a BSD-style license, so they can integrate it, too. Vendor drivers can usually be perused to generate hardware specs, but this is really impossible when the drivers are binary. Those are the bad guys.

The thing BSD needs most is not money, not attention - although these are necessary for the progress of the projects, too. We need open device specs in order to be able to code and debug our own drivers for hardware devices. There is a petition at www.camodi.org you may want to sign or read about.

Since BSD does not have a large user base, a large developer base, money and companies like IBM that back them, progress is slow. But efforts are made to ensure the code quality does not sink, and new features like multi-processor support are developed and will, once they are stable, be imported into the projects' main code. (Note that FreeBSD already has SMP.)

There are some, even large, companies that use BSD as routers, firewalls and even servers, without people noticing. That is a reason why no one can give current usage statistics for BSD, because no one is forced to say he is using BSD at all, or in which number.

4. OpenBSD today

OpenBSD, a free 4.4BSD Unix derivate, is being developed in Canada since 1994 with strong cryptography and security being integrated in the base system right from the beginning, because USA export laws did not apply.

OpenBSD currently runs on ten (10) different hardware platforms from the same code base, although some like Amiga will be removed in the next release due to missing user and developer base.

I need not say much about OpenBSD here because there are a lot of other web sites that provide you with more information than you can read in one year, and some of them are listed in the Links section at the end of this article. Please read the FAQs and try Google before you start asking any questions in the mailing lists, news groups or Internet Relay Chat.

5. Future OpenBSD

As mentioned above, there is no support for more than one central processing unit per box in current OpenBSD. There is premature code in a side trunk of the CVS repository though that initializes a second CPU (or even more) at least on the x86-32 (i386) platform and can use it for cryptographic operations, but no tasks can be scheduled there at the moment.
There is a project at www.spinlocks.org where people try to bring full SMP support to OpenBSD.

Some of the OpenBSD core developers - note there is no formal core group as in other BSD flavours - make their TODO lists public (well, more or less, since they are not updated very often). It is usable as an outlook where the boat of cows, monkeys and dragons is moving.

6. Related links

First of all, Google is the search tool #1 of the current world wide web. You will usually find some information there.

Usenet news groups

They offer a lot of BSD-Related information when viewed through an archive engine, and you can also get support there, asynchronously.

That's a small impression of what Usenet offers, you can also try your luck in other groups.
For Usenet the same law as usual applies: read the FAQ before asking.

The OpenBSD pages

These pages, from the main OpenBSD project and related user associations, are useful sources of information.

BSD-related pages

About asking; more FAQs

These pages refer common behaviour like "read the FAQ before asking", or how to reply to emails and news postings (no top-posting and full-quoting).

Unsorted hRefs

These are just links of maybe interest. They are sorted alphabetically and in no way precedenced.

Final words

This essay will probably get extended if some new information that looks useful will be contributed. The article lives from your feedback, so please give some!

MirOS Logo