Hintergrundwissen zu BSDGregLeheygrog@FreeBSD.org
&tm-attrib.freebsd;
&tm-attrib.amd;
&tm-attrib.apple;
&tm-attrib.intel;
&tm-attrib.linux;
&tm-attrib.opengroup;
&tm-attrib.sparc;
&tm-attrib.sun;
&tm-attrib.unix;
&tm-attrib.general;
$FreeBSD$$FreeBSD$In der Open Source-Welt steht das Wort
Linux oft synonym für
Betriebssystem, obwohl es nicht das einzige
frei verfügbare Betriebssystem ist. Laut Internet
Operating System Counter liefen im April 1999
weltweit 31,3 Prozent der vernetzten Rechner unter Linux,
14,6 Prozent liefen hingegen unter BSD &unix;.
Einige der weltweit größten Internetdienstleister, darunter
Yahoo!, verwenden
BSD. Der im Jahre 1999 weltgrößte FTP-Server ftp.cdrom.com (inzwischen
abgeschaltet) verwendete BSD, um täglich 1,4 Terabyte an
Daten zu übertragen. Hier geht es offensichtlich nicht um
einen Nischenmarkt, BSD ist vielmehr ein gut gehütetes
Geheimnis.Worin besteht nun dieses Geheimnis? Warum ist BSD nicht
bekannter? Dieser Artikel versucht, diese und andere Fragen
zu beantworten.Unterschiede zwischen BSD und Linux werden in diesem
Artikel kursiv dargestellt.Übersetzt von Fabio Tosques.Was ist BSD?BSD steht für Berkeley Software
Distribution, also für die Verbreitung des Quellcodes
der University of California, Berkeley, und war ursprünglich
als Erweiterung für ein von AT&T's Research
entwickeltes &unix; Betriebssystem gedacht. Verschiedene
Open Source-Projekte beruhen auf dieser, als 4.4BSD-Lite
bekannten Quellcodeausgabe. In dieser Ausgabe sind auch
Softwarepakete anderer Open Source-Projekte, insbesondere jene
des GNU-Projekts, enthalten. Das komplette Betriebssystem
umfasst:Den BSD-Kernel, der sich um Prozessscheduling,
Speichermanagement, die Unterstützung mehrerer
Prozessoren
(symmetric multi-processing,
SMP), Gerätetreiber und anderes mehr
kümmert.Im Gegensatz zum Linux-Kernel gibt es
verschiedene BSD-Kernel mit unterschiedlichen
Fähigkeiten.Die C-Bibliothek, die grundlegende API des
Systems.Die C-Bibliothek von BSD basiert auf
Berkeley-Code und nicht auf Code des
GNU-Projekts.Nützliche Programme wie Shells, Programme für
Dateioperationen, Compiler und Linker.Einige Programme stammen aus dem GNU-Projekt,
andere hingegen nicht.Das X Window-System für die grafische
Benutzeroberfläche.Bei den meisten BSD-Versionen wird das
X Window-System eingesetzt und zwar die Version des
X.org-Projekts.
&os; erlaubt es dem Benutzer, aus einer grossen Anzahl an
Desktop-Umgebungen zu wählen, wie beispielsweise
Gnome,
KDE oder
Xfce. Ebenso gibt es
leichtgewichtige Window-Manager wie
Openbox,
Fluxbox oder
Awesome.Viele weitere Programme und Werkzeuge.Ein echtes &unix;?BSD-Betriebssysteme sind keine Nachbauten, sondern
Weiterentwicklungen des &unix; Betriebssystems von
AT&T's Research, das als Vorfahre des modernen
&unix; System V gilt. Überrascht Sie diese Aussage? Wie kann
das sein, wenn AT&T seine Quellen nie als Open Source
veröffentlicht hat?Es stimmt, dass AT&T &unix; kein Open Source ist. Im
Sinne des Copyright ist BSD daher eindeutig
kein &unix;. Andererseits fügte
AT&T aber Quellcode von anderen Projekten in den eigenen
Code ein, insbesondere jenen der Computer Sciences Research
Group (CSRG) der University of California in Berkeley, CA. Im
Jahr 1976 begann die CSRG damit, Bänder ihrer Software zu
vertreiben, die sie Berkeley Software
Distribution oder BSD
nannten.Anfangs wurden vor allem Anwendungen veröffentlicht.
Das änderte sich schlagartig, als die CSRG von der Advanced
Research Projects Agency (DARPA) den Auftrag bekam, deren
Kommunikationsprotokolle (ARPANET) zu überarbeiten. Die
neuen Protokolle wurden als Internet
Protocols bezeichnet, und wurden später als
TCP/IP weltbekannt. Die erste
Implementierung dieser Protokolle erfolgte 1982 als Teil von
4.2BSD.Im Laufe der 80er Jahre entstanden einige neue Firmen, die
Workstations vertrieben. Viele zogen es vor, &unix; zu
lizenzieren und kein eigenes Betriebssystem zu entwickeln.
Sun Microsystems lizenzierte &unix;, implementierte eine
Version von 4.2BSD und bezeichnete das fertige Produkt als
&sunos;. Als es AT&T gestattet wurde, &unix; kommerziell zu
vertreiben, verkaufte AT&T eine abgespeckte Version namens
System III, der schnell System V folgte. Im
System V-Basissystem waren keine Netzwerkfunktionen
enthalten, daher wurden alle Implementierungen zusätzlich
mit Software des BSD-Projekts, darunter TCP/IP sowie diverse
nützliche Programme wie csh oder
vi. Diese Erweiterungen wurden unter der
Bezeichnung Berkeley Extensions
zusammengefasst.Da die BSD-Bänder AT&T-Quellcode enthielten, war
eine &unix; Lizenz erforderlich. Als im Jahre 1990 die
Förderung der CSRG auslief, beschlossen einige Mitglieder
der Gruppe, den quelloffenen BSD-Code ohne den
proprietären AT&T-Code zu veröffentlichen. Das
Ergebnis dieser Bemühungen war
Networking Tape 2, besser bekannt als
Net/2. Net/2 war aber kein komplettes
Betriebssystem, da gut 20 Prozent des Kernelcodes fehlten.
William F. Jolitz, ein Mitglied der CSRG, schrieb den fehlenden
Code und veröffentlichte diesen Anfang 1992 als
386BSD. Zur gleichen Zeit gründete
eine andere Gruppe ehemaliger CSRG-Mitglieder das kommerzielle
Unternehmen Berkeley Software
Design Inc. und veröffentlichte eine Betaversion des
Betriebssystems unter dem Namen BSD/386, die auf den gleichen
Quellen basierte. Später wurde dieses Betriebssystem in
BSD/OS umbenannt.386BSD war niemals wirklich stabil. Daher spalteten sich
1993 zwei neue Projekte ab: NetBSD sowie FreeBSD. Beide Projekte
entstanden, weil sich 386BSD zu langsam weiterentwickelte.
Die erste NetBSD-Version entstand Anfang 1993, die erste
FreeBSD-Version Ende 1993. Zu dieser Zeit hatte sich der
Quellcode aber derart verändert, dass es schwer war,
ihn wieder zu verschmelzen. Zudem hatten die beiden Projekte
unterschiedliche Ziele, die dieser Artikel noch beschreiben
wird. 1996 spaltete sich ein weiteres Projekt von NetBSD ab:
OpenBSD. 2003
spaltete sich schließlich
DragonFlyBSD
von FreeBSD ab.Warum ist BSD nicht bekannter?BSD ist aus vielen Gründen relativ unbekannt:BSD-Entwickler sind eher an der Verbesserung des Codes
interessiert als an der Vermarktung desselben.Die Popularität von Linux beruht auch auf externen
Faktoren wie der Presse, sowie auf Firmen, die gegründet
wurden, um Linux zu vertreiben. Bis heute fehlen den freien
BSD-Systemen solche Förderer.BSD-Entwickler sind vielleicht erfahrener als
Linux-Entwickler, und haben deshalb weniger Interesse daran,
die Benutzung des Systems einfacher zu gestalten.
Einsteiger sind bei Linux wahrscheinlich besser
aufgehoben.1992 verklagte AT&T BSDI, den Verkäufer
von BSD/386, mit der Behauptung, der Quellcode enthalte
urheberrechtlich geschützten AT&T Code. Zwar kam es
1994 zu einer außergerichtlichen Einigung, die Leute
waren aber erst einmal verunsichert. Noch im März 2000
behauptete ein im Web publizierter Artikel, das Verfahren
sei erst kürzlich eingestellt worden.Bezüglich der Bezeichnung schaffte der
Gerichtsprozess jedoch Klarheit: In den 80er Jahren war
BSD unter dem Namen BSD &unix; bekannt.
Durch die Entfernung der letzten Zeilen des AT&T-Codes
verlor BSD das Recht, sich &unix; zu nennen. Deshalb finden
Sie in der Literatur sowohl Verweise auf
4.3BSD &unix; als auch auf
4.4BSD.Nach wie vor existiert das Vorurteil, die einzelnen
BSD Projekte seien gespalten und zerstritten. Das
Wall Street Journal sprach gar von einer
Balkanisierung des BSD-Projekts. Wie der
Prozess, basiert auch dieses Vorurteil hauptsächlich
auf alten Geschichten.Ein Vergleich zwischen BSD und LinuxWo 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.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.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: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.Es existiert ein zentraler
Aufbewahrungsort (Repository), in dem die kompletten
Betriebssystemquellen zu finden sind, einschließlich
aller älteren Versionen.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.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.BSD-VersionenFreeBSD, 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: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.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).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.14Welche 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
&macos; 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
&macos; X handelt es sich um die neueste
Version des Betriebssystems der &mac;-Linie von &apple;.
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 &macos; X sind aber weiterhin
closed-source Software. Einige Darwin-Entwickler sind
auch FreeBSD-Committer, was auch für den umgekehrten
Fall gilt.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.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.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.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.