4. Ein Vergleich zwischen BSD und Linux

Wo sind nun die Unterschiede zwischen, sagen wir Debian GNU/Linux und FreeBSD? Für die meisten Benutzer sind die Unterschiede nicht groß: Beide sind UNIX® ähnliche Betriebssysteme. Beide sind nichtkommerzielle Projekte (was für eine Vielzahl anderer Linux-Distributionen nicht gilt). Der folgende Abschnitt betrachtet BSD näher und vergleicht es mit Linux. Die meisten Erläuterungen beziehen sich auf FreeBSD, da es sich dabei um das am häufigsten installierte BSD-System handelt. Die Unterschiede zu NetBSD und OpenBSD sind aber gering.

4.1. Wem gehört BSD?

BSD gehört weder einer einzelnen Person, noch gehört es einem Unternehmen. Entwickelt und zur Verfügung gestellt wird es von einer technisch interessierten und engagierten Gemeinschaft, die über die ganze Welt verteilt ist. Einige BSD-Komponenten sind eigenständige Open Source-Projekte mit eigenen Rechten, die getrennt verwaltet und gewartet werden.

4.2. Wie erfolgt die Weiterentwicklung von BSD?

BSD-Kernel werden nach dem Open Source-Modell weiterentwickelt. Jedes Projekt unterhält einen öffentlich zugänglichen Quellcode-Baum, der mit dem Concurrent Versions System (CVS) verwaltet wird, und alle Quellen des Projekts, die Dokumentation und andere notwendige Dateien enthält. CVS erlaubt es Anwendern, jede gewünschte Version des Systems “auszuchecken” (mit anderen Worten, eine Kopie des System zu erhalten).

Eine Vielzahl von Entwicklern trägt weltweit zur Verbesserung von BSD bei. Dabei werden drei Typen unterschieden:

Diese Konstellation unterscheidet sich von Linux in einigen Punkten:

  1. Es sind stets mehrere Personen für das System verantwortlich. In der Praxis ist dieser Unterschied aber nicht gravierend, da zum einen der Principal Architect verlangen kann, dass Änderungen zurückgenommen werden, und zum anderen auch beim Linux-Projekt mehrere Personen das Recht haben, Änderungen vorzunehmen.

  2. Es existiert ein zentraler Aufbewahrungsort (Repository), in dem die kompletten Betriebssystemquellen zu finden sind, einschließlich aller älteren Versionen.

  3. BSD-Projekte pflegen das komplette “Betriebssystem”, nicht nur den Kernel. Dieser Unterschied ist aber marginal, da weder BSD noch Linux ohne Anwendungsprogramme sinnvoll einsetzbar sind. Die unter BSD eingesetzten Applikationen sind oft identisch mit denen von Linux.

  4. Da beim BSD-Projekt nur ein CVS-Quellbaum gepflegt werden muss, ist die Entwicklung übersichtlicher, und es ist möglich, auf jede beliebige Version einer Datei zuzugreifen. CVS ermöglicht auch inkrementelle Updates: Das FreeBSD-Repository wird beispielsweise etwa 100 Mal pro Tag verändert. Viele dieser Änderungen betreffen aber nur einen relativen kleinen Bereich von FreeBSD.

4.3. BSD-Versionen

Jedes BSD-Projekt stellt das System in drei verschiedenen “Ausgaben” (Releases) zur Verfügung. Analog zu Linux erhalten diese Ausgaben eine Nummer, etwa 1.4.1 oder 3.5. Die Versionsnummer erhält zusätzlich ein Suffix, das den Verwendungszweck bezeichnet:

  1. Die Entwicklerversion hat das Suffix CURRENT. FreeBSD weist diesem Suffix eine Nummer zu, z.B. FreeBSD 5.0-CURRENT. NetBSD verwendet ein etwas anderes Bezeichnungsschema und hängt als Suffix nur einen Buchstaben an die Versionsnummer an, der Änderungen an den internen Schnittstellen anzeigt, z.B. NetBSD 1.4.3G. OpenBSD weist der Entwicklerversion keine Nummer zu, sie heißt also einfach OpenBSD-current. Neue Entwicklungen werden zuerst in diesen Zweig eingefügt.

  2. In regelmäßigen Intervallen, durchschnittlich zwei- bis viermal im Jahr, wird eine so genannte RELEASE-Version des Systems veröffentlicht, die dann beispielsweise als OpenBSD 2.6-RELEASE oder NetBSD 1.4-RELEASE bezeichnet wird. Diese sind sowohl auf CD-ROM als auch als freier Download von den FTP-Servern der Projekte erhältlich. Diese RELEASE-Versionen sind für Endbenutzer gedacht. NetBSD verwendet sogar eine dritte Ziffer, um gepatchte Releases zu kennzeichnen (etwa NetBSD 1.4.2).

  3. Sobald Fehler in einer RELEASE-Version gefunden werden, werden diese beseitigt und in den CVS-Baum eingefügt. Beim FreeBSD-Projekt wird die daraus resultierende Version als STABLE bezeichnet, während sie bei NetBSD und OpenBSD weiterhin RELEASE heißt. Kleinere Änderungen, die sich nach einer Testphase im CURRENT-Zweig als stabil erweisen, können ebenfalls in die STABLE-Version einfließen.

Bei Linux werden hingegen zwei getrennte Code-Bäume gepflegt: Eine stabile Version und eine Entwicklerversion. Stabile Versionen haben an der zweiten Stelle eine gerade Ziffer (2.0, 2.2 oder 2.4). Entwicklerversionen haben an der zweiten Stelle eine ungerade Ziffer (2.1, 2.3 oder 2.5). In jedem Fall folgt der zweiten Ziffer noch eine dritte, welche die Version genauer bezeichnet. Zusätzlich fügt jeder Verkäufer einer Linux-Distribution selbst Programme und Werkzeuge hinzu. Daher ist auch der Name der Distribution nicht unwichtig, da dieser ebenfalls eine Versionsnummer enthält. So kann die vollständige Beschreibung beispielsweise so aussehen: “TurboLinux 6.0 mit Kernel 2.2.14”

4.4. Welche BSD-Versionen gibt es überhaupt?

Im Gegensatz zu den zahlreichen Linux-Distributionen gibt es nur drei frei verfügbare BSDs. Jedes BSD-Projekt unterhält seinen eigenen Quellcode-Baum und seinen eigenen Kernel. In der Praxis scheinen die Unterschiede im Code der Anwenderprogramme aber geringer zu sein als bei Linux.

Es ist nicht einfach, die Ziele der einzelnen BSD-Projekte genau zu trennen, da die Unterschiede eher subtiler Natur sind:

Es gibt noch zwei weitere BSD UNIX Systeme, die aber nicht Open Source sind: BSD/OS sowie Apples Mac OS® X:

4.5. Worin unterscheidet sich die BSD-Lizenz von der GNU Public License?

Linux steht unter der GNU General Public License (GPL), die entworfen wurde, um closed-source Software zu verhindern. Jede Software, die von einer Software abgeleitet wurde, die unter der GPL steht, muss wieder unter der GPL veröffentlicht werden. Auf Verlangen ist auch der Quellcode zur Verfügung zu stellen. Die BSD-Lizenz ist dagegen weniger restriktiv: Der Quellcode muss nicht zur Verfügung gestellt werden, es können also auch Binärdateien verbreitet werden. Dieser Umstand ist besonders für Anwendungen im Embedded-Bereich interessant.

4.6. Was sollte ich sonst noch wissen?

Da für BSD weniger Anwendungsprogramme verfügbar waren als für Linux, wurde ein Softwarepaket entwickelt, das die Ausführung von Linuxprogrammen unter BSD ermöglicht. Dieses Paket enthält zwei Dinge: Kernelmodifikationen zur korrekten Ausführung von Linux-Systemaufrufen sowie Linuxkompatibilitätsdateien, beispielsweise die C-Bibliothek von Linux. Unterschiede in der Ausführungsgeschwindigkeit von Linuxanwendungen auf einem Linuxrechner und einem vergleichbaren mit BSD ausgestatteten Rechner sind in der Praxis so gut wie nicht feststellbar.

Die “Alles-aus-einer-Hand”-Natur von BSD hat den Vorteil, dass Upgrades im Vergleich zu Linux häufig leichter durchzuführen sind. BSD aktualisiert Bibliotheken, indem es Kompatibilitätsmodule für ältere Versionen der Bibliotheken bereitstellt. Daher ist es möglich, auch mehrere Jahre alte Binärdateien ohne Probleme auszuführen.

4.7. Was soll ich nun benutzen, BSD oder Linux?

Was heißt das nun alles für die Praxis? Wer sollte BSD, wer Linux benutzen?

Diese Frage ist nicht einfach zu beantworten. Trotzdem folgen nun einige Empfehlungen:

4.8. Wo gibt es Support, Serviceleistungen und Schulungen für BSD?

BSDi hat BSD/OS von Anfang an unterstützt und hat angekündigt, Supportverträge für FreeBSD anzubieten.

Darüber hinaus finden sich auf den folgenden Seiten der einzelnen Projekte Firmen, die Supportleistungen anbieten: FreeBSD, NetBSD, und OpenBSD.

Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an <de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an <de-bsd-translators@de.FreeBSD.org>.