Berkeley Software Distribution
Die Berkeley Software Distribution (BSD) ist eine Version des Betriebssystems Unix, die an der University of California, Berkeley ab 1977 entstanden ist.
BSD basiert auf AT&Ts Unix Sixth Edition (V6) und Seventh Edition (V7), die ab 1975 (V6) bzw. 1979 (V7) den Universitäten zum Preis der Datenträger zur Verfügung gestellt wurden, verbunden mit der Erlaubnis den Quellcode einzusehen und zu modifizieren. Inzwischen ist aber der komplette Quellcode umgeschrieben und es gibt keine einzige Zeile AT&T-Quellcode in aktuellen BSD-Distributionen.
Die ursprüngliche durch die Universität erstellte BSD-Distribution ist kaum noch gebräuchlich. Der Begriff BSD bezeichnet heute viel mehr eine ganze Klasse von Unix Derivaten, die ihre Wurzel in der eigentlichen BSD haben, wie z. B. die frühen Versionen von SunOS und Ultrix. BSD ist neben System V eine der beiden großen Hauptlinien der Unix Entwicklung.
In den 1990er Jahren sind aus BSD die freien Betriebssysteme FreeBSD (1993), NetBSD(1993), und OpenBSD ((1995) entstanden. Ein auf BSD basierendes Betriebssystem wird heute als BSD/OS von Wind River Systems, Alameda, Kalifornien kommerziell vertrieben.
Die BSD-Lizenz
Der Quellcode der Distribution wurde von Berkeley unter der BSD-Lizenz freigegeben, eine freie Lizenz die heute in modifizierter Form auch für andere Programmpakete verwendet wird. Im Gegensatz zur GNU GPL erlaubt es die BSD-Lizenz, unter Beachtung einiger Regeln, den Quellcode zur Entwicklung eigener, proprietärer Programme zu verwenden. Diese Programme können dann unter eine beliebige andere (restriktivere) Lizenz gestellt werden, wie es Apple bei der Entwicklung von MacOS X und dessen Basis Darwin getan hat.
Neuerungen von Berkeley
BSD hatte großen Einfluss auf die Unix-Entwicklung. Es wurden Änderungen am Kernel vorgenommen, das System wurde auch sonst wesentlich erweitert. Viele dieser Neuerungen wurden später entweder direkt oder in ähnlicher Form auch in die konkurrierende System V-Linie übernommen.
Die wichtigsten Neuerungen sind:
- Das BSD-Fast Filesystem, ein schnelleres Dateisystem mit langen Pfadnamen (die 7th Edition erlaubte nur 14 Zeichen)
- Die TCP/IP Netzwerkimplementierung
- Die Socket-Schnittstelle, eine allgemeine Netzwerk-Programmierschnittstelle, die auf anderen Systemen übernommen wurde.
- Die virtuelle Speicherverwaltung wurde unter Unix in Berkeley realisiert.
- Neue Kommandos, die C-Shell csh, der Editor vi , sowie unter anderem rsh, rexec und rcp.
- Neue Dämonen wie z. B. timed und sendmail.
Entwicklungsgeschichte
Die Anfänge
Die Universität Berkeley erhielt 1974 von AT&T die 4th Edition des noch neuen Betriebssystems Unix. Dieses war gerade in C umgeschrieben worden, ein C-Entwicklungssystem war Teil des Systems. Sofort wurde mit der Erweiterung des Systems, das auf einer PDP-11 Maschine der Firma Digital Equipment Corporation (Digital) lief, begonnen. Die Arbeiten beschleunigten sich, als 1976 Ken Thompson, ein maßgeblicher Unix-Entwickler, eine Gastprofessur in Berkeley antrat. Inzwischen waren auch die 5th- und 6th Edition erschienen.
Die Erweiterungen und Änderungen stellte der damalige Student Bill Joy 1977 erstmals zusammen und stellte es externen Interessenten auf einem Magnetband zur Verfügung - die erste Berkeley Software Distribution. 1978 waren bereits so viele neue Teile hinzugekommen, dass die zweite Berkeley Software Distribution (2BSD) zusammengestellt wurde. Diese enthielt bereits die erste Version des Editors vi.
VAX Computer und DARPA Einfluss
Inzwischen hatte Digital eine neue Prozessorlinie namens VAX herausgebracht, deren erster Vertreter die VAX-11/780 war. VAX hieß eigentlich Virtual Address Extension und war zunächst als Erweiterung für die PDP-11 Linie gedacht. Die VAX wurde aber eine eigene Prozessorlinie und Digital plante, den Verkauf von PDP-Maschinen zugunsten der VAX-Linie einzustellen. AT&T hatte zwar bereits eine Portierung von Unix V7 auf den VAX-Prozessor fertiggestellt (Version 32/V), diese unterstützte jedoch keine virtuelle Speicherverwaltung. Berkeley portierte 2BSD auf die VAX-11/780 und implementierte eine virtuelle Speicherverwaltung. Für VAX-Maschinen erschienen 1979 3BSD und dann 1980 4BSD. Die Entwicklung von BSD-Versionen für PDP-11s wurde unabhängig davon mit 2BSD weitergeführt, da der Adressraum der PDPs von nur 64 KByte zu klein für die neuen Versionen war.
1980 wurde ein Vertrag mit der Forschungsabteilung des amerikanischen Verteidigungsministeriums DARPA geschlossen. 3BSD und 4BSD sollten die Grundlage für die DARPA Entwicklungen, insbesondere im Bereich der Vernetzung werden. Dies führte zur Integration der Internet-Netzprotokolle (TCP/IP) in die BSDs.
Gleichzeitig beschloss AT&T ihre 7th Edition (V7) zum System-III und dann zum System V weiterzuentwickeln und kommerziell zu vermarkten. Die neue Berkeley Version hieß daher nicht 5BSD, sondern 4.1BSD, um Verwechslungen auszuschließen. Mit 4.1BSD und den internen Versionen 4.1a, 4.1b und 4.1c wurde die Performance des Systems verbessert, erste TCP/IP Protokolle eingefügt und Netzwerkwerkzeuge (rsh, rcp) entwickelt. AT&T übernahm diese Entwicklungen später in ihr System V Produkt. Da die Berkeley Distribution immer noch frühen Quelltext von AT&T enthielt, verlangte AT&T den Erwerb einer (teuren) Lizenz von jedem, der Code aus Berkeley verwendete.
Die kommerzielle Ära
Aufstieg
Computerhersteller übernahmen die Berkeley Software Distribution und passten sie auf ihre Maschinen an. 1982 wechselte Bill Joy zur neu gegründeten Firma Sun Microsystems, die im selben Jahr die erste Version ihres auf BSD basierenden Betriebssystems SunOS herausbrachte. SunOS wurde im Lauf seiner Entwicklungsgeschichte um viele Funktion des ohnehin linzensierten System V erweitert, blieb aber lange Zeit seinen BSD-Wurzeln treu.
1983 brachte Digital für PDP-11 Ultrix-11 und dann für VAX Computer Ultrix-32 heraus. Ultrix basierte ebenfalls auf BSD. Es wurde später auch auf MIPS-Prozessoren portiert, die Digital in seiner Workstation-Linie verwendete.
Auch andere Unix-Hersteller verwendeten Teile der BSD. System V übernahm nach und nach Code von BSD, es bildete die Grundlage dieser Unix-Systeme.
und Fall
Digital brachte um 1990 ihren Alpha Mikroprozessor heraus, der die VAX- und MIPS-Produkte ablösen sollte. Gleichzeitig wurde die Weiterentwicklung von Ultrix eingestellt, da auf Alpha das neue OSF/1 - ein Unix-Klon - angeboten wurde.
Sun bildete 1988 mit Unix International eine Allianz mit AT&T und portierte ihr SunOS ebenfalls auf System V mit BSD Erweiterungen. 1992 erschien SunOS5 (auch Solaris2), das kein direkter Abkömmling der BSD-Distribution mehr war.
Damit war der letzte große Unix-Hersteller auf System V umgeschwenkt, alle Unix-Systeme verwendeten jedoch immer noch große Teile der BSD, darunter die von BSD eingeführten Kommandos und die TCP/IP-Netzwerkimplementierung.
Weiterentwicklungen bei Berkeley
Berkeley setzte seine Tradition fort und entwickelte die Distribution weiter. 1983 erschien 4.2BSD und 1986 4.3BSD. Es wurde klar, dass die VAX-Prozessoren durch andere Systeme abgelöst werden mussten, mit 4.3BSD-Tahoe (1988) wurde der Kernel in maschinenabhängige und portable Teile getrennt, 1990 erschien mit 4.3BSD-Reno eine Version, die unter anderem den Mach Mikrokernel unterstützte.
4.3BSD wurde sogar auf die PDP-11 Maschinen (zurück-)portiert und 1992 als 2.11BSD veröffentlicht. Der 250kByte große Kernel wurde dabei mit Overlay-Techniken auf den nur 64KByte großen Adressraum der PDP abgebildet.
BSD und AT&Ts Unix-Quellcode
Ende der 1980er hatte Berkeley soviele Erweiterungen eingebaut, dass nahezu der gesamte Unix-Quellcode von AT&T durch eigene Versionen ersetzt war. Hersteller von auf BSD basierenden Unix-Versionen mussten trotzdem wegen der übrigen Teile eine (teure) System V Lizenz von AT&T erwerben. Da unter anderem die gesamte Netzwerkimplementierung von Berkeley stammte, hatten auch andere Hersteller Interesse an den Berkeley Entwicklungen, jedoch ohne eine AT&T-Lizenz erwerben zu müssen. 1989 gab die Universität deshalb die Networking Release/1 heraus, die alle von Berkeley identifizierten Dateien ohne Code von AT&T umfasste. Diese Version stellte jedoch kein vollständiges Betriebssystem mehr dar.
1991 erschien dann die Networking Release/2. Bill Jolitz ergänzte 1992 diese Release um nur sechs Dateien und veröffentlichte einen Patch, so dass ein vollständiges, fortgeschrittenes Betriebssystem für Intel 80386 Prozessoren namens 386BSD entstand.
Ebenfalls 1992 begann eine von der Universität Berkeley gegründete Firma namens BSDi (BSD Inc.) mit der Vermarktung der auch zum Betriebssystem erweiterten Networking Release/2. Sie vermarkteten ihr System unter dem Namen Unix inklusive Quellcode für den Dumping-Preis von 995 Dollar. Die Unix System Laboratories (USL), ein Zweig von AT&T, verklagten BSDI und die Universität daraufhin auf Einstellung des Verkaufs wegen Markenverletzung und teilweiser Verwendung ihres Quellcodes. Eine einstweilige Verfügung wurde jedoch abgelehnt.
Im Laufe dieses Rechtsstreits stellte sich heraus, dass AT&T Quellcode von Berkeley übernommen hatte (was wegen der BSD-Lizenz legal war), dabei jedoch die Urheberschaft Berkeleys aus dem Quellcode und der Dokumentation entfernt hatte (was in der BSD-Lizenz untersagt ist). Der Rechtsstreit endete 1994 damit, dass AT&T in einigen seiner Dateien die Urheberschaft von Berkeley wieder eintragen musste. Berkeley musste nur drei der über 18000 Dateien der Networking Release/2 entfernen und einige kleine Änderungen durchführen. Die Release war damit frei von Unix-Quellcode.
Im selben Jahr gab Berkeley dann die Version 4.4BSDLite als Nachfolger der Networking Release/2 heraus. 1995 war dann die Version 4.4BSDLite2 die letzte Version der Berkeley Software Distribution. 4.4BSDLite und Lite2 wurden zusammen mit 386BSD zur Grundlage von NetBSD, FreeBSD und kurz darauf OpenBSD.
Die BSDi entwickelte und vertrieb ihr System weiter unter dem Namen BSD/OS, das 2001 von Wind River Systems, Kalifornien aufgekauft wurde.
Berkeley Software Distributionen
- 1977 Berkeley Software Distribution für PDP-11 von Bill Joy - Pascal, ex
- 1978 Second Berkeley Software Distribution (2BSD) für PDP-11 - vi-Editor
- 1979 3BSD Portierung auf VAX Computer, erste virtuelle Speicherverwaltung
- 1980 4BSD Neue Version für VAX - mail, Job-Control
- 1981 2.8BSD Weiterentwicklung für PDP-11
- 1981 4.1BSD Performanceverbesserungen
- 1982 Interne Versionen 4.1a,4.1b,4.1b Netzwerk-Weiterentwicklung, Performance-Verbesserungen
- 1983 2.9BSD Weiterentwicklung für PDP-11
- 1983 4.2BSD neues Dateisystem, TCP/IP
- 1986 4.3BSD Performanceverbesserung, robuste Netzwerkimplementierung
- 1988 4.3BSD-Tahoe Separation der maschinenabhängigen und portablen Kernelteile
- 1989 2.10.1 letzte Version der Weiterentwicklung für PDP-11
- 1989 Networking Release/1
- 1990 4.3BSD-Reno Mach Support, Portierung von Sun's Network File System NFS
- 1991 Networking Release/2 (4.3BSDLite)
- 1992 2.11BSD Portierung von 4.3BSD auf PDP-11 Computer
- 1992 386BSD von Bill Jolitz (4.3BSDLite mit Support für Intel 80386 Prozessor)
- 1992 BSDi bietet kommerzielle Version der BSD als Unix an
- 1993 Gründung der NetBSD- und FreeBSD-Projekte
- 1994 4.4BSDLite (ohne AT&T Code) und 4.4BSD Encumbered
- 1994 BSD/OS neuer Name des Systems der BSDi
- 1995 Gründung des OpenBSD-Projekts
- 1995 4.4BSDLite2 letzte Release der Berkeley Software Distribution
Die Projekte NetBSD, FreeBSD und OpenBSD
Das freie 386BSD (1992) von Bill Jolitz zog Entwickler an, zumal PCs mit 80386 Prozessor sehr preiswert wurden. Jolitz war fest angestellt war und hatte nicht immer genügend Zeit für die Fehlerbehebung und Einarbeitung von Verbesserungsvorschlägen.
Dies veranlasste einige Entwickler im Jahre 1993 zwei Nachfolgeprojekte, NetBSD und FreeBSD, fast gleichzeitig ins Leben zu rufen.
Nachdem 1994 der Streit mit AT&T beigelegt war, brachten beide Projekte neue Versionen auf Grundlage von 4.4BSDLite, das keinen AT&T Quellcode mehr enthält, heraus, und zwar NetBSD 1.0 (1994) und FreeBSD 2.0 (Anfang 1995). 1995 zerstritt sich einer der Gründer des NetBSD Projektes mit den anderen Entwicklern und spaltete ein eigenes Projekt namens OpenBSD ab.
Gemeinsamkeiten und Unterschiede der BSDs
Die drei BSD-Projekte verstehen sich nicht als Konkurrenz, sondern als Ergänzung. Neuentwicklungen und insbesondere die zahlreichen Gerätetreiber eines Projekts werden in den anderen übernommen. Alle Projekte haben die Entwicklung eines freien Systems zum Ziel, ins eigentliche System soll daher nur mit der BSD-Lizenz kompatibler Code einfließen. Die Details der Interpretation des Begriffs freie Software unterscheiden sich jedoch geringfügig.
NetBSD möchte eine möglichst große Zahl verschiedener Hardwareachitekturen
und Prozessoren unterstützen. Of course it runs NetBSD. ist der Slogan des
Projekts. NetBSD war lange nur über Downloads im Internet verfügbar und
wendet sich vorwiegend an Anwender mit Unix-Kenntnissen.
FreeBSD konzentriert sich auf PC Hardware mit Intel 80396 Prozessor. Möglichst alle der erhältlichen Grafikkarten, Netzwerkkarten usw. sollen erkannt und unterstützt werden. Eine einfache Installation ist das Ziel des Projekts, so dass auch Nichtfachleuten die Verwendung dieses Systems ermöglicht wird. Schon früh veröffentlicht das Projekt daher Installation-CDs. Neben Intel Prozessor werden heute auch andere Prozessoren wie SPARC und Alpha unterstützt.
OpenBSD verfolgt dagegen das Ziel eines sicheren Systems. Dazu gehört zum einen proaktive Sicherheit, d. h. über Code-Audits sollen soweit wie möglich Fehler entdeckt und im voraus eliminiert werden. OpenBSD ist führend in der Implementation von sicheren, verschlüsselten Übertragungsverfahren. IPsec-Unterstützung gehört ebenso dazu wie eine offene Implementierung der Secure Shell ssh (OpenSSH).
Siehe auch: Geschichte von Unix
Weblinks:
- Unix History von Éric Lévénez
- http://www.ehlis.com/adam/solaris/history.html (z.Z. unter Bearbeitung / nicht erreichbar)
- BSD History Chart
- http://www.bsdforen.org Deutsche BSD Nachrichten- und Forenseite
- http://www.bsdforen.de Deutsche BSD Nachrichten- und Forenseite
- Twenty Years of Berkeley Unix englisch