english
 WOS 1 / Proceedings / Panels / 2. Freie Software-Projekte / Patrick M. Hausen / skript

Berkeley Software Distribution: FreeBSD, NetBSD, OpenBSD

Patrick Hausen

Ich möchte Ihnen die "Alternative zu Linux", so wird es manchmal genannt, die freien BSD-Varianten vorstellen. Hintergrund ist, daß wir im letzten Jahr und dieses Jahr eine regelrechte Linux-Hysterie im Markt haben. Auf der CEBIT dieses Jahr konnte man sich vor lauter Pinguinen nicht mehr retten. Und jedes Software-Unternehmen, das irgendwie eine Warenwirtschaft oder eine Zahnärtzelösung oder sonstwas hat, kündigte groß an: 'Jawohl, ja, wir machen das jetzt auch für Linux. Das ist ganz, ganz toll. Und dann werden wir ganz, ganz reich, genauso wie wir mit dem Internet alle ganz schnell ganz, ganz reich werden.' Und der Witz dabei ist, was für Unix Die-hards, so wie ich zum Beispiel einer bin, die seit 10 Jahren oder länger Unix machen, ein bißchen befremdlich ist: Das ganze ist eigentlich überhaupt nichts Neues. Wir machen das seit Jahren. Es gibt die Programme von der Free Software Foundation, GCC, Emacs. Es gibt Perl. Jeder Unix-Administrator in jeder Uni dieser Welt setzt seit Jahren, länger als Linux überhaupt existiert, frei verfügbare Software auf seinen Unix-Maschinen ein. Es ging letztendlich bei Unixum die freie Austauschbarkeit von Source Code und um das Implementierenvon Lösungen auf Source-Code-Basis. Denn wenn man mal ein bißchenzurückdenkt in die Zeit, bevor überall Intel-PCs standen, danngilt natürlich, daß Unix-Maschinen untereinander nicht binärkompatiblesind. D.h., wenn ich eine Anwendung von einer Maschine auf die andere tragenwill, dann muß ich diese Anwendung portieren, d.h. ich mußden Source Code nehmen und durch meinen C-Compiler jagen. Und Source-Code-Kompatibilitätwar eben das Konzept, das Unix auch vorangebracht und am Leben erhaltenhat, allen Anstrengungen internationaler Software-Konzerne zum Trotz, dasganze irgendwie zu Fall zu bringen. Ich bin mit etwas leichterem Gepäckunterwegs, weil man mir versichert hat, daß es hier Internet gibt,d.h. die Information, die ich Ihnen darstellen möchte im Vortrag überBSD, die hole ich mir jetzt einfach live aus dem Netz, denn da steht sie.Und wenn Sie Interesse haben sollten, dann können Sie sich das hinterhergenauso wieder angucken.

Ein Paar Worte zur Geschichte.Was ist BSD, für die, die noch nicht so sehr mit Unix im Kontakt sind?Das erste Unix von AT&T gab es kostenlos, weil AT&T sich damalsper Gesetz in Betriebssystemen und Software-Dingen nicht engagieren durfte.Das Stichwort hier ist Antitrust, Antimonopolregelung, d.h., manhat gesagt: 'O.K, Leute, ihr könnt das Unix geschenkt haben. Es gibtkeine Garantie. Wir machen keine Werbung. Jeder, der uns fragt, bekommtvon mir aus kostenlos ein Unix geschenkt.' Und das haben sehr, sehr vieleUniversitäten über die ganze Welt gestreut genutzt, um auf UnixForschungsprojekte aufzuziehen. Die wohl wichtigsten Anstößehierfür kamen hier von der Universität Berkeley in Kalifornien.Dort hat man 1979 angefangen, sich ernsthafter mit dem Unix von AT&Tauseinanderzusetzen, und sehr schnell, sehr viele wichtige Erweiterungenreinprogrammiert, beispielsweise, gesponsert vom Verteidigungsministerium,vom ARPA-Projekt, das wir heute alle als Internet kennengelernt haben,die Implementation dieser neuen Methode zwischen Rechnern zu kommunizieren.Eben dieses IP-Protokoll hat man auf der Basis von Berkeley-Unix gemachtund hat so auf der Basis von diesem Betriebssystem für die erstenweit und frei verfügbaren Implementationen von TCP/IP gesorgt.

Alle diese Berkeley Software,die da entstanden ist, BSD, Berkeley Software Distribution, war von Anfangan Open Source, war kostenlos erhältlich und hat ein Copyright, dassagt: 'Credit where credit is due'. D.h., ich habe die Pflicht,wenn ich das in einem Produkt benutze, das ich selber weiterentwickle,zu sagen: 'Teile von der Software, die ich Euch da verkaufe, stammen vonder Uni Berkeley.' Und ich darf natürlich nicht behaupten, ich habedas ganze selber geschrieben, d.h., ich darf nicht das Copyright rausnehmenund mein eigenes Copyright reinpacken. Und ich darf nicht explizit mitder Uni werben, aber ansonsten ist das völlig frei. Ich kann das entwedernehmen und meine eigenen Änderungen, die ich dazufüge, wiederherschenken, wie das bei der GPL ist, oder ich kann das ganze in eine Boxpacken, z.B. in einen kleinen Printer-Server oder so etwas und das ganzeals kommerzielles Produkt verkaufen.

Der Ansatz ist, daß manüber dieses völlig freie Zurverfügungstellen Dinge bereitstellt,die, ich sage mal, die Menschheit braucht. Und zwar common Infrastructure.Bei TCP/IP-Implementierungen ist sehr, sehr wichtig, daß sie halbwegsfunktionieren und sich alle halbwegs an die Standards halten. Und indemich jetzt eben auch kommerziellen Unternehmen die Sourcen zur Verfügungstelle von einer sehr ausgereiften, sehr alten, sehr stabilen Implementierung,sorge ich dafür, daß das mit dem IP über Plattformgrenzenhinweg, also auch mit Windows, mit OS/2, mit den ganzen anderen Rechnerplattformen,die wir haben, sehr gut funktioniert. Der OS/2 TCP/IP-Stack z.B. ist 100%BSD. Wenn Sie sich das Net-Stat-Kommando auf einem OS/2-Rechner angucken,dann stellen sie fest, daß da Ausgabe von internen Strukturen möglichist, wie sie nur im BSD TCP/IP-Stack existieren.

Um die ganze Sache war es sehrlange sehr still. Es existierte einfach vor sich hin, genauso wie GCC,Emacs und andere Sachen auch, und keiner hat sich groß darum gekümmert,bevor das mit dem Linux richtig losging. Die Universität Berkeleyhat etwa 1992 eine final Release vorbereitet. Man sagte einfach:'Es gibt in dem Betriebssystembereich nicht mehr soviel zu forschen. Wirlassen das jetzt '93, '94 auslaufen. Wir veröffentlichen das, waswir im Moment haben, noch einmal komplett unter dem Namen Networking Release2 und machen uns noch mal daran, einen endgültigen Abschlußvon diesem Projekt zu machen und das dann zu releasen.' Und diesen Net2 Release hat jemand namens Bill Jolitz genommen und hat gesagt: ' Hey,das könnte ich doch nehmen und auf dem 386er, 486er, auf einer IntelCPU zum Laufen bringen. Das hat er getan, und daraus entstand das, washeute die freien Software-Projekte sind.

Es gibt im Moment drei vondiesen BSD-Projekten. Ich hoffe auch selber, daß das nicht noch mehrwerden. Es gab ganz am Anfang bei der Weiterentwicklung von diesem 386-BSDeinen Split aus persönlichen Gründen oder auch aus Motiven, wasdie Weiterentwicklung angeht. Das eine ist die sogenannte FreeBSD-Gruppe.Die FreeBSD-Gruppe, hat als Ziel, das beste mögliche, solide Unix-Server-Betriebssystemfür Intel-CPUs oder ähnliche Architekturen zu machen. Es gibtinzwischen einen Alpha-Port im Beta-Stadium, der auf den CDs auch draufist und schon recht gut laufen soll, aber der Fokus war höchstmöglichePerformance, höchstmögliche Stabilität auf dem Intel-Rechner.Die NetBSD-Gruppe, die ungefähr zur gleichen Zeit entstandenist, hat als Ziel eine möglichst große Verbreitung auf möglichstviel Plattformen zu haben. Ich möchte hier jetzt nicht irgendwie gegenLinux argumentieren, aber Linux wird auf den Alpha portiert und sofortschreibt man zwei-, dreiseitige Artikel darüber, wenn die erste Alphaversionvom Alpha-Port von Linux läuft. Was glauben Sie, was die Betriebssystemsplattformist, die auf den meisten verschiedenen Hardwareplattformen läuft,aus einem Source-Baum? Na, das ist NetBSD. Der Slogan des NetBSD-Projektesist: 'Of course it runs NetBSD.' Es gibt mehr oder weniger nichts,was einen 32-Bit-Prozesser und eine Memory Management Unit hat, wo NetBSDnicht darauf läuft. Sie sehen hier die ganze Liste der unterstütztenPlattformen am Bildschirm, und da läuft das drauf, ohne daßman das speziell irgendwie promotet. Es tut einfach. Ich meine, es istUnix. Unix wurde entwickelt mit dem Ziel der größtmöglichenHardwareportabilität. Natürlich läuft das auf einer breitenHardwarebasis.

Es gab im letzten, vorletztenJahr noch mal ein Split zwischen einem Mitglied der NetBSD-Gruppe und demRest der Net-BSD Gruppe. Die konnten sich einfach nicht mehr einig werden,und er hat gesagt: 'Ich mache mein eigenes Projekt auf', und im Gegensatzzum GIMP läuft das bis jetzt recht erfolgreich, d.h., beide Projekteleben weiter nebeneinander her. Das Projekt nennt sich OpenBSD.Ich verzichte jetzt mal darauf, das auch noch ranzuholen. Die unterstützenHardwarplattformen sind ganz ähnlich wie bei NetBSD, und der Schwerpunktliegt hier bei der Security, d.h., es werden ganz intensiv Code Reviewsgemacht und z.B. Buffer Overflows und solche Schwachstellen gesuchtund eliminiert.

Wie sieht das Entwicklungsmodelaus? Es gibt, genauso wie wir es bei den Apache- und bei den X-Free-Gruppenhaben, ein Core-Team, d.h., es gibt ein zentrales Steuerungs-Boardbei diesen drei BSD-Projekten. Es gibt für jedes Team mehrere Dutzendbis hundert Entwickler weltweit, die daran mitarbeiten. Änderungenwerden an das Core-Team geschickt und von den Leuten im Core-Teamin den Source-Baum integriert. Der Source-Baum liegt natürlich auchunter CVS-Kontrolle. Man kann lesend weltweit auf die ganzen Source-Bäumezugreifen. D.h., Sie können jederzeit sagen: 'Lieber CVS-Server, schenkmir doch mal bitte eine Free BSD Version current vom 15. Juli 1999aus.' Und dann bekomme ich eben die Version von gestern auf meine lokaleFestplatte. Und daher ist das wirklich richtig Open Source.

Der Vorteil, gegenüberdem, was sich in der Linux-Welt abspielt, daß man einen Kernel hatund dann jemand eine Distribution mit sehr viel third-party-Softwaredrumherum packt, ist der, daß ich ein zentrales Source-Code-Managementhabe für Kernel und Userland. Das bedeutet, sämtlicheUtilities drum herum, egal ob das jetzt GNU-Utilities sind, ob das Perlist oder GCC, TOP, alles, was in so eine Unix-Anlage einfach reingehört,UUCP und der Kernel, werden von einer Gruppe zentral gemanagt und ich kanndas auf meiner Maschine zu Hause komplett neu bauen. D.h. ich habe einenSource-Baum unter user source und gebe in diesem Verzeichnis einfachnur make world ein. Und dann wird das gesamte FreeBSD-System komplettneu durchkompiliert, Kernel, Userland -- alles. Ein Update ziehe ich auchgenau in dieser Form durch. Wenn ich einen laufenden Produktions-Serverhabe -- wir haben davon recht viele, als Internetprovider setzen wir hierschwerpunktmässig auf FreeBSD als Server-Plattform -- dann gehe ichauf einer Maschine hin und sage: 'OK, wir haben ein Security-Fix gekriegt.'Es gab irgendein Sicherheitsloch. Dann kompiliere ich das gesamte Systemauf diesem Server neu durch, exportiere das, was ich da erzeugt habe perNFS kurzzeitig an alle meine anderen Maschinen und ziehe mir da die Updatesrein. Das heißt, ich habe wirklich ein zentral gemanagtes SourceRepository für das gesamte System. Und das ist für die Stabilitätsehr, sehr förderlich und auch für die Managebarkeit, wenn mangrößere Mengen von Servern betreut. Denn Updates kann ich nächtensvollautomatisch laufen lassen und muß nur dann, wenn ich sie tatsächlichinstalliere, dabei sitzen und gucken: 'Hat es geklappt? Hat's nicht geklappt?Funktioniert noch alles? Wunderbar.'

Wer benutzt alles FreeBSD,beziehungsweise die anderen BSDs? Ich kann hier verstärkt fürFreeBSD sprechen, weil das das ist, was wir hier benutzen auf Intel-Servern.Wer benutzt alles FreeBSD? Da finden sich dann so interessante Namen wieYahoo oder Hotmail. Microsoft z.B. ist Besitzer von Hotmail. Die versuchenseit Jahren, seitdem sie das besitzen, diesen Service auf NT-Servern zufahren. Der größte FTP-Server der Welt, 5.000 User gleichzeitig-- das war der letzte Stand, den ich habe, es kann sein, das es inzwischen6.000 bis 7.000 sind, über ein Terra-Bit an täglichem Datendurchsatz-- ist eine FreeBSD-Maschine. An der Stabilität von dem Produkt kannman hier keinen Zweifel lassen. Womit ich jetzt nicht gesagt habe, da Linuxnicht stabil wäre. Es ist nur so, daß, wenn man schon sehr viellänger Unix macht, als es Linux überhaupt gibt, dann waren dieersten Linux-Distributionen ein bißchen... naja, gewöhnungsbedürftig.Und dann kam ungefähr zur gleichen Zeit BSD raus, und da hab ich gesehen:'O.K., das ist eigentlich genau so, wie das sein soll, und noch dazu kostenlos.Das nehmen wir. Das paßt.'

Wie sieht das aus mit der Kompatibilität,mit den Applikationen? Es ist ja immer wichtig: Was kann ich darauf laufenlassen? Wir haben natürlich fertige Unterstützung von seitender X-Free-Gruppe und von seiten der Apache-Gruppe. Wir haben Unterstützungvon seiten des KDE-Projektes, d.h., die ganzen Desktops. Von sämtlichenOpen Source-Projekten, die Sie aus der Linux-Welt kennen, können Sieerwarten, daß die auf dem FreeBSD, auf dem NetBSD, auf dem OpenBSDauch ohne Probleme laufen. Für diese Applikationen gibt es eine rechtgeniale Erfindung, in meinen Augen. Das nennt sich bei FreeBSD die Ports-Collection.Es ist ja klassisch so, daß man in der Unix-Welt, wenn man eine Applikationinstalliert -- das hatte ich ganz am Anfang erwähnt, wir haben Source-Code-Portabilität-- dann holt man sich als Administrator den Source Code, kompiliert den,testet, installiert. Jeder, der sehr lange Unix macht, ist das so gewöhnt.Dinge, wie der RedHat Package Manager oder dselect, die einfach fertigeBinary-Packages auf mein System tun, wie das in der PC-Welt üblichist, sind eine relativ junge Erfindung. Weil eben die Linux-Entwicklungauch sehr, sehr stark aus der PC-Welt, aus den PC- Anwendern heraus angetriebenwird und man das eben so einfach wie möglich haben will. Wenn LinusTorvalds das mit seiner World Domination wirklich schaffen will,dann muß man es halt den normalen Windows-Anwender so einfach oderauch kompliziert machen, wie das eben unter Windows auch ist. D.h., unterLinux wird Software sehr, sehr oft als Binary installiert, währendfür alte Unix-Admins der normale Weg die Source Code-Installationist.

Nun kann ich hingehen und sagen:'O.K, ich automatisiere die Source Code-Installation.' Und genau das isthier passiert. Das ganze nennt sich Ports Collection, besteht ausmittlerweile etwa 10 bis 15 MB an Baum, den man auf seine Platte spielt.Und der besteht aus Make Files. Make ist ein Projektverwaltungs-Tool,mit dem ich automatisiert Software übersetzen kann. Und ich brauchejetzt eben nicht auf meine FreeBSD-CD jede Menge Packages mit draufzupacken,sondern ich habe einfach diesen Ports-Baum, in dem für mehrere tausendApplikationen Make Files vorgesehen sind. Und wenn ich so einenMake File anstoße mit dem Befehl 'make', dann wird das Originalsoftware-Paket,beispielsweise der Apache, direkt vom passenden FTP-Server der Apache Groupgeholt, eventuell für FreeBSD angepaßt, irgendwelche Variablengesetzt, durchkompiliert, installiert und in einer Package-Datenbank registriert,so daß ich das wieder sauber deinstallieren kann. Das gleiche mitKDE und mit allem anderen. Zusätzlich löst die Ports CollectionAbhängigkeiten auf. Das heißt, wenn ich jetzt sage: 'Ich möchteApache mit PHP3 mit MySQL Support haben', dann holt sich dieser Port vollautomatischden Apache, das MySQL-Paket, MySQL-Client, PHP, patcht den Apache, installiertdas, registriert das, und ich hab die ganzen Anwendungen sauber bei mirdrauf. Und weil diese Ports Collection eine vollständig SourceCode-getriebene Sache ist, kann ich mir auch hier wieder vollautomatisiertüber das Internet jede Nacht in einem Chron-Job Updates holen.D.h., ich profitiere mit ein, zwei, drei Tagen Verspätung unmittelbarvon Änderungen, wie sie z.B. die Apache Group macht: Es kommt einneuer Apache raus, dann muß ich bei Debian oder RedHat, wenn ichbinary Packages einsetzen will, immer ein bißchen warten,bis die Leute die Packages nachgezogen haben. Beim Port ist das normalerweiseeine Sache, einfach einen entsprechenden Eintrag in dem Make Filezu ändern, und sofort kommen die aktuellen Apache-Sourcen auf meineMaschine.

Hier ist nur mal so ein Überblicküber die Kategorien, nach denen die Ports sortiert sind. Man siehtda Datenbanken, Editoren, Shells, Webserver, alles. Wenn einem das nichtreicht -- mehrere Tausend freie Applikationen --, dann kann man noch aufdie Idee kommen, kommerzielle Applikationen einzusetzen, z.B. unser Shopping-System.Die Firma, die das gemacht hat, was wir im Einsatz haben, die hat eineVersion für NT, eine Version für Solaris und eine Version fürLinux. Und da kommt die gute Nachricht: FreeBSD, NetBSD, OpenBSD auf derIntel-Plattform führen Linux-Binarys aus. d.h., ich kann einfach einLinux-Programm nehmen, was nur als kommerzielle Binärversion vertriebenwird, kann das bei mir installieren. Ich schreibe zu Hause z.B. meine Korrespondenzmit der privaten Lizenz von WordPerfect 8 "für Linux" und das aufmeiner FreeBSD-Workstation. Wie gesagt, wir setzten im Produktionsbetriebdiese Shopping-Lösung ein als Linux-Binary. Und es kam auch die Fragevom Hersteller: 'Sollen wir eine FreeBSD Version machen?' Und wir habengesagt: 'Nein, laßt es. Die Linux-Version läuft so einwandfreiund so problemlos. Bündelt lieber eure Ressourcen, um die weiterzuentwickeln.Wenn es irgendwelche Probleme auf FreeBSD geben sollte, dann kriegt ihrvon uns Feedback, aber eine extra BSD-Version rentiert sich eigentlichnicht.' So sieht das momentan aus. Wenn Sie sich das morgen live anguckenwollen, um 16.00 Uhr machen wir einen kleinen Workshop. Wenn ich Ihr Interessegeweckt habe: www.freebsd.org. Esist alles da. Es ist alles ausführlich dokumentiert und es ist einzwanzig Jahre altes, ausgereiftes Unix, so wie es meines Erachtens seinsoll.

(Transkription: Katja Pratschke)



Links:

http://www.freebsd.org

http://www.netbsd.org

http://www.openbsd.org


[^] nach oben


Creative Commons License
All original works on this website unless otherwise noted are
copyright protected and licensed under the
Creative Commons Attribution-ShareAlike License Germany.