Seit über fünf Jahren arbeiten weltweit Entwickler im Debian Projekt mit und erstellen Debian GNU (Linux sowie Hurd). Debian GNU/Linux ist jedoch nicht nur eine weitere Distribution am Linux-Firmament. Was es auszeichnet, beinhaltet dieser Vortrag.Debian GNU/Linux zählt heutzutage zu einer der führenden Linux-Distributionen. Technisch wird der Standard sehr hoch gehalten. Im Gegensatz zu anderen Distributionen steht hinter Debian jedoch keine Firma, sondern Ideologie und eine Gruppe Freiwilliger.
Dennoch - oder gerade deswegen - hat es Debian weit gebracht:
Debian GNU/Hurd befindet sich noch in der Entwicklung. Dieses System basiert anstelle des Linux-Kernels auf dem Hurd-Kernel von der Free Software Foundation (FSF). Davon abgesehen, wird es jedoch die gleichen Komponenten wie Debian GNU/Linux beinhalten. Auf dem Debian-Stand im Foyer demonstriert ein Rechner den aktuellen Stand von Debian GNU/Hurd.
Das Betriebssystem beinhaltet die umfassendste Sammlung freier Software, die in einem System zusammengefaßt ist. Die einzelnen Komponenten sind dabei sehr gut in das System integriert und arbeiten über verschiedene Mechanismen zusammen.
Das Projekt besteht zur Zeit aus ca. 500 Mitarbeitern im Alter von 13 und 70 Jahren. Im Gegensatz zu Herstellern anderer Systeme steht bei Debian keine Firma im Hintergrund, sondern Idealismus. Alle Projektteilnehmer arbeiten mit, um Freie Software zu unterstützen.
Die gesamte Distribution wird von Freiwilligen aus allen Ecken der Welt zusammengestellt. In ihrer Freizeit beschäftigen sie sich mit Linux und steuern ihren Teil zum System bei. Jeder bearbeitet die Komponenten, die er selbst benutzt oder das Aufgabenfeld, in dem er sich auskennt. Dadurch ist jeder Mitarbeiter ein Experte auf seinem Gebiet, wodurch hohe Qualität dieser Komponenten gewährleistet werden kann.
Mit den bisherigen Distributionen gab es mehrere Probleme. Zum Beispiel war es teilweise nicht einfach möglich, den zu den Binärpaketen passenden Quellcode zu finden. Zum anderen wurden einige Fehler in neuere Versionen übertragen, obwohl Korrekturen bereits verfügbar waren.
Es war zudem nicht klar ersichtlich, ob die Komponenten frei waren oder ob dessen Benutzung oder Weitergabe durch besondere Lizenzen eingeschränkt wurde. Es gab keine Unterscheidung zwischen »frei« und »nicht frei«. Alle Programme lagen in einem Verzeichnis / auf einer CD.
Abhängigkeiten zwischen einzelnen Komponenten waren zu dem Zeitpunkt noch Fremdworte. Man installierte das »cron«-Paket, jedoch keinen Mailserver - oder man installierte »sendmail« zusammen mit »smail« - und wunderte sich, daß es Probleme gab.
Darüberhinaus konnte man keineswegs davon ausgehen, daß ein installiertes Programm auch funktionierte, oder daß die einkompilierten Pfade mit den Beispielen im System übereinstimmten.
Kurzum: Linux war eine Fundgrube für Hacker. Wer jedoch ernsthaft arbeiten wollte, der benutze lieber etwas anderes - oder wurde zum Hacker und arbeitete sich in alles ein. Für einen Endanwender war das natürlich nicht akzeptabel.
Als Ian Murdock das Debian Projekt ins Leben rief, war man noch weit von einer Distribution entfernt. Zu Anfang war es wichtig, die benötigten Hilfsmittel zusammenzustellen. Zu Beginn waren ein Dutzend Mitarbeiter am Projekt beteiligt, darunter Ian Jackson und Bruce Perens. Überdies wurde Debian ein Jahr lang von der FSF finanziell unterstützt
Nach Gründung im August 1993 stand Ian Murdock selbst (bis März 1996) dem Projekt vor. Anschließend übernahm Bruce Perens die Leitung, die im Januar 1998 an Ian Jackson übertragen wurde. Seit Februar 1999 schließlich hält Wichert Akkerman die Zügel in der Hand.
Der Projektleiter überträgt einen Teil seiner Verantwortung an weitere Personen, die sich freiwillig für diese Aufgabe bereit erklärt haben. So beschäftigen sich ein Teil der Mitarbeiter mit Lizenzen und diskutieren ihre Freiheit und Auswirkungen auf das Projekt (»debian-legal«). Eine weitere Gruppe befaßt sich mit der Policy und überdenkt diese (»debian-policy«). Die Diskussionsforen sind für jeden offen.
Hinzu kommen Personen, die für die Maschinen verantwortlich sind (»debian-admin« bzw. lokale Betreiber), Listmaster, Presse-Ansprechpartner, Webmaster, Release-Manager. Für die verschiedenen Portierungen ist meist ebenfalls eine kleine Grupper zuständig, der weitere Mitarbeiter zuarbeiten.
Obwohl die meisten Mitarbeiter im Debian-Projekt als Paket-Betreuer anfangen, sind viele weitere Aufgabenfelder vorhanden. Insbesondere im Bereich Dokumentation liegt immer Arbeit an.
Der Paket-Betreuer wartet eine Reihe von Software-Paketen, die er selbst benutzt. Da er ein persönliches Interesse an diesen Paketen und an ihrem Funktionieren hat sie mit viel Sorgfalt zusammengestellt und gepflegt.
Wir versprechen, daß die Debian GNU/Linux Distribution auch weiterhin vollständig aus freier Software bestehen wird. Da es viele verschiedene Auslegungen des Begriffs "Freie Software" gibt, haben wir weiter unten die Richtlinien (nächster Abschnitt) aufgeführt, nach denen wir Freie Software identifizieren. Trotzdem werden wir Anwender unterstützen, die nicht-freie Programme einsetzen oder entwickeln. Wir werden aber niemals das Gesamtsystem von nicht-freier Software abhängig machen.
Wenn wir neue Komponenten des Debian-Systems schreiben, so werden wir sie als Freie Software lizensieren. Wir werden das bestmögliche System erstellen, so daß Freie Software weit verbreitet und genutzt wird. Wir werden Korrekturen, Verbesserungen, Anwenderwünsche usw. an die ursprünglichen ("upstream") Autoren weiterleiten, deren Programme in unser System integriert wurden.
Wir werden unsere Fehlerdatenbank für alle Zeiten öffentlich betreiben. Fehlermeldungen, die von Anwendern online abgeschickt werden, werden augenblicklich für andere sichtbar.
Wir orientieren uns an den Bedürfnissen unserer Anwender und der Gemeinschaft für Freie Software. Ihre Interessen stehen an erster Stelle. Wir werden unsere Nutzer bei ihrer Arbeit mit den verschiedensten Rechnerumgebungen unterstützen. Wir haben nichts dagegen, daß kommerzielle Software auf Debian-Systemen eingesetzt wird. Außerdem erlauben wir anderen eine erweiterte ("Value-Added") Distribution zu erstellen, die Debian und kommerzielle Software enthält, ohne dafür irgendwelche Gebühren zu erheben. Um diese Ziele zu erreichen, werden wir ein integriertes System von hoher Qualität und 100% freier Software anbieten, die die gerade beschriebene Nutzung nicht durch rechtliche Einschränkungen, wie z. B. durch Lizenzverträge, verhindert.
Wir wissen, daß einige unserer Anwender unbedingt Programme einsetzen müssen, die nicht den Debian-Richtlinien für Freie Software entsprechen. Für solche Programme haben wird die zusätzlichen Bereiche »contrib« und »non-free« auf unserem FTP-Archiv eingerichtet. Die Software in diesen Verzeichnissen ist nicht Bestandteil des Debian-Systems, wurde aber trotzdem für den Einsatz in einem Debian-System vorbereitet. Wir empfehlen den CD-Herstellern, die jeweiligen Lizenzbestimmungen der Programmpakete in diesen Verzeichnissen zu studieren und selbst zu entscheiden, ob sie die Programme mit ihren CDs verteilen dürfen. Obwohl die Programme aus »non-free« nicht Bestandteil der Debian-Distribution sind, unterstützen wir ihren Einsatz und bieten Infrastruktur für diese nicht freien Programme an, z. B. unsere Fehlerdatenbank und die Mailing-Listen.
Ein Bestandteil der Debian-Distribution darf durch seine Lizenz nicht verhindern, daß irgendjemand diese Software als Bestandteil einer Software-Distribution, die Programme aus den verschiedensten Quellen enthält, verkauft oder weitergibt. Die Lizenz darf keine Abgaben oder sonstige Leistungen für einen solchen Verkauf fordern.
Das Programm muß im Quellcode vorliegen, und es muß die Weitergabe sowohl im Quellcode als auch in compilierter Form erlaubt sein.
Die Lizenz muß Veränderungen und weiterführende Arbeiten gestatten und es erlauben, daß diese unter den gleichen Lizenzbedingungen weitergegeben werden dürfen wie die Original-Software.
Die Lizenz darf die Weitergabe von verändertem Quellcode nur dann verbieten, wenn sie die Weitergabe von sogenannten Patch-Dateien mit dem Quellcode erlaubt, die dazu dienen, das Programm vor seiner Herstellung zu modifizieren. Die Lizenz muß ausdrücklich die Weitergabe der aus dem veränderten Quellcode erzeugten Programme erlauben. Die Lizenz darf fordern, daß die veränderten Programme einen anderen Namen oder eine andere Versionsnummer tragen müssen.
(Dies ist ein Kompromiß. Die Debian-Gruppe ermutigt alle Autoren, Veränderungen an Dateien sowohl im Quellcode als auch in Binärform zu erlauben)
Die Lizenz darf keine Person oder Gruppe von Personen diskriminieren.
Die Lizenz darf keine Einschränkungen hinsichtlich des Einsatzbereichs vornehmen. Beispielsweise darf sie nicht verhindern, daß das Programm geschäftlich oder für genetische Forschungen verwendet wird.
Die mit einem Programm verbundenen Rechte müssen für alle gelten, die das Programm erhalten, ohne daß es für sie notwendig ist, eine zusätzliche Lizenz zu erwerben.
Die mit dem Programm verbundenen Rechte dürfen nicht davon abhängig sein, daß das Programm Teil des Debian-Systems ist. Falls das Programm aus der Debian-Distribution herausgenommen wird und ohne Debian genutzt oder vertrieben werden soll, ansonsten aber im Rahmen der Programmlizenz bleibt, so müssen alle Parteien, die das Programm bekommen, die gleichen Rechte haben, wie sie im Zusammenhang mit dem Debian-System gewährt wurden.
Die Lizenz darf keine Beschränkungen besitzen, die Auswirkungen auf andere Software hat, die mit diesem Programm weitergegeben wird. Beispielsweise darf die Lizenz nicht vorschreiben, daß alle anderen Programme auf dem gleichen Medium Freie Software sein müssen.
Die "GPL", "BSD" und "Artistic" Lizenzen sind Beispiele für Lizenzen, die wir als "frei" betrachten.
Eine enge ideologische Verwandtschaft zur Free Software Foundation und zu Richard Stallman, dem Begründer Freier Software, läßt sich nicht leugnen. Die FSF hat das Debian-Projekt anfangs zudem unterstützt, dennoch ist es eigenständig und legt seine Regeln selbst fest.
Die Mitarbeiter bei Debian haben eine starke Meinung für Freie Software und vertreten diese auch in der Öffentlichkeit. Dadurch definiert sich das Debian Projekt erst. Viele sind überhaupt durch diese Garantie erst zu Debian gekommen. Ohne diese strengen Richtlinien würden viele nicht im Debian-Projekt mitarbeiten.
Einige Male konnte sogar erreicht werden, daß Autoren ihre Lizenz überdacht haben und in der neuen Version ihrer Software eine freiere verwendet haben. Oftmals wollten die Autoren Freie Software entwickeln, haben jedoch ihr Terrain verlassen und zusätzlich eine Lizenz erarbeitet. Teilweise enthielt sie unerwünschte Restriktionen, die auf Anhieb nicht zu erkennen waren. Beispiele dafür sind ircII (sowie Erweiterungen BitchX und epic), vim und ncftp.
Im Debian-Projekt wird sehr sorgfältig mit Lizenzen umgegangen. Jede Lizenz wird auf jeden Fall vom Paketbetreuer selbst gelesen und überprüft. Danach wird entschieden, ob das Paket in die Distribution aufgenommen werden darf oder nicht. Wenn sich der Paketbetreuer bei einer Lizenz nicht sicher ist, fragt er auf einer entsprechenden Mailing-Liste nach. Dort lesen die Leute mit, die sich ausführlich mit Lizenzen beschäftigt haben.
In jedem Binärpaket wird die Lizenz des Pakets oder ein Verweis darauf in »/usr/doc/<paketname>/copyright« gespeichert. Die Benutzer werden nicht im Unklaren darüber gelassen, woher das Paket stammt und wer es entwickelt hat. Der Autor eines Pakets wird auf jeden Fall genannt und damit seine Arbeit gewürdigt.
In dieser Datei steht zudem eine Adresse, von wo das ursprüngliche Paket geholt wurde. Dadurch sind die Benutzer in der Lage, selbst an der Entwicklung dieses Pakets mitzuwirken und ggf. Vorabversionen zu installieren, bevor sie in die Debian-Distribution aufgenommen werden.
Darüberhinaus werden sogenannte »changelog«-Dateien installiert, aus denen die Entwicklung des Pakets zu ersehen ist, sowohl der ursprünglichen als auch der Debian-Versionen. So kann jederzeit nachvollzogen werden, wie sich die Pakete entwickeln.
Auf den Quellcode zu einem Paket muß einfach zugegriffen werden können. Die Hersteller der Distribution müssen dafür Sorge tragen, daß die Quellcode-Pakete auf die gleiche Weise verfügbar gemacht werden wie die Binärpaket.
Debian verfolgt dabei das Konzept des »Pristine Source«. Die Quellcode-Pakete von Debian bestehen normalerweise aus drei Komponenten:
Dieses ist der unverfälschte Quellcode, wie er von den ursprünglichen Autoren geliefert wurde. Meistens wird nur der Dateiname umbenannt. Im Falle von ».zip«- oder ».srpm«-Dateien muß jedoch umgepackt werden.
Diese Datei enthält alle Änderungen in Form eines Patches, die vom Betreuer vorgenommen wurden, damit sich das compilierte Paket in das System einpaßt.
Dieses ist eine Kontrolldatei, in der beschrieben ist, aus welchen Dateien sich der Quellcode des Debian-Pakets zusammensetzt.
Debian hat Wert darauf gelegt, den Quellcode so weiterzugeben, wie die ursprünglichen Autoren ihn freigegeben haben. Bei einer neuen Version des Pakets wird die ».orig.tar.gz«-Datei nur dann neu auf den Server gelegt, wenn sich komplett neuer Code benutzt wurde. Wenn hingegen nur in den Anpassungen für das System etwas geändert wurde, werden nur die beiden letzten Dateien auf dem Server ausgetauscht.
Durch die separate ».diff.gz«-Datei wird zum einen verhindert, daß zum Compilieren bei einer neuen Debian-Version das komplette Quellcode-Paket neu aus dem Netz gezogen werden muß, zum anderen wird so eine Möglichkeit geschaffen, die qualitativ hochwertigen Debian-Pakete auch auf Nicht-Debian Systemen zu verwenden.
Da die Komponenten des Betriebssystems nicht aus einer Quelle sondern von vielen verschiedenen Autoren oder Teams stammen, werden sie als Pakete bezeichnet. Damit die Distribution nicht zu einem Flickenteppich wird, sorgt die Paketverwaltung, ein zentrales Instrument jeder Distribution.
Unter einer Paketverwaltung ist folgendes zu verstehen:
Pakete können in unterschiedlichen Versionen vorliegen. Software wird weiterentwickelt, dabei ändert sich der Inhalt, was von der Paketverwaltung beachtet werden muß.
Wird ein Paket installiert, dann muß festgehalten werden, welche Dateien zu diesem Paket gehören, damit sie gelöscht werden, wenn das Paket aus dem System entfernt wird.
Wenn eine neue Version eines Pakets installiert wird, müssen normale Dateien überschrieben werden. Dateien, die im neuen Paket nicht mehr enthalten sind, müssen jedoch gelöscht werden.
Die Paketverwaltung muß beachten, daß einige Pakete nicht zusammen mit anderen installiert werden dürfen, da sie sich gegenseitig behindern würden. Zwei »sendmail«-Derivate können nicht problemlos zusammen auf einem System laufen.
Andere Pakete arbeiten nur dann richtig, wenn zusätzlich weitere Software installiert ist. Ein »cron«-Paket kann nur dann wie gewünscht arbeiten, wenn gleichzeitig ein Mailserver installiert ist, da im Fehlerfall Mails verschickt werden.
Konfigurationsdateien sind die wichtigsten Dateien in einem Paket. Die Gesamtheit der Konfigurationsdateien beschreibt das System. Ihnen muß besondere Beachtung geschenkt werden. Beim Aktualisieren (Upgrade) von Komponenten dürfen Konfigurationsdateien nicht einfach überschrieben werden, da sie oft lokale Ergänzungen enthalten, die sonst verloren gingen.
Teilweise ist es erforderlich, daß nach dem Kopieren der Dateien aus den Paketen, Programme aufgerufen werden. Dateien müssen in das System integriert werden (z.B. info-Dateien) oder der Benutzer muß das Paket durch Eingabe von einigen Daten konfigurieren. Bei sogenannten Shared Libraries muß z.B. nach der Installation »ldconfig« aufgerufen werden, um sie im System bekannt zu machen.
Da Pakete der Distribution auf verschiedenen Medien vorliegen (FTP-Server, Webserver, CD's, NFS-Server u.s.w.), sorgen sogenannte Front-Ends (»dselect«, ¸>apt-get«, »apt-find«, »gnome-apt«, »swim«) dafür, daß die Pakete geholt und der Paketverwaltung übergeben werden. Diese Programme untersuchen Abhängigkeiten sowie Konflikte zwischen Paketen und reagieren entsprechend.
Debian GNU hält sich größtenteils an die von fast allen Distributions-Herstellern akzeptierte »Linux Filesystem Structure«[2] (FSSTND). Überdies hat das Debian Projekt weitere Richtlinien aufgestellt, die im »Debian Policy Manual«[3] niedergeschrieben wurden.
Diese Dokumente legen z.B. fest,
Seine Stärke zeigt Debian z.B. mit dem Menüsystem. Viele Pakete installieren Menüdateien und registrieren damit ihre Programme im Menüsystem. Die meisten Debian-Pakete von Window-Manager für X11 unterstützen dieses System und erzeugen im Anschluß an eine Installation speziell angepaßte Konfigurationsdateien für die Window-Manager, so daß die Programe in fast allen im Menü erscheinen.
Über spezielle Schnittstellen zu »dwww« und »doc-base« werden die in den Paketen enthaltenen Texte zusätzlich als Dokumentation registriert. Mit »dwww« erhält der Anwender eine einfache Möglichkeit, auf die gesamte Dokumentation zuzugreifen: http://localhost/dwww/ .
Zusätzliche Mechanismen sorgen dafür, daß sich neue Pakete in das System einpassen. Dazu gehört z.B. ein Mechanismus, der Anwendungsprogramme automatisch in die Menüstruktur aller X11-Window-Manager und eines textbasierten Menüsystems »pdmenu« aufnimmt. Zusätzliche Abstraktionsebenen und Kontrollstrukturen sorgen dafür, daß verschiedene Systemeigenschaften transparent verwaltet und von den Paketen manipuliert werden können. (so z.B. der Boot-Vorgang, Window-Manager, Wörterbücher, gleichlautende Programme, Logdateien etc.).
Hinzu kommt, daß sich die Betreuer auf vielen Mailing-Listen austauschen und ihre Pakete weiter anpassen, wenn es nötig wird. Über das öffentliche Bug Tracking System werden zudem weitere Fehler berichtet oder Wünsche geäußert, die die Betreuer meistens relativ zeitnah umsetzen.
Das Bug Tracking System ist ein Mail-gesteuertes System, über das jeder Fehler oder Wünsche zu den Paketen berichten kann. Die vermeintlichen Fehler sind solange als "ausstehend" (pending) markiert, bis der Betreuer den Status auf "erledigt" (done). Sie werden einen Monat nach der letzten Änderung gelöscht, wenn sie erledigt sind. Die Berichte werden für das Web aufbereitet und sind dort von jederman einzusehen.[4]
Da die komplette Entwicklung des Systems öffentlich stattfindet und man sich jederzeit den aktuellen Stand vom FTP-Server[5] laden und installieren kann, befindet es sich quasi zu jedem Zeitpunkt in einer Testphase und wird beobachtet. So werden viele Fehler schon sehr früh entdeckt und viele Verbesserungsvorschläge fließen in die Distribution ein, lange bevor eine neue Gesamtversion (Release) ansteht.
Die beiden Formate sind keineswegs inkompatibel. Die im jeweiligen System üblichen Werkzeuge unterstützen jedoch nur das eigene Format. Um Pakete im jeweils anderen Format auf einem System zu installieren, wird das Paket mit dem Befehl »alien« in das lokale Format konvertiert und anschließend installiert.
Die Mitarbeiter übersetzen einen Teil der Dokumentation selbst in ihre Muttersprache und geben die Übersetzung zurück ans Projekt. Die Installationsanleitung ist in mehrere Sprachen übersetzt worden. Die Texte auf den Installationsdisketten wurden in acht Sprachen übersetzt.
Viel Energie wird in die Web-Präsenz des Projektes[8] gesteckt. Verschiedene Teams übersetzen aktuelle News und allgemeine Texte in ihre Muttersprache und pflegen sie ins Archiv ein. Die Web-Präsenz ist eine der wenigen, die bisher Content-Negotiation nutzen.
Content-Negotiation bedeutet, daß der Browser des Benutzers bei Anforderung einer Seite eine Liste gewünschter Sprachen überträgt. Ist dort z.B. »de« vor »en« gestellt, dann wird die deutschprachige Seite zurückgegeben anstelle der Englischen.
Der Anwender kann niemanden am Telefon regreßpflichtig machen, wenn es Probleme gibt.
Verfügt er jedoch einen Internet-Anschluß, dann kann er auf vielfältige Weise Kontakt zu hilfsbereiten Mitarbeitern und Anwendern aufnehmen. Auch hier engagieren sich die Leute in ihrer Freizeit und sind dadurch erheblich motivierter als wenn Sie für Support angestellt wären.
Die klassische Adresse für allgemeine Probleme ist die englischsprachige »debian-user« Mailing-Liste[6]. Für Deutsche Anwender ist die Deutsche Mailing-Liste[7] gedacht. Auf beide Listen kann sich jeder einschreiben. Beide Listen werden im Web archiviert, so daß sie auch gelesen werden können, ohne auf ihnen eingetragen zu sein.
Darüberhinaus treffen sich viele Entwickler im Internet Relay Chat (IRC), einem Echtzeit-Diskussions-System, auf den Kanälen »#Debian« (auf »irc.debian.org«) und auf »#Debian.DE« (auf »irc.fu-berlin.de«).
Der Erfolg von Debian spiegelt sich in einigen daraus hervorgegangenen Projekten wieder. Die russische Distribution YeS, das französisches "Projet Linux Edu", die italienische Prosa sowie das deutsche Eagle Linux basieren direkt auf Debian GNU/Linux. In Japan stellt Debian-JP Erweiterungen zur Distribution zur Verfügung, die nach und nach in die reguläre Distribution integriert werden.
Corel erstellt darüberhinaus zur Zeit eine eigene Linux-Distribution, die auf Debian GNU/Linux basiert. Der Corel Linux Desktop (CLD) richtet sich direkt an Desktop-Computer.
[2] Filesystem Structure ftp://ftp.infodrom.north.de/pub/Linux/Docs/FSSTND/fsstnd-1.2.txt.gz
[3] Debian Policy Manual ftp://ftp.debian.de/pub/debian/doc/package-developer/policy.text.gz
[4] Bug Tracking System http://bugs.debian.org/
[5] Debian Archiv ftp://ftp.debian.de/
[6] Mailing List Subscription http://www.debian.de/MailingLists/subscribe
[7] Deutche User-Mailing-Liste http://www.Infodrom.North.DE/Debian/debian-user-de.html
[8] Debian Web-Präsenz http://www.debian.de/
[9] Projet Linux Edu http://www.linuxedu.org/
[10] Japanisches Debian http://www.debian.or.jp/
[11] YeS - Russisches Debian http://eugene.mplik.ru/doc/lys/
[12] Prosa http://www.prosa.it/
[13] Eagle Linux http://www.eagle-cp.com/
Slides, Talk by Wichert Akkerman