HANSE e. V. - Freie Software - BSD

Geschichte

Die Anfänge

Schon kurze Zeit nach den ersten Entwicklungsschritten von UNIX bei AT&T wurden Quellcode-Lizenzen an amerikanische Universitäten vergeben. (Die Erfinder von UNIX sind nach den diversen Verwandlungen von AT&T mittlerweile bei der Lucent-Tochter Bell Labs beim Computing Sciences Research Center beschäftigt). 1974 erhielt auch das Computer Science Department der University of California in Berkeley eine Lizenz, und UNIX Version 4 wurde auf einer PDP 11/45 installiert.

Innerhalb weniger Jahre wurden in Berkeley wesentliche Verbesserungen und Erweiterungen vorgenommen, die den anderen AT&T-Lizenznehmern zur Verfügung gestellt wurden. Es entwickelte sich schnell ein Kreis von anderen Entwicklern, die neuen Code testeten, weiterentwickeln oder gänzlich neue Software beisteuerten. 1977 stellte Bill Joy die erste »Berkeley Software Distribution« zusammen, die unter anderem einen Pascal-Compiler und einen obskuren Editor namens »ex« enthielt. Die zweite Distribution, schnell nur noch als »2BSD« bezeichnet, wurde Mitte 1978 mit vielen Verbesserungen und neuer Software, unter anderem »vi« und »termcap«, bereits an nahezu 75 Empfänger geschickt. Gleichzeitig entwickelte auch AT&T UNIX weiter, und übernahm dabei viele der Verbesserungen aus BSD.

Ein entscheidener Schritt in der Enwicklung von BSD UNIX war die Entscheidung der Defense Advanced Research Projects Agency (DARPA), die CSRG im Herbst 1979 mit der UNIX-Referenz-Implementation der Protokolle für das ARPANET, dem Vorläufer des Internet, zu beauftragen. Hierzu wurde die Computer Systems Research Group, kurz »CSRG«, gegründet, die die Weiterentwicklung von BSD übernahm, und neben TCP/IP viele weitere grundlegende Verbesserungen vornahm. 4.2BSD war das erste allgemein verfügbare UNIX, das TCP/IP enthielt, und wurde so erfolgreich, daß mehr als 1.000 Sitelizenzen verkauft wurden. Selbst die meisten kommerziellen Anbieter nahmen BSD statt AT&T UNIX System V als Basis, nicht zuletzt wegen der Verfügbarkeit von TCP/IP und des Berkeley Fast Filesystem (FFS).

Die erste öffentliche Version

Anwender, die BSD benutzen wollten, benötigten immer noch eine AT&T Quellcodelizenz, die zunehmend als zu teuer angesehen wurde, speziell wenn man eigentlich nur am Berkeley-Code interessiert war. So entschloß man sich 1989, den TCP/IP-Code, der völlig unabhängig von AT&T entstanden war, einzeln zu vertreiben, und gab die Networking Release 1, kurz »Net/1« heraus. Viele Hersteller anderer Systeme benutzten den Code, um selbst TCP/IP zu implementieren.

Die Popularität von Net/1 und die große Anzahl an Kommentaren und Bugfixes führte bei der CSRG schnell zu der Idee, ein vom AT&T-Quellcode möglichst unabhängiges System zu entwickeln. Mike Karels und Marshall Kirk McKusick standen diesem Vorschlag von Keith Bostic ob der Aufgabe, hunderte von Systemprogrammen und die gesamte C-Bibliothek neu zu implementieren, eher skeptisch gegenüber. Bostic ließ sich nicht abhalten, und lud die über das Internet verbundenen Entwicklergemeinschaft ein, mitzuarbeiten. Nach 18 Monaten waren ein Großteil der Utilities und der Libraries neu geschrieben. Nun konnten auch Karels und McKusick nicht mehr Nein sagen, und nahmen sich den Kernel vor. In einigen weiteren Monaten Arbeit gelang es, den AT&T-Code in allen bis auf sechs Quelldateien zu ersetzen. Obwohl ein neuer Name angemessen gewesen wäre, entschied man sich, dieses System als »Net/2« im Juni 1991 herauszugeben (ohne die sechs AT&T-Dateien), weil so der vorhandene Lizenztext weiterverwendet werden konnte, und man nicht auf die Rechtsabteilung der Universität warten mußte.

Es dauerte nicht lange, bis Bill Jolitz die sechs fehlenden Dateien neu entwickelt hatte. Er stellte sein Ergebnis als vollständiges, bootbares Betriebssystem für 386er-PCs als »386/BSD« im Internet zur Verfügung. Leider stand Jolitz nicht genügend Zeit zur Verfügung, um die Flut an Bugfixes und Verbesserungen zu integrieren, die innerhalb kürzester Zeit über ihn hereinbrachen. So entstand 1992 zunächst die NetBSD-Gruppe mit dem Ziel, 386/BSD weiterzuentwickeln und auf weitere Plattformen zu portieren, und kurze Zeit später FreeBSD mit dem Schwerpunkt auf der PC-Plattform. 1991 nahm sich die neu gegründete Berkeley Software Design, Inc. (BSDI) ebenfalls des 386/BSD-Codes an und brachte eine kommerzielle Version für $999 auf den Markt.

Der Rechtsstreit und 4.4BSD-Lite

Die AT&T-Tocher UNIX System Laboratories (USL) fand das Preisdumping von BSDI nicht sehr nett, und klagte wegen Verletzung des Urheberrechts. Der gesamte Rechtsstreit, der sich schnell auch auf die University of California ausdehnte, wurde nach zähen Verhandlungen erst im Januar 1994 mit einem Vergleich beendet. Der Vergleich machte Änderungen an einigen der 18.000 Quellcodedateien von Net/2 notwendig. Das Ergebnis wurde im Juni '94 als 4.4BSD-Lite unter der gleichen Lizenz wie schon Net/2 veröffentlicht. Für BSDI, FreeBSD und NetBSD bedeutete der Vergleich, daß sie ihren eigenen Code von der Net/2-Basis auf 4.4BSD-Lite umstellen mußten. Die Arbeit der CSRG ging noch bis zum Juni 1995 weiter. Mit Herausgabe von 4.4BSD-Lite2 wurde sie aufgelöst.

(Auszug aus: Twenty Years of Berkeley Unix von Marshall Kirk McKusick, aus dem O'Reilly-Buch Open Sources: Voices from the Open Source Revolution.)

FreeBSD, NetBSD, OpenBSD

FreeBSD wird von den meisten als das beste System für Intel-PCs angesehen. Zudem ist es ohne Zweifel das für Unix-Anfänger am leichtesten installierbare -- besser als bei macher Linux-Distribution. Seit Herbst 1998 gibt es auch eine Version für Digital/Compaq Alpha, die mit der Release 3.2 durchaus Produktionsqualität erreicht hat.

NetBSD legt auch weiterhin Wert auf die Unterstützung einer möglichst großen Hardware-Palette. Von aktuellen Architekturen werden die meisten unterstützt, in der Release 1.4 sogar die neuen blau-weißen Power Macs und der iMac. Weil bereits soviele "Ports" auf andere Architekturen zur Verfügung stehen, ist es meist vergleichsweise einfach, eine gut dokumentierte neue Plattform zu unterstützen. Zudem versprechen einige der neuesten Entwicklungen (»Unified VM« und »RAIDframe«) einen großen Sprung in der Performance.

OpenBSD ist der jüngste BSD-Sproß, der sich Mitte der Neunziger von NetBSD abspaltete, und sich seitdem vorallem auf Sicherheits- und Kryptographiefragen spezialisiert. Während FreeBSD und NetBSD zwei Quellcode-Basen für Kryptocode pflegen (je eine innerhalb und außerhalb der USA), hat OpenBSD sein Quellcodearchiv in Kanada, was den problemlosen Export des Codes sowohl in die USA als auch in die meisten anderen Teile der Welt ermöglicht. OpenBSD läuft, genau wie NetBSD, auf einer Vielzahl von Plattformen, darunter auch viele "museumsreife" Maschinen, inklusive der VAX 11/780.

Das Entwicklungsmodell

Allen drei freien BSDs ist das zentralisierte Entwicklungsmodell zu eigen. Im Gegensatz zu Linux, daß ja erstmal nur einen Kernel darstellt, entwickeln alle drei Gruppen ein vollständiges System, das alle notwendigen Programme und Entwicklungswerkzeuge umfaßt. Dabei wird natürlich auch auf den reichhalten Schatz an anderer freier Software zurückgegriffen.

Dabei ist »zentral« aber nicht im Sinne der »Kathedrale« zu verstehen. Das »Core-Team« des jeweiligen Projekts versteht sich mehr als Vermittler zwischen den aktiven Entwicklern denn als Management-Instanz. Zudem ist der Ansatz für Entscheidungen ziemlich pragmatisch: wer die Arbeit macht, entscheidet auch darüber, wie es gemacht wird. Zudem werden Design-Entscheidungen ausführlich auf den öffentlichen Mailinglisten diskutiert, und die gesamte Entwicklung des Quellcodes ist bei FreeBSD und OpenBSD anhand des CVS-Archives für jederman nachvollziehbar. [FreeBSD CVS Tree, OpenBSD CVS Tree]

Über CVSup kann zudem jeder einzelne Versionen oder das gesamte CVS-Archiv spiegeln, und ist so immer auf dem neuesten Source-Code-Stand. Da das Gesamtssystem in einer Hand liegt, kann es auch mit nur einem Kommando (»make world«) aus den Quellen neu übersetzt werden. So hat jeder Anwender die Möglichkeit, mit geringem Aufwand Bug-Fixes und Verbesserungen zu integrieren.

Die Lizenz

Die offene Lizenz aller drei freien BSD macht es OEM-Herstellern leicht, sich aus dem vorhandenen Code ihr eigenes Betriebssystem zusammenzustellen und zu verkaufen. Dies steht in der ursprünglichen BSD-Tradition, und bleibt auch erklärtes Ziel aller drei Projekte.

Wer verwendet BSD?

Die Anzahl an Anwendern ist mittlerweile fast unüberschaubar geworden. Viele Internet Service Provider setzen BSD wegen seiner Stabilität und der hohen Netzwerkperformance ein. Auch im universitären Umfeld erfreut sich BSD einer hohen Beliebtheit, weil es sich hervorragend für Betriebssystem- und Treiberentwicklung eignet, und sich auch viele historische Entwicklungen am Quellcode nachvollziehen lassen.

Der wohl größte FTP-Server der Welt, ftp.cdrom.com, mit 500 GB netto Plattenkapazität, hat erst im Mai 1999 einen bis dahin unerreichten Rekord von 1,3 Terabyte (1296 Gigabyte) Datentransfervolumen in 24 Stunden aufgestellt. Er erlaubt 5000 Benutzern den gleichzeitigen Zugriff, und ist mit einer Gigabit-Ethernetkarte direkt mit dem Hauptrouter eines zentralen Austauschpunktes an der amerikanischen Westküste verbunden. Dabei ist das System keinesfalls außergewöhlich: ein Pentium II Xeon 450 mit 2 GByte RAM und einem Adaptec 2940U2W und einem 3940UW ( Foto). Das Betriebssystem: FreeBSD.

Weitere »große Namen« sind unter anderem Yahoo! und Hotmail. Mehr findet sich auf der entsprechenden FreeBSD-Seite.

Die NetBSD-Galerie nennt viele Anwender.

OpenBSD verfügt über eine Großzahl an Anwendern und OEMs. Die Open_BSD-Seite führt einige von ihnen auf.

Software für BSD

Häufig hört man, es gebe keine Software für BSD. Ganz im Gegenteil: unter keinem anderen Betriebssystem ist das Übersetzen und installieren frei verfügbarer Software so einfach. Die FreeBSD Ports Collection umfaßte Ende Mai '99 über 2.300 portierte Programme aus allen Bereichen: Window Manager, Spiele, wissenschaftliche und graphische Software, und natürlich jede Menge Entwicklungswerkzeuge und Hilfsprogramme. Auch das NetBSD Package System als auch die OpenBSD Ports umfassen eine Vielzahl an Paketen, wenn auch nicht ganz so umfangreich wie für FreeBSD.

Das eigentliche Portssystem bedarf dabei einer Erklärung: ein »Port« besteht im Wesentlichen aus einem Makefile, in dem notiert ist, von wo das Quellcode-Paket (oder auch ein Binärpaket) über das Internet geholt werden kann und wie es konfiguriert und übersetzt wird, aus einer Reihe von Patches, um eventuelle Anpassungen an das Betriebssystem (z. B. Installationspfade) vorzunehmen, und einer Beschreibung, was für Programme, Konfigurationsdateien und Dokumentation wo im System installiert werden.

Als Anwender wechselt man dann nur noch in das betreffende Verzeichnis, und gibt »make install« ein. Das System holt automatisch die benötigten Archive, packt sie aus, führt die Patches aus, konifguriert und übersetzt das Paket, und installiert es. Das Ergebnis ist ein fertig installiertes Programm, daß man in der Regel nur noch zu starten braucht. Und weil sich die Programmierer des Ports meist recht viel Mühe geben, paßt das Ganze auch noch hervorragen zu den übrigen installierten Paketen. Wenn man möchte, kann man durch Eingabe von »make package« gleich noch ein Binär-Paket erzeugen -- genau das passiert auch mit allen Ports, bevor ein CD-ROM-Set hergestellt wird.

Die Ports sind aber nicht nur zum sofortigen Installieren sehr praktisch: gerade bei Server-Software, z. B. INN, möchte man selbst ggf. in die Konfiguration eingreifen. Kein Problem: die notwendigen Änderungen kann man vornehmen, und speziell dafür ein eigenes Patch-Set erstellen und in einem entsprechenden Verzeichnis ablegen. Wird nun der Port auf den neuesten Stand gebracht, weil z. B. eine neue Version des Pakets erschienen ist, oder für eine neue Betriebssystemversion Änderungen notwendig sind, stehen die eigenen Patches unabhängig davon zur Verfügung, und man kann einfach den neuen Port, mit den eigenen Änderungen, übersetzen.

Und zu guter Letzt verfügen alle drei BSDs über Binärkompatibilitätsmodule, die das Ausführen von Binaries für andere Betriebssysteme ermöglichen. OpenBSD und NetBSD haben unter anderem Module für System V für Intel und Sparc, sodaß man Solaris-Binaries laufen lassen kann, und FreeBSD glänzt besonders mit dem Linux-Modul, daß die Ausführung so ziemlich jeden Linux/i386 Binaries erlaubt, bis hin zu StarOffice und Quake (mit 3dfx-Unterstützung).

Literatur

Bei einem Gang durch eine technische Buchhandlung kann leicht der Eindruck entstehen, daß für andere freie Betriebssysteme, speziell Linux, sehr viel mehr Bücher und andere Literatur angeboten wird. Tatsächlich führen mittlerweile viele Bücher »Linux« im Titel, doch da alle BSDs in gewisser Hinsicht UNIX sind, sind zum einen viele Bücher, die sich »allgemein« mit UNIX beschäftigen, direkt auf BSD anwendbar. Zum anderen gibt es eine große Auswahl an Fachliteratur für jene, die sich nicht nur mit dem Betrieb und der Anwendung eines UNIX-Systems beschäftigen wollen, sondern auch »unter die Haube« sehen wollen. Besonders hervorzuheben sind hier McKusicks »The Design and Implementation of 4.4BSD« und Stevens »TCP/IP Illustrated Vol 2«, das die Implementation des BSD-Netzwerksystems auf über 1.000 Seiten kongenial erklärt.

Links

Der Daemon

Der ursprüngliche Daemon, das Wappentier von BSD, wurde von Marshall Kirk McKusick, entworfen. Die ersten Fassungen wurden von John Lassiter (Pixar) gezeichnet. Mittlerweile gibt es auch ein Plüsch-Daemon von Liebscher & Partner [der BSD-Daemon war übrigens zuerst da, die Linuxer haben uns das abgeschaut!]