Philosophie - Geschichte - Technik

Allgemeines

Open Source steht als Sammelbegriff für Software, deren Quellcode frei einsehbar ist. Das ist keine Selbstverständlichkeit! Zwar kann sich jeder ein Windows-Command.com im Editor anschauen, aber was er zu sehen bekommt, sind unlesbare Zeichen – Maschinencode. Dieser ist nicht nur für den Menschen nicht zu entziffern, er ist praktisch auch nicht in (für Menschen lesbaren) Quellcode zurückdechiffrierbar.

Das ist im Allgemeinen auch gut so! Eine Software-Entwicklungsfirma, die ein gutes, nützliches Programm schreibt, will schließlich auch daran verdienen und hat daher ein berechtigtes Interesse daran, dass nicht jeder den Quellcode der Software lesen und kopieren kann.

Was sind also die Vorteile von Open Source? Warum sollte man Open-Source-Software einsetzen? Kann man sich auf Open-Source-Software überhaupt verlassen? Wo bekommt man Support und Hilfe, wenn man Open-Source-Software einsetzt und auf ein Problem stößt?

Fangen wir damit an, die in den Medien teilweise sehr hitzig geführte Disskussion zu diesem Thema noch einmal aufzurollen....

Warum Open Source?

Freedom is just another word for nothing left to lose, singt schon Janis Joplin. Das mag mit ein Grund sein, warum man nicht von freier oder kostenloser Software spricht. Die Neuschöpfung eines Namens für ein Phänomen, das fast so alt ist wie die Computerindustrie, ist im Falle von Open Source kein Marketinggag, sondern der Versuch, einen Begriff zu etablieren, der die Entwickler und Verfechter freier Software der Notwendigkeit enthebt, ständig sowohl zwischen kostenloser Software und freier Software als auch zwischen den verschiedenen Lizenzen freier Software differenzieren zu müssen.

Lizenzbedingungen gibt es sowohl bei kommerzieller Software, als auch im Bereich der freien Software, beinahe so viele verschiedene, wie es Programme gibt. Der Begriff Open Source wurde geprägt, um einen gemeinsamen Namen für jene Lizenzen benutzen zu können, die Freiheit im Sinne der Wissenschaft verkörpern.

Der Begriff Software kann nahezu alles bezeichnen, was auf einem Computer ausgeführt wird. Sowohl das fertige, nur auf einer Architektur ausführbare Programm (Binary) als auch den vom Programmierer geschriebenen, menschenlesbaren Programmtext (Source).

Frei wurde durch "Open" ersetzt, um zu erreichen, dass der Begriff nicht mehr mit "umsonst", sondern mit "offen für alles" assoziiert wird.

Die Wurzeln freier Software

Die Anfänge freier Software sind eng mit den Anfängen der Computerindustrie verknüpft. In einem Kartellrechtsprozess zwischen dem amerikanischen Departement of Justice und AT&T, der sich von 1949 bis 1956 hinzog, wurde AT&T verpflichtet, seine Geschäftstätigkeit auf den Bereich der Telekommunikation zu beschränken und seine Patente gegen nominelle Gebühren an seine Konkurrenten zu lizenzieren. Zu dieser Zeit bestand das Computergeschäft fast ausschließlich aus dem Verkauf und der Wartung von Hardware. Software war ein Nebenprodukt, da die meisten Anwender ihre Software selbst entwickelten. Erst mit der Entstehung der Timesharing-Systeme begann die Softwareentwicklung in der Form, wie wir sie heute kennen. Durch die Entwicklung von Festplatten und Magnetbändern war es erstmals möglich, Programme auf den Computern selbst zu speichern, zu modifizieren und wiederzuverwenden. Diese neue Form der Computernutzung förderte die enge Kooperation der einzelnen Benutzer und den regen Austausch von Programmen.

1969 entwickelten Ken Thompson und Dennis Ritchie in den AT&T Bell Telephone Laboratories die erste Version von Unix. AT&T, an der kommerziellen Verwertung gehindert, lizenzierte Unix für einen nominellen Betrag an Universitäten und gegen astronomische Summen an kommerzielle Nutzer, um einen möglichen Verstoß gegen den Vergleich von 1956 von vornherein auszuschließen. Dazu kamen ausgesprochen vorteilhafte Rahmenbedingungen: kein Support, keine Bugfixes, Lieferung nur gegen Vorkasse.

Das Ergebnis war eine rege Entwicklungstätigkeit im universitären Umfeld. Ein Austausch der Programme war problemlos möglich, da nahezu alle Universitäten über eine Unix-Lizenz verfügten. Durch das Fehlen jeglichen Supports entwickelte sich das Usenet zu einem schnellen und leistungsfähigen Supportnetzwerk der Universitäten untereinander. Als Koordinationsstelle fungierte die Universität von Berkeley, Kalifornien, die einen eigenen Zweig von Unix, die Berkeley Software Distribution (BSD), entwickelte und an andere Universitäten vertrieb. Die erste BSD-Version wurde von Bill Joy, dem späteren Gründer von Sun Microsystems, im Jahr 1978 herausgegeben. Im selben Jahr entstand auch das Internet, damals noch Arpanet genannt, auf der Basis von Unix-Systemen.

Das Jahr 1982 ist das Geburtsjahr des kommerziellen Unix. IBM, HP und DEC veröffentlichen Unix-Versionen unter neuen Namen für ihre eigene Hardware. Bill Joy verlässt die Universität von Berkeley und gründet Sun Microsystems. Das erste Betriebssystem für die neuen Workstations basiert auf BSD 4.2. AT&T kündigt offiziellen Support für Unix an und veröffentlicht die erste kommerzielle Version.

Nach einem weiteren Kartellprozess trennte sich AT&T 1984 von 26 Firmen der Bell-Gruppe und durfte fortan als Mitbewerber im Computergeschäft auftreten. Damit nahm die Ära der liberalen Unix-Lizenzierung, des Zugriffs auf den Quellcode sowie des Austauschs von Programmen und Verbesserungen, ein Ende. Die Lizenzgebühren für Unix wurden drastisch angehoben.

Die Philosophie und die Pragmatik des Open Source

Im Schatten dieser Veränderungen gründete Richard Stallman das GNU-Projekt (GNU is not Unix) mit dem Ziel, ein freies Unix zu schaffen. Als Koordinationsstelle und zur Erwirtschaftung von Einnahmen durch den Versand der im Rahmen des GNU-Projektes erstellten Software und Dokumentation wurde 1984 die Free Software Foundation gegründet.

Stallman betrachtete es als sein natürliches Recht, seine Programme mit seinen Freunden und Kollegen zu teilen, insbesondere vor dem Hintergrund, dass das Verteilen von Software im Gegensatz zu echten Gütern nahezu ohne jeglichen Aufwand und mit nur marginalen Kosten zu erreichen ist. Durch die zu dieser Zeit immer restriktiver werdenden Lizenzen der kommerziellen Softwareanbieter sah sich Stallman an diesem bis dahin üblichen Umgang mit Software gehindert.

Mit der GPL entwickelte Stallman den Begriff des Copyleft, als Wortspiel auf das ihm so unbequeme Copyright. Hauptaufgabe des Copyleft ist sicherzustellen, dass Software, die ihm unterliegt, frei bleibt, d. h. jeder der sie benutzt und weiterentwickelt, hat die gleichen Rechte wie der ursprüngliche Autor. Dieses Ziel stellt die GPL durch die Forderung sicher, dass jedes Programm, das auch nur eine Zeile Code enthält, welcher der GPL unterliegt, wieder der GPL unterliegen muss.

Genau diese Eigenschaft macht die GPL denkbar ungeeignet für die Entwicklung kommerzieller Software, da sie mit jeder anderen Lizenz, die mehr Einschränkungen enthält, inkompatibel ist. Die Akzeptanz freier Software beschränkte sich daher über 10 Jahre lang fast ausschließlich auf den privaten und universitären Bereich. Die sozialistische Grundhaltung und Stallmans ideologische Beharrlichkeit gegenüber Versuchen, die GPL kommerzverträglicher zu gestalten, dürfte weiter zur Ablehnung der GPL von weiten Teilen der Softwareindustrie beigetragen haben.

Als mit dem Erscheinen von Linux das letzte fehlende Element, der Kernel, für das GNU-System verfügbar wurde, stand erstmals in der Geschichte der Datenverarbeitung ein komplett freies Betriebssystem zur Verfügung. Stallmans Ziel war erreicht.

Allerdings fing mit der Verwirklichung dieses Ziels der Ärger erst an. Linux erreichte in kürzester Zeit eine Beliebtheit und Verbreitung, wie sie bei freier Software bis dahin unbekannt war. Viele Benutzer kamen hinzu, die Linux wegen seiner Stabilität und seiner Vorzüge verwendeten, nicht wegen seiner Freiheit.

Mit Linux rückte die freie Software auch in das Blickfeld der kommerziellen Welt. Mehr und mehr kommerzielle Software wurde auf Linux portiert, die Grenzen zwischen freier und nichtfreier Software wurden fließend.

Eric Raymonds Analyse der Entwicklungsmethode der Linux-Kernel-Gemeinde beleuchtete die Effizienz und Wirtschaftlichkeit der offenen Softwareentwicklung. Schwerpunkt Raymonds ist nicht der ideologische Hintergrund, sondern das beeindruckende Entwicklungsmodell, mit dem eine Handvoll Programmierer geschafft hatte, was Stallman und die FSF seit Jahren vergebens versuchten: die Entwicklung eines stabilen und schnellen Unix-Kernels, ohne auf fremden Code zurückzugreifen.

Kein Wunder, dass Raymond schnell die Aufmerksamkeit der Industrie auf sich zog. Raymond war maßgeblich an der Definition der Netscape Public License und der Apple Public License beteiligt. Die freie Software-Gemeinde wurde in zwei Teile gespalten. Die Fraktion der Pragmatiker, die der Ansicht folgt, das Wichtigste sei stabile Software, die an die individuellen Bedürfnisse der Benutzer angepasst und frei verteilt werden darf, steht den Anhängern der reinen Lehre freier Software gegenüber, die Schwächen und Einschränkungen der neuen Lizenzen lautstark anprangern.

Sicherlich bringt die Lizenzinflation neue Probleme mit sich. Welchen Status nimmt Software ein, die Code unter verschiedenen Lizenzen enthält – ein Programm, das beispielsweise durch die Zusammenführung von Code aus Apples Mac OS X Server und Mozilla, dem freien Netscape, entsteht? Verwendet die Benutzeroberfläche dieses neuen fiktiven Programms auch noch die Qt-Bibliothek von Troll Tech, so kommt noch eine dritte Lizenz hinzu. Alle drei Lizenzen bedingen unterschiedliche Einschränkungen.

Wie und ob die Nutzer freier Software dieses Problem lösen, hängt letztlich auch von dem Kooperationswillen der Lizenzgeber, der Softwareindustrie, ab. Zur Zeit gibt es hierzu heftige Diskussionen. Ein Anhänger Stallmans schrieb: Das Schlimmste, das der freien Software passieren kann, ist eine riesige Menge fast freier Software.

Wichtig ist, mit welcher Absicht die Welt der kommerziellen Softwarehersteller in das Open-Source-Entwicklungsmodell einsteigt. Will sie nur schnelle Bugfixes und Verbesserungen, oder schafft sie es, ihre Orientierung von dem kurzfristigen materiellen Vorteil auf langfristig stabile und qualitativ hochwertige Software zu verlagern? Nutzt sie das Know-how der freien Software-Gemeinde nur aus oder steuert sie selbst ihren Teil bei?

Die Antwort auf diese Fragen kann nur die Zukunft bringen und sie hängt stark davon ab, wie bewusst sich die Benutzer und Entwickler freier Software dieses Problems sind. Stallmans Position würde die freie Software wieder in ihre Nische zurückführen. Unter Raymond ist die feindliche Übernahme freier Software durch die Industrie wahrscheinlich. Wie so oft, kann man keiner der Positionen uneingeschränkt zustimmen. Da bei freier Software die Macht aber bei ihren Nutzern und Entwicklern liegt, wird es vom Verhalten der einzelnen abhängen, welchen Weg die freie Software nehmen wird.

Die Vorzüge des Open-Source-Modells

Das größte Gewicht liegt bei den unter dem Namen Open Source zusammengefassten Lizenzen auf dem Recht, den Quellcode nicht nur zu lesen, sondern auch zu verändern und diese Veränderungen zusammen mit dem originalen oder dem veränderten Quellcode wiederum Dritten zugänglich machen zu dürfen.

Erst diese Bedingung kann die synergetischen Effekte hervorbringen, die Eric S. Raymond in seinem Essay "The Cathedral and the Bazaar" (http://www.earthspace.net/~esr/writings/cathedral-bazaar/) als charakteristisch für die Entwicklung freier Software beschreibt.

Das von Raymond beschriebene Modell beruht vornehmlich darauf, die Nutzer eines Programms zu Mitentwicklern zu machen, indem von ihnen vorgeschlagene Änderungen und Korrekturen wiederum in das Programm integriert werden. Diese Idee an sich ist nicht neu. Neu ist allerdings, dass die Nutzer (die laut Raymond zum größen Teil nicht so dumm sind, wie gemeinhin angenommen wird) diese Korrekturen selbst am Programm durchführen und testen, bevor sie sie an den Entwickler des Programms zurückschicken. Im Gegensatz dazu steht die althergebrachte Methode, die Fehlerbeschreibungen der Nutzer nachzuvollziehen, den Fehler zu suchen, und die Korrektur wiederum vom Nutzer testen zu lassen. Schon aus dieser kurzen Beschreibung wird ersichtlich, welche der beiden Methoden die effizientere ist.

Der so beschleunigte Entwicklungsprozess führt zu einer schnelleren Fehlerbehebung und damit zu besseren und stabileren Programmen. Ein solcher Prozess kann aber nur stattfinden, wenn die Nutzer auch Zugang zum Sourcecode des Programms haben und es ihnen erlaubt ist, diesen zu ändern.

Definition von Open Source

Auf der Webseite der Open-Source-Initiative wird der Begriff der Open Source wie folgt definiert (http://www.opensource.org/docs/definition_plain.html):

  • Freie Weiterverbreitung
    Die Lizenz darf niemanden im Verkauf oder in der Weitergabe der Software als Teil einer aus verschiedenen Quellen zusammengesetzten Softwaredistribution einschränken. Die Lizenz darf keinerlei Lizenzgebühren oder andersartige Beiträge verlangen. Indem wir von der Lizenz verlangen, eine freie Weiterverbreitung zu ermöglichen, verhindern wir, dass der Langzeitnutzen zugunsten von Geldmacherei beeinträchtigt wird. Wenn wir dies nicht täten, würde Druck auf Mitwirkende ausgeübt, abtrünnig zu werden.
  • Quellcode
    Das Programm muss den Quellcode beinhalten und sowohl die Verbreitung als Quellcode als auch in kompilierter Form gestatten. Wird ein Teil des Produkts nicht mit Quellcode verbreitet, so muss auf eine Möglichkeit, den Quellcode gebührenfrei aus dem Internet downzuloaden, ausdrücklich hingewiesen werden. Der Quellcode muss in einer Form zur Verfügung gestellt werden, in der ein Programmierer ihn verändern kann. Absichtlich verwirrend geschriebener Quellcode ist nicht erlaubt. Ebenso sind Zwischenformen, wie die Ausgabe eines Präprozessors oder eines Übersetzers, verboten. Wir benötigen Zugriff auf verständlichen Quellcode, weil man Programme nicht weiterentwickeln kann, ohne sie zu verändern. Da wir die Entwicklung einfach machen wollen, müssen wir auch verlangen, dass die Veränderung des Codes einfach ist.
  • Auf dem Programm basierende Werke
    Die Lizenz muss die Veränderung des Programms, auf dem Programm basierende Werke, sowie deren Verbreitung unter den gleichen Lizenzbedingungen gestatten. Allein nur die Möglichkeit zu haben, den Quellcode zu lesen, reicht nicht aus, um eine unabhängige Prüfung und eine schnelle evolutionsähnliche Auslese zu erreichen. Damit eine schnelle Entwicklung möglich ist, muss man mit der Software experimentieren können und Veränderungen weiterverbreiten dürfen.
  • Die Unversehrtheit des Originalcodes
    Die Lizenz darf die Verbreitung von modifiziertem Quellcode nur dann einschränken, wenn sie die Verbreitung von sogenannten Patchdateien in Verbindung mit dem Originalcode gestattet, damit das Programm vor der Benutzung verändert werden kann. Die Lizenz muss ausdrücklich die Verbreitung von Software erlauben, die mit verändertem Quellcode erstellt wurde. Die Lizenz darf allerdings von auf dem Programm basierenden Werken verlangen, einen von der Originalsoftware verschiedenen Namen oder eine andere Versionsnummer zu tragen. Es ist eine gute Sache, Verbesserungen zu unterstützen, aber die Benutzer der Software haben ein Recht darauf zu wissen, wer für das Produkt verantwortlich ist. Andererseits haben die Autoren und deren Unterstützer das Recht zu wissen, welche Software sie überhaupt unterstützen sollen und sie haben das Recht, ihren guten Ruf zu schützen. Folglich muss eine Open-Source-Lizenz garantieren, dass der Quellcode frei verfügbar ist, kann aber gleichzeitig verlangen, dass die Quellcodes in der ursprünglichen Fassung zusammen mit den Patches verbreitet werden. Dadurch können inoffizielle Änderungen verfügbar gemacht und gleichzeitig vom Originalcode unterschieden werden.
  • Keine Diskriminierung von einzelnen Personen oder Gruppen
    Die Lizenz darf keinerlei Personen oder Personengruppen diskriminieren. Um das Maximum aus diesem Verfahren herauszuholen, müssen möglichst viele verschiedene Personen das gleiche Recht haben, zu Open-Source-Software beizutragen. Deswegen ist es jeder Open-Source-Lizenz verboten, jemanden aus dem Verfahren auszuschließen.
  • Keine Einschränkungen für bestimmte Anwendungsbereiche
    Die Lizenz darf niemanden in der Benutzung des Programms in einem bestimmten Einsatzgebiet einschränken. Sie darf beispielsweise nicht die kommerzielle Nutzung oder die Benutzung in der Genforschung verbieten. Der Hauptzweck dieses Paragraphen ist es zu verhindern, dass irgendwelche Klauseln einer Lizenz die kommerzielle Nutzung des Programms verbieten. Wir wollen, dass auch Benutzer des kommerziellen Bereichs zu unserer Gemeinschaft gehören und sich nicht ausgeschlossen fühlen.
  • Verbreitung der Lizenz
    Die zum Programm gehörigen Rechte müssen für jeden gelten, der das Programm erhalten hat, ohne dass eine weitere Lizenz beachtet werden muss. Dieser Paragraph soll verhindern, dass durch indirekte Mittel, wie das Verlangen eines Einverständnisses die Software nicht offen weiterzugeben, die Software nicht wirklich frei ist.
  • Die Lizenz darf nicht für ein bestimmtes Produkt gelten
    Die zum Programm gehörigen Rechte dürfen nicht davon abhängen, dass das Programm Teil einer bestimmten Softwaredistribution ist. Wird das Programm außerhalb einer solchen Distribution genutzt oder verbreitet, so gelten für den Benutzer dieselben Rechte, die in der Originaldistribution gewährt werden. Dieser Paragraph beugt einer anderen Art von Lizenzfalle vor.
  • Die Lizenz darf andere Software nicht beeinträchtigen
    Die Lizenz darf keine andere Software einschränken, die zusammen mit der lizenzierten Software verbreitet wird. Die Lizenz darf beispielsweise nicht verlangen, dass jegliche Software, die auf demselben Datenträger verbreitet wird, Open-Source-Software sein muss. Jeder, der Open-Source-Software benutzen oder weiterverbreiten möchte, hat das Recht, sich seine eigene Software auszusuchen.
    Beispiele für zur Open-Source-Definition konforme Lizenzen sind:
  • Die Lizenz muss technologie-neutral sein
    Kein Teil der Lizenz darf sich auf eine bestimmte Technologie oder einen bestimmten Interface-Stil beziehen. Diese Bestimmung zielt spezifisch auf Lizenzen ab, die eine ausdrückliche Geste der Einwilligung zwischen Lizenzgeber und Lizenznehmer erfordern. Derartige Lizenzen können die Codewiederverwendung behindern bzw. mit im Internet gängigen Methoden der Code-Verbreitung in Konflikt stehen. Lizenzen müssen die Option offenlassen, dass a) Verteilung des Codes über Wege außerhalb des Webs möglich ist und b) der wiederverwendete Code (bzw. die Teile des Codes, die wiederverwendet werden) in einer Nicht-GUI-Umgebung, die keine Pop-up-Systeme unterstützt, laufen können.

Verschiedene Open-Source-Lizenzen

Viele Programmierer haben in der Vergangenheit zum heute verfügbaren Fundus an freier Software beigetragen. Einige haben nicht nur programmiert, sondern sich auch mit den gesellschaftlichen und sozialen Konsequenzen ihres Schaffens befasst. Wie so oft, wenn ein Thema den wissenschaftlich beweisbaren Rahmen verlässt, gewinnen persönliche Ansichten und Erfahrungen an Bedeutung. Auch bei der Diskussion um freie Software ist dieses Phänomen zu beobachten. Das Resultat sind verschiedene Lizenzen, die alle das Ziel haben, Programmierern wie Anwendern (die Grenze ist oft fließend) Software mit möglichst wenigen Einschränkungen zur Verfügung zu stellen und gleichzeitig ihren Fortbestand und ihre Weiterentwicklung zu sichern oder zumindest zu vereinfachen. Aus den unterschiedlichen Vorstellungen entstanden verschiedene Lizenzen.

  • Public Domain
    stellt im Sinne von Open Source keine Lizenz dar. Es bedeutet im wesentlichen, dass der Autor auf jeglichen Einfluss auf sein Werk verzichtet. Der im Deutschen am ehesten vergleichbare Begriff ist der der Gemeinfreiheit, sie bedeutet, dass jeder alles damit machen kann.
  • Die BSD License
    ist eine der ältesten Lizenzen und schränkt sowohl Programmierer als auch Anwender nur insofern ein, als die ursprünglichen Autoren genannt werden müssen. Hauptpunkt der Lizenz ist der Ausschluss von Haftungsansprüchen gegenüber den Programmierern. Sourcecode, der der BSD-Lizenz unterliegt, kann in eigenen Entwicklungen benutzt werden, ohne dass diese wiederum freie Software sein müssen. Die BSD-Lizenz stammt von der Universität von Berkeley. BSD steht für Berkeley Software Distribution.
  • Die GNU General Public License (GPL)
    hat sozusagen politische Ziele, da sie neben den schon bekannten Haftungsausschlüssen auch noch die Forderung enthält, dass alle Weiterentwicklungen und alle Programme, die in irgendeiner Form unter der GPL lizenzierten Code enthalten, wiederum unter der GPL veröffentlicht werden müssen. Diese Eigenschaft hat ihr den Spitznamen GNU Public Virus eingetragen. Dahinter steht nicht nur der Nutzen für die freie Software, sondern auch eine politische Motivation im Umgang mit dem Copyright. Aus Sicht der GPL verhindert das Copyright den natürlichen Umgang mit anderen Computernutzern, da es einigen Privilegien einräumt (denjenigen, die eine Software lizenziert haben). Ferner verbietet die GPL auch das Hinzufügen weiterer Einschränkungen, die in irgendeiner Form auf unter der GPL stehendem Quellcode basieren. Diese Einschränkung macht GNU-Software, insbesondere die Bibliotheken, im wesentlichen für eine Verwendung im kommerziellen Umfeld unbrauchbar. GNU ist ein rekursives Akronym und steht für GNU is not Unix.
  • Die GNU Library General Public License (LGPL)
    entspricht im wesentlichen der GPL, mit der Ausnahme, dass Programme, die lediglich mit einer der LGPL unterliegenden Bibliothek verbunden werden, nicht als abgeleitete Arbeit im Sinne der GPL betrachtet werden. So wird die Verwendung von durch LGPL geschützten Bibliotheken zur Entwicklung kommerzieller bzw. nicht der GPL unterliegender Software ermöglicht. Änderungen an der Bibliothek selbst müssen allerdings wieder der LGPL unterliegen. Software, die der LGPL unterliegt, bietet damit bessere Möglichkeiten für eine Verbindung zwischen freien und kommerziellen Entwicklungen.
  • Die QPL, NPL und andere
    sind meistens Derivate der drei zuvor genannten Lizenzvereinbarungen. Sie folgen dem Geist der GPL mit der Ausnahme, dass sie den Lizenzgebern andere Bedingungen gewähren als allen anderen Nutzern.

Einige populäre Open-Source-Projekte:

Avalaris setzt alle diese Projekte bei Beidarf zum optimalen Nutzen unserer Kunden ein und bietet auch Support dafür:

  • GNU
    Als AT&T 1983 anfing, in Bezug auf Lizenzen für UNIX restriktiver zu werden, begann Richard Stallman vom MIT mit dem umfassenden Projekt, eine komplett freie Alternative namens GNU zu schaffen. Stallman gründete dafür auch die sogenannte Free Software Foundation, um die Idee zu unterstützen, dass Quellcodes für alle Programme immer frei verfügbar sein sollten. Er entwickelte dazu eine Lizenz namens GNU Public License (GPL), die festlegt, unter welchen Bedingungen Quellcodes verfügbar sein sollen, und dass jedes Programm, das GPL-Code beinhaltet, der GPL unterliegt. Hunderte von Programmierern entwickelten neue Open-Source-Versionen der meisten UNIX-Utilities. Allerdings schlug der Versuch fehl, einen UNIX-Kernel zu entwickeln. Einige der GNU-Utilities waren so leistungsfähig, dass sie de-facto- Standards auf fast allen UNIX-Systemen geworden sind. Besonders der GNU-C-Compiler gcc wurde der dominierende C-Compiler und GNU Emacs der führende Editor. Die GPL erlaubt es sogar, die Software zu verkaufen, solange die Quellcodes verfügbar sind. Allerdings können Vertreiber in der Praxis nur geringe Gebühren für Vervielfältigungskosten berechnen. Zudem führte der Zusatz, dass jedes Programm, das GPL-Code enthält (inkl. Libraries), ebenfalls im Quellcode verfügbar sein muss, zu dem Ergebnis, dass der gcc-Compiler nicht eingesetzt werden durfte, um kommerzielle Applikationen zu erstellen. Es gab daraufhin eine modifizierte GPL (die LGPL), die dieses Problem löste, aber der zu dogmatische Ansatz der FSF führte dazu, dass immer mehr Entwickler freier Software liberalere Lizenzen entwarfen, um eine kommerzielle Verwertung zu vereinfachen. Die Firma Cygnus Support verkauft kommerzielle Support-Dienstleistungen für GNU-Software. GNU-Utilities sind integraler Bestandteil aller Linux-Distributionen. Von vielen wird Richard Stallman als der Vater der freien Software betrachtet. Er ist Präsident der Free Software Foundation, er gründete 1984 das GNU-Projekt und war der Hauptentwickler von GNU Emacs, dem GNU-C-Compiler, dem GNU-Debugger und Teilen anderer Software-Pakete. Er ist weiterhin für GNU Emacs verantwortlich. Andere, wie zum Beispiel Eric S. Raymond, haben sich auch am GNU-Projekt beteiligt. Informationen zum GNU-Projekt gibt es im Internet unter folgender URL: http://www.fsf.org.
  • FreeBSD
    FreeBSD stammt von Berkeley-Software-Distribution-UNIX ab. Es begann im Jahr 1993 als eine Portierung des BSD-4.3-Lite-Release auf eine Intel-Plattform. Das FreeBSD-Projekt war dazu gezwungen, jedes Aufsetzen auf das 4.3BSD-Lite (Net/2-Release) zu umgehen und vollständig das letzte BSD-Release (4.4 Lite2) zu benutzen. Dies wurde mit dem FreeBSD-2.0-Release erreicht. Das Projekt wurde von der Firma Walnut Creek CD-ROM massiv unterstützt, weil sie großes Interesse daran hatte, die neue Version zu vertreiben. "Ohne Walnut Creek CD-ROM und ihre absolute Treue zu einem damals noch vollkommen undefinierten Projekt, wäre FreeBSD nie soweit gekommen wie es jetzt ist", sagt Jordan K. Hubbard. Bis zum heutigen Tag unterstützt Walnut Creek das Projekt finanziell, zusammen mit einer wachsenden Anzahl von Benutzern, die Spenden schicken. Das FreeBSD-Projekt besteht aus einem harten Kern von 16 Entwicklern, die den Vorstand bilden. Es gibt mehr als 120 Entwickler, die an dem Projekt arbeiten, die meisten davon unentgeltlich. Einige werden von ihren Arbeitgebern, die ein eigenes Interesse an FreeBSD haben, bezuschusst. Das Ziel von FreeBSD ist es, Quellcodes mit den geringstmöglichen Restriktionen zu verteilen. Der Großteil des Systems wird unter der Original-BSD-Lizenz vertrieben, die sowohl den kommerziellen und als auch den freien Einsatz der Software erlaubt. Die verbleibenden Teile sind unter der GNU Public License, der Artistic License und anderen Lizenzen erhältlich. Hubbard ist der Ansicht, dass es die größte Herausforderung für FreeBSD ist, langsam zu wachsen, ohne die Infrastruktur des Projekts zu überlasten, und mehr auf die Bedürfnisse der Kunden einzugehen, so wie es eine kommerzielle Firma machen würde. Er sagt: "Wir wollten immer kommerzieller sein als die richtig kommerziellen Betriebssysteme, ohne allerdings Geld ins Spiel zu bringen". Das ist eine sehr interessante Herausforderung. Hubbard schätzt konservativ, dass FreeBSD mindestens 1,5 Millionen Benutzer hat. Japan ist mit Abstand der größte Markt. Mehr Informationen zum FreeBSD-Projekt bzw. dessen Geschichte (A Brief History of FreeBSD) gibt es unter http://www.freebsd.org/handbook/handbook3.html#3 von Jordan K. Hubbard. Die gesamte Web-Site http://www.freebsd.org enthält so ziemlich alles über das FreeBSD-Projekt.
  • Linux
    Die Zeitschrift Wired bezeichnete Linux als "The Greatest Operating System That (N)Ever Was" – eine Beschreibung, die gleichzeitig die Bedeutung von Linux und seinen Aufstieg als freies Sofware-Projekt aus dem Nichts anspricht. Das Betriebssystem wurde von Linus Torvalds entwickelt, auch um anderen Programmierern zu beweisen, dass es durchaus sinnvoll ist, ein Betriebssystem von Grund auf neu zu schreiben und dass manchmal der eigene Weg der einzig richtige ist. Linux ist so bemerkenswert, weil seine Entwicklergemeinde international zusammengesetzt ist und trotzdem ein sehr hohes Niveau der Kooperation aufweist. Im Mittelpunkt steht Linus Torvalds, vormals aus Helsinki, Finnland. Während sich UNIX schnell in mehrere Dutzend Versionen aufteilte, was zu Verwirrung bei Managern und Programmierern führte, hat es Linux geschafft, als ein einheitliches System auf mehreren Architekturen zu bestehen. Es bietet eine UNIX-ähnliche Plattform, die es den Programmierern erlaubt, die beste Maschine auszusuchen, um produktiver zu arbeiten. Die kommerzielle Reichweite von Linux ist schwer einzuschätzen, aber man kann zweifellos feststellen, dass viele, die früher auf UNIX setzten, nun Linux einsetzen. Viele sind der Ansicht, dass Linux die einzige Alternative zu Microsofts NT/2k/XP darstellt. In der Tat fangen immer mehr Hersteller von Multi-User-Software an, ihre Software auf Linux zu portieren, wie z. B. Oracle, Informix, SAP R/3, Corel, Netscape etc. Einige Hardware-Hersteller, wie z. B. SUN und IBM, liefern ihre Maschinen auf Wunsch mit Linux aus. Für SUN gibt es bei den billigsten Maschinen gar keine Portierung ihres eigenen Solaris-Betriebssystems mehr. Die Firmen Red Hat (http://www.redhat.com/) und Mandrake (http://www.mandrakelinux.com/de/) vertreiben verschiedene Versionen von Linux, in Deutschland ist die S.u.S.E.-Distribution (http://www.suse.de) sehr populär. Diese Distributionen enthalten teilweise auch kommerzielle Programme, die nicht frei sind. Die Debian-Linux-Distribution (http://www.debian.org) enthält ausschließlich Programme, die unter einer Open-Source-Lizenz veröffentlicht werden. Informationen zu Linux sind unter den Adressen http://www.linux.de und http://www.linux.org verfügbar. Interessante Zusätze zu Linux sind auf http://www.linuxresources.com zu finden, wöchentliche Rückblicke und News aus der Linux-Welt auf http://lwn.net/. Linus Torvalds ist nicht mehr ausschließlich mit Linux beschäftigt. Er arbeitet in der Halbleiterindustrie, weil er beschlossen hat, seinen Lebensunterhalt nicht mit Linux zu verdienen.
  • DNS und BIND
    Der BIND-Daemon (Berkeley Internet Name Daemon) ist außerhalb der Technikerelite fast völlig unbekannt, aber jeder kennt die Dienstleistung, die er zur Verfügung stellt: das Domain Name System (DNS). Der Verbund von Name-Servern ermöglicht die Umsetzung von Adressen wie 207.25.98.191 in eine Form, die jeder versteht, wie beispielsweis ibm.com, harvard.edu oder whitehouse.gov. Ursprünglich von Paul Mockapetris im Jahr 1984 entwickelt, wird die Entwicklung von DNS zur Zeit vom ISC (Internet Software Consortium) gesteuert. Das ISC wurde 1993 von Rick Adams (mit Paul Vixie und Carl Malamud) gegründet, als er die Firma UUNET von einer Non-profit-Organisation in eine kommerzielle Firma umwandelte. Das ISC ist ein gutes Beispiel dafür, was mit ausgereifter freier Software passiert: Sie trägt dann einen Non-profit-Mantel – den gleichen Effekt kann man bei HTML und HTTP erkennen. DNS und der Rest der Berkeley-TCP/IP-Software-Suite ist die Grundlage für die gesamte Internet-Industrie, einschließlich aller Internet- Service-Provider, Produzenten von Web-Sites und vieler Softwarefirmen. Die erste Geschäftsidee in Bezug auf das Internet entstand in Form von Firmen wie UUnet, den ersten kommerziellen Internet-Service-Providern. UUnet wurde 1997 an WorldCom in einer Multimilliarden-Dollar-Transaktion verkauft. BIND ist fester Bestandteil aller UNIX-Systeme, und auch Microsoft liefert eine NT-Version von BIND aus. Paul Vixie ist Leiter der Vixie Enterprises, einer Consulting-Firma in Redwood City, Kalifornien. Der URL hierzu ist http://www.isc.org.
  • Sendmail
    Sendmail wurde ursprünglich 1981 von Eric Allman entwickelt und ist mit ca. 75-80% Marktanteil der dominierende Mail Transport Agent (MTA) im Internet. Unabhängig davon, welches Programm genutzt wird, um die Mail zu erstellen, wird fast jede Mail, die außerhalb der Firma zugestellt werden muss, mit Hilfe von sendmail weitergeleitet. Im November 1997 gründeten Eric Allman und Greg Olson mit einigen privaten Geldgebern Sendmail Inc., um eine kommerzielle Version von sendmail herzustellen. Die Firma wird weiterhin den kostenlosen Freeware-MTA herstellen. Die kommerziellen Teile werden eine Web-basierte Administrationsoberfläche und andere Management-Tools sein. Sendmail 8.9 beinhaltet ein umfassendes Tool, um Spam-Mails zu kontrollieren. Eric Allman ist selbst überrascht vom Erfolg von sendmail: "Ich muss gestehen, dass es mich erstaunt, dass sendmail so erfolgreich ist. Die Ursache ist nicht eine massive Marketingorganisation oder ein großes Budget. Ich glaube, es gibt drei Gründe: Erstens, sendmail ist immer davon ausgegangen, dass es auch Mail-Nachrichten akzeptieren, bereinigen und zustellen sollte, die in Bezug auf die Einhaltung der Protokolle nicht ganz einwandfrei sind. Ich hielt dies für wichtig, weil ich UUCP-Mail ins ARPANET bringen wollte. Zu der Zeit war das ARPANET klein, das Usenet war die totale Anarchie (manche sagen, dass dies heute noch so ist ...) und UNIX-Mail-Programme verstanden noch nicht einmal Mail-Header. Auf diese Weise war es zwar schwieriger, aber das Ziel war Kommunikation, nicht Pedanterie. Zweitens habe ich mich auf die Routing-Funktion beschränkt. Ich wollte keine Zustellungsagenten oder Front-Ends schreiben. Dies war eine Abweichung vom damals gängigen Modell, wo das Mail-Routing, die Zustellung und auch oft der Netzwerkcode im gleichen Benutzeragenten implementiert waren. Natürlich war auch entscheidend, dass es sendmail unentgeltlich gab, dass es zur richtigen Zeit erhältlich war und dass es so funktionierte, wie es sollte. Drittens war die sendmail-Konfigurationsdatei flexibel genug, um sich an eine rapide verändernde Welt anzupassen. Sie ist dynamisch, weil die Welt dynamisch ist. Eines Tages wird sendmail wie X11 sterben, aber ich werde nicht den Atem anhalten, während ich darauf warte." Die umfangreichsten Informationen zu sendmail gibt es zum einen unter http://www.sendmail.org und für die kommerzielle Version unter http://www.sendmail.com.
  • Apache
    Apache ist eines der überraschendsten und erfolgreichsten freien Software-Projekte. Als die Produktpläne von Netscape und Microsoft die industriellen Schlagzeilen beherrschten, wurde Apache durch simple Mundpropaganda und durch die Verbreitung über das Internet zu dem am weitest verbreiteten Webserver. Als bescheidenes Unternehmen ohne einen zentralen Visionär bricht Apache mit den Regeln, die für normale Projekte freier Software gelten. Das Apache-Projekt entstand aus der Einsicht, dass die Kontrolle über die Quellcodes für Web-Server-Software entscheidend ist, um mit den schnellen Änderungen im Web Schritt zu halten. Während kommerzielle Firmen heutzutage immer wieder ihre Richtung ändern und ihre Prioritäten neu bestimmen, hat das Apache-Projekt bemerkenswerte Stabilität gezeigt und treu die Bedürfnisse der Benutzer erfüllt – deshalb hält es nach wie vor die Spitzenposition als der meist benutzte Web-Server. Im Juni 1998 hat IBM seine offizielle Unterstützung für die Apache-Gruppe angekündigt. IBM liefert Apache im Rahmen seines Web-Sphere-Produktes aus. Die Ankündigung von IBM war ein wichtiger Schritt, mit dem die freie Software-Bewegung viel an Akzeptanz in der kommerziellen Entwicklungsumgebung gewonnen hat. Brian Behlendorf ist der Pressesprecher der Apache-Gruppe, und obwohl er nie eine einzige Zeile Code geschrieben hat, gilt er als einer der führenden Köpfe des Projektes. Schon weniger als ein Jahr nach dem ersten Apache-Release im Jahr 1995 hatte Apache den NCSA-httpd-Server vom ersten Platz verdrängt. Mehr Informationen zu Apache gibt es unter http://www.apache.org.
  • Samba
    Ein erstes Release von Samba war 1993 verfügbar. Samba ermöglicht es einer UNIX-Maschine, als File- und Druck-Server für Windows-NT- und Windows-95/98-Clients auf einem Netz tätig zu werden. Es ersetzt somit einen NT-Server und macht PC-NFS auf den Clients überflüssig. Samba wurde von Andrew Tridgell an der Australian National University entwickelt, und es stießen andere Entwickler dazu, als er den Code im Internet verfügbar machte. Zur Zeit ist Jeremy Allison, der bei SGI arbeitet, das einzige bezahlte Mitglied im Team der Samba-Entwickler. Ähnlich wie Linux wird Samba zur Zeit von der sogenannten Samba-Gruppe weiterentwickelt. Samba wird unter der GNU GPL vertrieben und es gibt immer zwei Releases: ein stabiles Release und eine Alpha-Version. Zur Zeit gibt es das Samba-Release 2.03 - in der Tat zeigte dieses Release, wie schnell die Entwicklergemeinde auf Probleme reagieren kann. Samba 2.0 wurde nämlich mit einem schlimmen Bug im Signal-Handling ausgeliefert. Innerhalb von drei Tagen konnte dieser Bug und dazu noch einige andere repariert werden. Auf diese Weise machte Samba innerhalb von drei Tagen den Sprung von 2.0 auf 2.02. Diese schnelle Reaktionszeit wird im Netz als massiver Vorsprung gegenüber Firmen wie Microsoft oder Netscape gewertet, die kaum innerhalb so kurzer Zeit auf das Problem reagieren hätten können. Das 2.02er-Release von Samba unterstützt erstmalig Samba in der Rolle als Microsoft Primary Domain Controller: Diese undokumentierten Protokolle werden von Microsoft bewusst zurückgehalten. Somit gibt es keinen Grund mehr, für solche Dienste einen NT-Server zu beschaffen. Samba wird von vielen Firmen eingesetzt, siehe dazu die Statistiken unter http://samba.anu.edu.au/pub/samba/survey/ssstats.html/. SGI unterstützt Samba durch einen bezahlten Entwickler – und zur Zeit stellen SGI-Server mit Samba die schnellsten NT-File-Server dar. Weitere Infos zu Samba, auch über den wichtigsten Kopf, Andrew Tridgell, der gerne in Pizza-Coupons bezahlt wird, gibt es unter folgender URL: http://samba.anu.edu.au/samba/.
  • Perl
    Perl (Practical Extraction and Report Language, im Scherz auch Pathologically Eclectic Rubbish Lister) wurde 1986 von Larry Wall entwickelt und ist ein wichtiges Werkzeug für System- und Netzwerk-Administratoren, sowie zur CGI-Programmierung. Perl wird oft als das Klebeband des Internets bezeichnet, weil es sozusagen als Klebstoff mehrere Prozesse zusammenfügt. Große Sites wie Yahoo, Netscape, CNET, Amazon und Excite benutzen Perl, um ihre Web- Sites zu managen und interaktive Dienste zur Verfügung zu stellen. Perl wird von einer Gruppe von ca. 100 Programmierern weiterentwickelt, die über die perl5porters-Mailing-Liste miteinander kommunizieren. Perl wird mit vielen UNIX-Systemen ausgeliefert, zudem ist es Teil des Microsoft NT Resource Kit. Perl ist die am häufigsten benutzte Sprache zur Entwicklung von Internet-Diensten und interaktiven Datenbankabfragen. O'Reilly publiziert eine Vielzahl von Perl-Büchern und veranstaltet jährlich eine große Perl-Konferenz. ActiveState Tool Corp. vertreibt die Standarddistribution sowie Profi-Tools für Perl für Win32-Systeme. Es gibt etwa 500.000 Perl-Programmierer und viele Millionen Perl-Anwender. Aufgrund der Buchverkäufe geht O'Reilly davon aus, dass Perl mindestens ebenso oft genutzt wird wie Java. Die wichtigsten Perl-Web-Sites sind http://www.perl.com und http:www.perl.org. Larry Wall hat eine persönliche Web Site (http://www.wall.org), wo er z. B. das Tagebuch seiner kürzlich überstandenen Hornhaut-Transplantation veröffentlichte.
  • Python
    Python ist eine interpretierte, objektorientierte Sprache, die ein weiteres Beispiel der typischen Open-Source-Entwicklung ist: Python fing als ein kleines Tool an und wurde recht schnell zu einem universellen Werkzeug. Guido von Rossum, der Chefentwickler von Python, sieht es als eine verbesserte Perl-Version. Vor kurzem wurde Jpython 1.0, eine vollständige Integration von Python mit Java, herausgebracht. Mit Jpython können Python-Programme überall dort verwendet werden, wo ein Java-Interpreter läuft. Die Python-Home-Page ist unter http://www.python.org zu finden.
  • Tcl/Tk
    John Ousterhout begann seine Arbeit an Tcl/Tk, als er Professor an der University of California in Berkeley war. Er wechselte dann zu Sun Microsystems, die Interesse an Sun Script, einer kommerziellen Scripting-Sprache, hatten. Zur Zeit hat Ousterhout seine eigene Firma namens Scriptics, um ähnlich wie Sendmail Inc. die Entwicklung der Sprache voranzutreiben, während er auch kommerzielle Aspekte abdecken will. Wie Perl und Python ist Tcl eine Script-Sprache - die Tool Command Language. Von Anfang an wurde Tcl mit Tk verbunden, um die Programmierung grafischer Oberflächen zu erleichtern. Ursprünglich kommt Tk aus der X-Windows-Welt (X11), aber in der Zwischenzeit wird auch das Windows- und Macintosh-Interface unterstützt. 1997 gewann Tcl/Tk den Software Systems Award, der von der Association for Computing Machinery (ACM) vergeben wird. Es gibt zur Zeit zwischen 500.000 und einer Million Tcl/Tk-Entwickler. Pro Woche finden ca. 12.000 Downloads von Tcl/Tk vom Scriptics-FTP-Rechner statt, wobei die Plattform-Verteilung wie folgt aussieht: 65% Windows, 30% UNIX und 5% Macintosh. Von den drei Skript-Sprachen scheint Tcl/Tk der designierte Nachfolger der Windows-Entwicklungsumgebungen zu werden. Die hervorragende Unterstützung von grafischen Benutzeroberflächen könnte auch Visual-Basic-Anhänger ansprechen. Zudem bietet eine solche Sprache viele nützliche Erweiterungen, die jedem Entwickler enorm viel Arbeit und Zeit sparen können. Mehr Informationen unter http://www.tclconsortium.org, dort findet man die Software und Standards. http://www.scriptics.com ist die Web-Site von John Ousterhouts Firma. Unter http://www.NeoSoft.com/tcl findet man viele Shareware-Module zu Tcl.
  • Das K Desktop System
    http://www.kde.org ist die Web-Site des KDE (K Desktop Environment) für UNIX-Workstations. Es verbindet einfache Benutzung und hervorragendes grafisches Design mit der technologischen Überlegenheit des UNIX-Systems und wird inzwischen mit fast allen Linux-Distributionen ausgeliefert.
  • GNOME: GNU Network Object Model Environment
    Unter http://www.gnome.org findet man das GNU-Projekt, welches das Ziel hat, einen Desktop zu entwickeln, der ausschließlich auf freier Software basiert. GNOME benutzt das GTK (GNU GUI Toolkit) für alle GNOME-kompatiblen Programme. Dieser Desktop wird von Red Hat unterstützt.
  • GIMP: das GNU-Image-Manipulation-Programm
    The Gimp (GNU Image Manipulation Program) wird häufig als das freie Photoshop bezeichnet. Es ist Bestandteil der meisten Linux-Distributionen. Das leistungsfähige Werkzeug zur Bildbearbeitung kann für Fotoretusche, Bildkomposition und Bildmanipulation eingesetzt werden. Es wurde unter der GNU General Public License (GPL) veröffentlicht. Informationen unter http://gimp.org.
  • GnuPG
    GnuPG (GNU Privacy Guard) ist de facto der Standard in Sachen Verschlüsselungssoftware. Der Autor, Phil Zimmermann, wählte das Modell der freien Software, um eine weite Verbreitung seiner Software sicherzustellen. Er hielt dies für wichtig, um Regierungskontrolleure daran zu hindern, diese Software einzuschränken. Die Web-Seiten sind unter http://www.gnupg.org/ zu finden.
  • AMANDA
    Der Advanced Maryland Automatic Network Disk Archiver. Eine Backup-Lösung, über die ein zentraler Master-Backup-Server mehrere Netzwerkfilesysteme auf Band oder Festplatte sichern kann. Avalaris widmet diesem Projekt einen eigenen Abschnitt auf unserer Homepage. Siehe auch: http://www.amanda.org

nach oben  Zurück nach oben