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, OpenBSD und DragonFlyBSD 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:

  • Ein Contributor schreibt Code oder Dokumentationen. Ihm ist es nicht gestattet, seinen Beitrag direkt in den Quellbaum einfließen zu lassen. Bevor dieser Code in das System eingebracht wird, muss er von einem registrierten Entwickler, dem Committer geprüft werden.

  • Committer können Code in den Quellbaum einbringen, das heißt sie besitzen Schreibrechte für den Quellcode-Baum. Um ein Committer zu werden, muss man zuerst seine Fähigkeiten im gewünschten Gebiet unter Beweis stellen.

    Es liegt im Ermessen des Committers, ob er die Allgemeinheit befragt, bevor er Änderungen am Quellbaum vornimmt. In der Regel wird ein erfahrener Committer korrekte Änderungen einfügen, ohne sich mit anderen abzustimmen. Ein Committer des Documentation Projects könnte etwa typografische oder grammatikalische Korrekturen ohne lange Diskussion durchführen. Auf der anderen Seite sollten Änderungen mit weitreichenden Konsequenzen vor dem Commit zur Begutachtung bereitgestellt werden. Im Extremfall kann ein Mitglied des Core Teams, das als Principal Architect fungiert, sogar die Entfernung der Änderung aus dem Quellcodebaum veranlassen. Dieser Vorgang wird als backing out bezeichnet. Alle Committer werden durch eine E-Mail über die erfolgte Änderung informiert. Es ist daher nicht möglich, heimlich eine Änderung durchzuführen.

  • Das Core Team. Sowohl FreeBSD als auch NetBSD besitzen ein Core Team zur Betreuung des jeweiligen Projekts. Da die Core Teams erst im Projektverlauf entstanden, ist ihre Rolle nicht genau definiert. Um ein Mitglied des Core Teams zu sein, muss man kein Entwickler sein, obwohl dies die Regel ist. Die Regeln der Core Teams unterscheiden sich von Projekt zu Projekt, generell gilt aber, das dessen Mitglieder mehr Einfluss auf die Richtung des Projekts haben als Nichtmitglieder.

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

FreeBSD, NetBSD und OpenBSD stellen drei verschiedene 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 vier große 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:

  • FreeBSD will eine hohe Leistung erreichen, für den Benutzer einfach in der Bedienung sein, und wird von Internetanbietern bevorzugt eingesetzt. Es läuft auf einer Vielzahl von Plattformen, darunter i386™-Systeme (PCs), Systeme mit einem AMD 64-Bit-Prozessor, UltraSPARC®-Systeme, Compaq Alpha-Systeme, sowie Systeme, die der Spezifikation NEC PC-98 entsprechen. Das FreeBSD-Projekt hat die mit Abstand größte Anwenderzahl unter den frei verfügbaren BSD-Systemen.

  • Bei NetBSD ist Portabilität das oberste Ziel: Natürlich läuft NetBSD darauf. NetBSD kann auf vielen verschiedenen Systemen, von Palmtops bis hin zu großen Servern, installiert werden, und wurde sogar schon im Raumfahrtprogramm der NASA eingesetzt. Besonders für alte Nicht-Intel®-Plattformen ist NetBSD die erste Wahl.

  • Bei OpenBSD stehen die Sicherheit und sauberer Code im Vordergrund. OpenBSD verbindet bei der Weiterentwicklung des Systems Open Source-Konzepte mit rigorosen code reviews. Dadurch entsteht ein sehr sicheres System, das OpenBSD für sicherheitsbewusste Unternehmen, Banken, Börsen und die US-Regierung zu ersten Wahl macht. Auch OpenBSD läuft, ähnlich wie NetBSD, auf vielen verschiedenen Plattformen.

  • Das Ziel von DragonFlyBSD ist eine hohe Leistung und Skalierbarkeit auf allen Systemen, vom Einzelplatzrechner bis hin zu riesigen Cluster-Systemen. DragonFlyBSD verfolgt dabei langfristig verschiedene technische Ziele, der Schwerpunkt der Entwicklung liegt aber auf der Bereitstellung einer SMP-fähigen Infrastruktur, die leicht zu verstehen, zu warten und weiterzuentwickeln ist.

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

  • BSD/OS war das älteste, von 4.4BSD abstammende Betriebssystem. Es war zwar nicht Open Source, Quellcode-Lizenzen konnten aber relativ günstig erworben werden. Es wies viele Gemeinsamkeiten mit FreeBSD auf. Zwei Jahre, nachdem BSDi von Wind River Systems übernommen worden war, wurde die Entwicklung von BSD/OS als eigenständiges Produkt eingestellt. Zwar wird BSD/OS von Wind River noch unterstützt, eine aktive Weiterentwicklung erfolgt allerdings nur noch für das Embedded-Betriebssystem VxWorks.

  • Bei Mac OS® X handelt es sich um die neueste Version des Betriebssystems der Macintosh®-Linie von Apple Computer Inc.'s. Darwin, der BSD-Kern des Betriebssystems ist als voll funktionsfähiges Open Source-Betriebssystem für x86- sowie PPC-Computer erhältlich. Die grafische Oberfläche Aqua/Quartz und andere proprietäre Anwendungen von Mac OS® X sind aber weiterhin closed-source Software. Einige Darwin-Entwickler sind auch FreeBSD-Committer, was auch für den umgekehrten Fall gilt.

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:

  • Wenn es nicht kaputt ist, fass' es nicht an!: Wenn Sie schon ein frei verfügbares Betriebssystem verwenden und damit glücklich sind, gibt es eigentlich keinen vernünftigen Grund für einen Wechsel.

  • BSD-Systeme, inbesondere FreeBSD, können eine weitaus bessere Leistung als Linux-Systeme aufweisen. Diese Aussage ist aber nicht allgemein gültig. In den meisten Fällen sind die Leistungsunterschiede aber gering oder gar nicht festzustellen. In bestimmten Fällen kann auch Linux eine bessere Leistung aufweisen.

  • In der Regel haben BSD-Systeme den Ruf, zuverlässiger zu sein. Diese Aussage beruht auf der reiferen Codebasis.

  • Die BSD-Projekte haben den Ruf, über qualitativ und quantitativ bessere Dokumentation zu verfügen. Die verschiedenen Dokumentationsprojekte haben das Ziel, eine ständig aktualisierte und in zahlreiche Sprachen übersetzte Dokumentation zu erstellen, die alle Aspekte des System umfasst.

  • Die BSD-Lizenz kann attraktiver sein als die GPL.

  • BSD-Systeme können die meisten Linuxprogramme ausführen, während Linux keine BSD-Programme ausführen kann. Viele BSD-Systeme können sogar Programme von anderen UNIX® ähnlichen Systemen ausführen. Daraus könnte man ableiten, dass die Migration auf ein BSD-System einfacher ist, als es bei Linux der Fall wäre.

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

BSDi / FreeBSD Mall, Inc. bieten seit fast 10 Jahren Support-Verträge für FreeBSD an.

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>.