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
When OpenBSD dragons start being creative...
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
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
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.
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.
- comp.unix.bsd.openbsd.misc (English main group)
- comp.unix.bsd.misc (English BSD generic group)
- comp.unix.bsd.openbsd.announce (nearly no traffic at all)
- alt.os.openbsd (few traffic, usually English)
- comp.unix.admin (generic unix-related, do not listen to a person called "Rev. Don Kool" - he likes being a fool)
- de.comp.os.unix.bsd (German BSD users)
- de.comp.os.unix.misc (German unix users)
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.
- www.OpenBSD.org main page
- The FAQ
- deadly.org the OpenBSD magazine
- OpenBSDcow Network, former location of this article
- MirOS Project (alternative start page) home page for users, with anoncvs and cvsweb, and a German essay about why SourceMill chose MirBSD.
- Mailing list ARChives
- FreeBSD home page
- NetBSD home page
- MicroBSD is now defunct, although some of their security related diffs to the OpenBSD kernel continue to live in MirBSD
- ekkoBSD, another fork of OpenBSD much like MirBSD, but without the ongoing synchronization, rather developed independently. Progresses slowly.
- DragonflyBSD, fork of the stable FreeBSD 4.x series. Trying to implement new features of the 5.x branch, but with different code.
- The FreeBSD addicts, also featuring a BSD-related link list on their own. They're apparently trying to give the FreeBSD community a central search place for FAQs, HOWTOs, Fora etc. and to help people to learn about FreeBSD.
- OpenBSD mailing lists
- make a bootable OpenBSD CD yourself
- Nick Hollands FAQ (commonly encountered problems)
- The OpenIPF howto (firewall/packet filter)
- The Devils Band - those were the people that made the cool OpenBSD songs
- An Meta FAQ about OpenBSD
- Configuration file examples from Han Boetes (also a BSD Cow)
- BSD.org - Free Speech Online, taken from this freesite (second link needs freenet-project installed)
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).
- How to quote, unluckily I was unable to retrieve the English version, so I just stick with this German version link until later
- The #unix FAQ
- How to ask smart questions? by Eric S. Raymond
- The BSD section at /. where you may be able to find out stories about BSD
- The home page of Marshall Kirk McKusick, one of the head cows of BSD at Berkeley
- Unix Scout, German-language BSD-related web forum
- BSD a Linux (from naddy@)
- OSI, the Open Source Initiative
- FSF, the Free Software Foundation (and the European counterpart) which basically wants to make all software free, and made OpenBSD possible by developing a free compiler suite
- Debian GNU/Linux as a representer for the GNU/Linux world. A very BSD-similar-looking distribution, both the usability and the social background (free software, etc.)
- While I'm at it, links to the home pages of Richard M. Stallman (GNU/FSF), Eric S. Raymond (fetchmail), Linus Torvalds (Linux), Eric Allman (sendmail), Theo de Raadt (OpenBSD), suggest more
These are just links of maybe interest. They are sorted alphabetically and in no way precedenced.
- Stone of Rosetta for Unix® systems
- The UNIX®-Haters Handbook
- About using rdate(8) to sync your workstation's time, by mirabilos
- The Unix Philosophy (German) by email@example.com
- Configuring an OpenBSD system with the root filesystem on mfs (ram disc, fast)
- About IPsec (PDF) between an OpenBSD and a Windows® 2000/XP box
- Using TrueType fonts under X11 (not complete, but a start)
- OpenBSD reference card (seen at deadly.org)
- Secure Programming Howto (seen at www.symlink.ch)
- IBM DeveloperWorks, an exchange platform for developers, including tutorials, articles and fora.
- www.infobsd.org currently empty
- A quick guide to set up SMTP AUTH with Sendmail (STARTTLS)
- Articles by Uwe Ohse, a German OpenBSD sysadmin (the articles are partially on English and some on German)
- BSDM, OpenBSD made unbreakable
- Stop dick-size wars now (please coexist in peace)
- Sysadmin day (fun for admins)
- teso security group (offers papers and exploits)
- A paper by McKusick about Softupdates and background fsck in BSD
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!