Freie Software: Freiheit, Zusammenarbeit und Gemeinschaft

In diesem Beitrag geht es um Richard Stallmans Vorstellungen von Freiheit in Bezug auf Software und das GNU-Projekt. Die Geschichte der Freien Software und des GNU-Projektes beginnt mit einer Anekdote, die die Veränderungen in der Welt der Software beschreibt.

In diesem Beitrag geht es um Richard Stallmans Vorstellungen von Freiheit in Bezug auf Software und das GNU-Projekt. Die Geschichte der Freien Software und des GNU-Projektes beginnt mit einer Anekdote, die die Veränderungen in der Welt der Software beschreibt. Mit dieser Anekdote begründet Richard Stallman selbst sein Engagement, weshalb sie häufig dort wiedererzählt wird, wo die Geschichte Freier Software beschrieben wird[1] :

Stallman war 1971 an das Artifical Intelligence (AI oder KI für Künstliche Intelligenz) Labor des Massachusetts Institute of Technology (MIT) gekommen. Stallman, der eigentlich Physik in Harvard studierte, hatte schon in der Schulzeit Interesse an Computern gehabt und das AI Lab war mit den damals modernsten Computern ausgestattet. Obwohl er nicht zu den Studierenden am Labor gehörte, wurde ihm gestattet die Computer zu nutzen – zu dieser Zeit war dies nicht so ungewöhnlich, wie es das heute wäre. Am AI Lab gab es damals eine Gemeinschaft von Forschern und Interessierten, die als Hackergemeinschaft von Steven Levy in seinem Buch Hackers[2] beschrieben wurde. In diese Gemeinschaft wuchs Stallman hinein und sie sollte ihm später als Vorbild für seine Vorstellung der Freien Software Gemeinschaft dienen.

Für die PDP-10 des Labors hatte die Gemeinschaft ein eigenes Betriebssystem geschrieben, das unter dem Namen „Incompatible Timesharing System“ (ITS)[3] bekannt war. Als Mitglied der Gemeinschaft – und inzwischen Angestellter des AI Labs – hatte Stallman selbst daran mitgeschrieben. Mit den Veränderungen in der Softwarewelt allgemein, wie sie im letzten Kapitel beschrieben wurden, kamen auch Veränderungen für die Nutzergemeinschaft am AI Lab: Den Übergang zur Ära der proprietären Software markiert für Stallman ein Geschenk, das aus seiner Sicht nicht wirklich ein Geschenk war. Die Firma Xerox hatte dem Labor einen der ersten Laserdrucker geschenkt – eine Maschine, die auf einen Fotokopierapparat zurückging und die meisten Drucker der damaligen Zeit an Qualität und vor allem Geschwindigkeit übertraf. Der Drucker stand wie der Computer in einem eigenen Raum und konnte von jedem Arbeitsplatz aus genutzt werden. Das Problem hierbei war, dass der Drucker bei derart intensiver Nutzung häufig Papierstaus hatte, die nicht im System gemeldet wurden. Das Drucken mit diesem Drucker konnte also lästig werden, da ständig jemand nachsehen und die Staus beseitigen musste.

Normalerweise hätte sich bald einer der Programmierer daran gemacht, eine Lösung für dieses Problem zu schaffen. Dieser Drucker hatte aber einen proprietären Treiber, was hieß, dass der Sourcecode nicht zur Verfügung stand. Auch auf Nachfrage beim Hersteller war dieser nicht zu erhalten und, für Stallman noch schlimmer, ein Kollege der Carnegie Mellon Universität, der Zugang zum Sourcecode des Treibers besaß, hatte ein „non-disclosure agreement“ (NDA, Geheimhaltungsvereinbarung) unterzeichnet. Mit diesem NDA hatte er – wie Stallman es ausdrückt – eine Verabredung unterzeichnet, die ihm vorschrieb, dass er sich weigern musste mit „so ziemlich der gesamten Weltbevölkerung zu kooperieren“.[4]

Stallman beschreibt seine Reaktion darauf wie folgt: „I was stunned. […] I was angry, and I had no idea how I could do justice to it. […] And I thought about it later on, because I realized I was seeing not just an isolated jerk, but a social phenomenon that was important and affected a lot of people. […] And the lesson it taught me was that non-disclosure agreements have victims. They’re not innocent“.[5]

Zwei weitere Erlebnisse sollten Stallman dann zur Gründung des GNU-Projektes führen. In The collapse of the community[6] beschrieb er, wie in den frühen 1980er Jahren die von ihm so geschätzte Gemeinschaft langsam zerfiel. Zum einen wurde im Jahr 1981 die Firma Symbolics gegründet, um den im AI Labor entwickelten LISP Rechner[7] zu vermarkten. Mit den Gründern der Firma ging ein großer Teil der Belegschaft des Labors, so dass dieses fast völlig verlassen war. Zum anderen wurde ITS 1982 durch ein proprietäres Betriebssystem ersetzt. Diese Entwicklungen stellten Stallman vor eine Entscheidung, die er als „stark moral choice“ beschreibt, und die zur Gründung sowohl des GNU-Projektes als auch der Free Software Foundation (FSF) führten.

Im Folgenden wird die Gründung des GNU-Projektes und der Foundation nachvollzogen, der Begriff der „Freien Software“, wie er dort gebraucht wird, erklärt und die rechtliche Umsetzung des Begriffes und der mit ihm verbundenen Ideale beschrieben.

GNU-Projekt und Free Software Foundation

Stallman musste sich also entscheiden, ob er – wie viele seiner alten Weggefährten – in einer Firma arbeiten wollte, die ihm wahrscheinlich auch ein NDA abverlangen würde. Wollte er dies nicht, so konnte er versuchen Arbeit außerhalb der Softwareproduktion zu finden, was ihm aber wie eine Verschwendung seiner Möglichkeiten vorkam. Beides wäre mit Einschränkungen seiner eigenen Überzeugungen verbunden gewesen und keiner der beiden Wege hätte ihm die verlorengegangene Gemeinschaft, die er in seinen Beschreibungen immer in den Mittelpunkt stellt,[8] wiedergebracht.

Die nächste Frage war also, wie er seine Möglichkeiten einsetzen konnte, um wieder eine Gemeinschaft kooperierender Hacker aufzubauen. Was neben der Gemeinschaft selbst und der Freiheit diese Gemeinschaft aufrechtzuerhalten fehlte, war ein Projekt, wie es dies am AI Lab mit dem ITS gegeben hatte: „what was needed first was an operating system. That is the crucial software for starting to use a computer. […] With a free operating system, we could again have a community of cooperating hackers – and invite anyone to join“.[9] Seine Erfahrungen als Betriebssystementwickler prädestinierten ihn dazu – in seiner Lage und mit seinem Unwillen – ein solches Unternehmen anzufangen: „So I felt, ,I’m elected. I have to work on this. If not me, who? ‘ So I decided I would develop a free operating system, or die trying … of old age, of course“.[10]

Die Entscheidung bei dem zu schreibenden freien System dem Design der Unix-Varianten zu folgen scheint im Rückblick logisch.[11] Für ein freies System war es wichtig auf möglichst vielen Computerarchitekturen zu laufen und UNIX hatte sich bereits als extrem portierbar erwiesen. Durch sein Design – viele einzelne Programme, die miteinander über definierte Schnittstellen verbunden sind – konnte das alte System Stück für Stück durch das neue ersetzt werden. Außerdem hatte die DARPA 1980 BSD und UNIX zum Standard der im ARPANET zusammengeschlossenen Rechner gemacht. Das hatte das System noch bekannter gemacht als es vorher schon war.

So logisch war diese Entscheidung für Stallman nicht. Er hatte zu diesem Zeitpunkt noch nicht mit UNIX gearbeitet und war von einigen Eigenschaften des Systems nicht überzeugt. Weshalb er sich trotzdem entschied mit seinem OS zu UNIX-kompatibel[12] zu werden, erklärte er in seinem GNU Manifesto:

„Unix is not my ideal system, but it is not too bad. The essential features of Unix seem to be good ones, and I think I can fill in what Unix lacks without spoiling them. And a system compatible with Unix would be convenient for many other people to adopt.“[13]

Auch hier stand die Gemeinschaft im Vordergrund. Möglichst vielen Nutzern den Wechsel leicht zu machen war Stallman wichtig, deshalb verzichtete er darauf, ein neues System ganz nach seinen Vorstellungen zu schreiben. Es hätte aber auch keinen Sinn gemacht, ein solches Projekt anzufangen und ein System zu schreiben, das niemand benutzen wollte, weil die Umstellung viel zu aufwändig gewesen wäre.

Nachdem die Ausrichtung auf ein Unix-kompatibles System entschieden war, musste ein Name gefunden werden. Stallman wollte dabei in der Tradition der Hacker bleiben, nach der Namen von Programmen in der Regel Wortspiele sind. Oft werden Akronyme benutzt, deren Inhalt ist, dass das benannte Programm nicht ein bestimmter Vorgänger ist.[14] Die Buchstaben I, N und U sollten also für „is not Unix“ stehen. Weil es mit „inu“ aber keine vernünftigen Worte im Englischen gibt, entschied er sich für eine Kontraktion des „is“ und bekam mit dem G das GNU und mit diesem das Tier Gnu als Maskottchen. Ausgesprochen ergibt das Akronym nun „GNU’s Not Unix“. Dadurch wird das Akronym „rekursiv“, dass heißt es verweist auf sich selbst.[15]

Am 27. September 1983 veröffentlichte er seine Pläne im ARPANET. Unter der Überschrift „Free Unix! “, die sowohl wie ein Reklamespruch als auch wie eine Aufforderung Unix zu befreien gelesen werden kann, stellte er sich und sein Projekt vor und forderte andere auf ihn zu unterstützen. Er bat Computerhersteller um Sachspenden, die sich, wie er schrieb, auszahlen würden, weil auf den entsprechenden Architekturen die neue Software zuerst laufen würde. Programmierer konnten helfen, indem sie Teile des Systems schrieben, aber auch an Geldspenden hatte Stallman schon gedacht. Mit diesen wollte er Programmierer bezahlen, denen er wichtige Teile des Systems übergeben wollte. „The salary won’t be high, but I’m looking for people for whom knowing they are helping humanity is as important as money“ schrieb Stallman, und stellte wieder die Gemeinschaft und die gegenseitige Hilfe vor das Wohl des Einzelnen.[16]

Im Januar des nächsten Jahres gab Stallman seine Stelle am MIT auf[17] und begann mit der Arbeit an GNU. Der Aufbau des Systems ließ ihm die Möglichkeit irgendwo anzufangen und jedes Teil zu einem für ihn passenden Zeitpunkt zu schreiben. Da die Schnittstellen zwischen den Teilen des Systems vorgegeben waren, würden die einzelnen Teile hinterher auch wieder zusammenpassen, unabhängig davon, wann oder auch von wem sie geschrieben worden waren. Im September begann er mit der Arbeit an GNU Emacs, einem Texteditor.[18] Diesen brauchte Stallman zum Schreiben der einzelnen Programme, die er nicht auf einem unfreien Editor schreiben wollte.

Die Vorstellung Stallmans war, das gesamte System erst zu veröffentlichen, wenn alle Teile geschrieben wären. Doch als der Editor Anfang des darauf folgenden Jahres fertig wurde, stellte sich heraus, dass auch bei anderen Programmierern Interesse daran bestand. Stallman stellte Emacs also auf einem anonymen ftp[19] zur Verfügung. Gleichzeitig bot er jedoch auch Magnetbänder an, die er für 150 $ versandte. Von den etwa acht bis zehn Bestellungen im Monat konnte er leben, weil das MIT ihm weiterhin erlaubte die Einrichtungen zu benutzen und er in einem Raum, der ihm dort zur Verfügung stand, auch wohnte.[20]

Wie bei der BSD ist auch beim Emacs verwunderlich, dass es überhaupt jemanden gab, der für ein kostenlos erhältliches Programm so viel Geld bezahlte. Stallman erklärt dies damit, dass zu dieser Zeit noch nicht alle potenziellen Benutzer des Programmes Zugang zum Netz hatten.[21] Wie bei den heutigen Distributionen der BSD- und GNU/Linux-Systeme liegt der Grund, dass Geld für Programmpakete, die eigentlich umsonst zu haben sind, gezahlt wird, darin, dass der Bezug eines fertigen Datenträgers einfach bequemer ist, als sich selbst um die Zusammenstellung zu kümmern und große Datenmengen aus dem Netz zu laden. Jedenfalls bewies Stallman gleich zu Anfang des GNU-Projektes, dass mit Freier Software auch Geld zu verdienen ist.

Im Oktober 1985 wurde die Free Software Foundation als gemeinnützige Stiftung gegründet. Ihr obliegt es Spenden zu sammeln, von diesen Programmierer für GNU-Software einzustellen und das Konzept Freier Software in der Öffentlichkeit zu vertreten. Da die Freie Software und das GNU-Projekt Stallmans Ideen sind und die FSF selbst zur Förderung dieser Ideen gegründet wurde, ist er seitdem Präsident der Foundation. Die weiteren Mitglieder werden von Stallman ausgesucht. Auch die in letzter Zeit gegründeten Zweigstellen (z.B. die FSF Europe und die FSF India, die am 20. Juli 2001 eröffnet wurde) werden von Personen geführt, die Stallman für geeignet hält, seine Vorstellungen zu vertreten.[22]

Die FSF übernahm nach ihrer Gründung den Verkauf der Produkte, so dass Stallman sich nach einer neuen Einnahmequelle umsehen musste. Er bot sich an, gegen Bezahlung Änderungen an den von ihm geschriebenen Softwarepaketen vorzunehmen. Die Resultate waren wieder Freie Software und er konnte sich als bezahlter Programmierer mit dem Schreiben von Software beschäftigen, ohne die sonst in diesem Feld zu erwartenden Unannehmlichkeiten (z.B. NDAs) über sich ergehen lassen zu müssen.

Gleichzeitig nahm das GNU-Projekt Gestalt an, jedoch nicht – wie Stallman angekündigt hatte – als Projekt, das erst nach seiner Vollendung freigegeben sollte, sondern Stück für Stück. So konnten einzelne Komponenten des Systems schon genutzt werden und dem Projekt zu Bekanntheit verhelfen. Dem Editor, einem entscheidenden Stück für das Schreiben von Software, folgte der GNU C-Compiler (gcc), der den Sourcecode in ausführbare Dateien umwandelt, eine „Shell“ (eine Arbeits­umgebung, die die Befehle des Benutzers entgegennimmt und viele Aufgaben beim Arbeiten am Rechner übernimmt) und die GNU C-Library (eine Bibliothek ähnlich der, die Hopper vorgeschwebt hatte – wenn auch wesentlich mächtiger[23] ).

Bestimmte wichtige Teile wurden von der FSF in Kommission gegeben, andere – und dies gehört zum Konzept – wurden von anderen Projekten übernommen. Zu diesen Programmpaketen gehörte das „X Window system“, das den auf dem Betriebssystem laufenden Programmen grafische Ausgaben ermöglicht. Dadurch entsteht zum Beispiel die Desktopmetapher, die von den meisten modernen Betriebssystemen bekannt ist.[24] Das X Window system ist also nicht wirklich als Teil von GNU, passt aber zum Projekt und kann benutzt werden um diese Lücke zu füllen, weil die Lizenz, unter der es veröffentlicht ist, den Bedingungen, die von der FSF an Freie Software gestellt werden, entspricht.[25] Zu den Teilen, die aus anderen Zusammenhängen stammen, gehören auch das weit verbreitete Textsatzprogramm TEX und einige Teile der BSD-Bibliotheken[26] .

Etwa 1991 war das GNU-System soweit fertig, dass nur noch der Kernel zu einem kompletten Betriebssystem fehlte. Auch bei diesem hatte sich das Projekt darauf verlegt einen fremden Teil mit eigenen Komponenten zu verbinden, um zu einem vollständigen Paket zu gelangen. In diesem Fall sollte auf den Mach-Microkernel zurückgegriffen werden, der an der Carnegie Mellon Universität geschrieben wurde. Wenn dieser fertig war, sollte ihm der zu GNU passende Oberbau aufgesetzt werden.

Es gibt grundsätzlich zwei Typen von Systemkernels: monolithische (zu diesen gehört vom Ansatz her der Linux-Kernel) und Microkernel (wie den Mach-Kernel), bei denen nur ein kleiner organisierender Teil den eigentlichen Kernel ausmacht. Der Rest, der bei Monolithen direkt mit dem Kernel verbunden ist, besteht aus kleineren, für bestimmte Aufgaben geschriebenen, Programmpaketen. Für das GNU-Projekt hätte der Microkernel den Vorteil, dass die einzelnen Prozesse, wie beim eigentlichen System, von einzelnen Personen geschrieben werden könnten, die nur darauf zu achten hätten, dass die vordefinierten Schnittstellen zwischen den einzelnen Teilen eingehalten werden.

Die Entwicklung von Mach dauerte allerdings wesentlich länger als erwartet und der Kernel ist bis heute der einzige Teil, der GNU zu einem kompletten Unix-ähnlichen System fehlt. Inzwischen hat die Carnegie Mellon Universität die Produktion von Mach aufgegeben und ein GNU Mach wird geschrieben, für den ein Oberbau namens Hurd[27] entsteht. Seit etwa 2000 gibt es stabile[28] Versionen von Hurd, die bisher aber nur auf IA32-Architekturen laufen.

Im selben Jahr, 1991, in dem das GNU-System seinen vorläufig vollen Umfang erreichte, gab es auch eine erste Version eines fremden freien Kernels. Linux, der von dem finnischen Studenten Linus Torvalds geschrieben wurde, und auf den das GNU-System inzwischen von verschiedenen Programmierern portiert worden ist, ist ebenfalls ein Unix-kompatibler Kernel. Das aus der Kombination von Linux und GNU gebildete System entstand jedoch stückweise und nicht durch die Zusammenarbeit der GNU- und der Linux-Programmierer. Deshalb ist es heute meistens nur unter dem Namen Linux bekannt, was von Stallman und den Vertretern der FSF immer wieder angeprangert wird, weil sie glauben, dass dem GNU-Projekt so nicht die ihm zustehende Anerkennung zuteil werde und den Benutzern der Zugang zur Philosophie des GNU-Projektes verborgen bliebe.

 

*Dieser Text stammt aus der Magisterarbeit „Geschichte der Freien Software“ von Joachim Korb aus dem Jahr 2001. Das Originaldokument ist abrufbar unter: http://tal.cs.tu-berlin.de/korb/Magister/

 



[1] Zum Beispiel in [Stallman2001e] und [Stallman2001c] oder [Meretz2000,S.8].

[2] Levy 1984

[3]Dieser Name ist eine Verballhornung des „Compatible Time-Sharing Systems“, das ein Vorgänger des MULTICS Systems war, das seinerseits ein Vorgänger von UNIX war. (Für „time sharing“ gibt es unterschiedliche Schreibvarianten.)

[4]Siehe z.B. Stallman 2001c, wo Stallman diese Geschichte erzählt.

[5] Stallman 2001c

[6]Stallman 2001c

[7]LISP ist eine Programmiersprache, die in der KI-Forschung einen hohen Stellenwert hat. Der von Symbolics vertriebene Rechner war so konstruiert, dass er möglichst effektiv mit LISP einzusetzen war.

[8]In Levy 1984, S.413 beschreibt Levy Stallmans Verlust. Er zitiert ihn: „,I’m the last survivor of a dead culture,‘ said RMS. ,And I don’t really belong in the world anymore. And in some ways I feel I ought to be dead.‘“ Levy 1984, S.427

[9] Stallman 2001e

[10]So beschrieb Stallman selbst diese Entscheidung bei einem Vortrag an der New Yorker Universität. Zitiert nach Stallman 2001c.

[11]Vgl. Moody 2001, S.19f.

[12]Mit Kompatibilität ist die Austauschbarkeit oder Vereinbarkeit verschiedener Systeme gemeint. GNU/Linux ist zum Beispiel in vielen Punkten zu den BSD-Systemen kompatibel. Die unterschiedlichen proprietären Unix-Varianten sind untereinander teilweise nicht kompatibel und Microsofts Windows oder MacOS von Apple sind weder untereinander noch zu den diversen Unixen kompatibel.

In diesem Fall sollte die Kompatibilität jedoch so weit gehen, dass jedes einzelne Programm, das Stallman für das neue System schreiben würde, einen Teil des Originals ersetzen konnte. (Wie dies bei der BSD-Variante ebenfalls der Fall war.)

[13] Stallman 1993

[14]Also etwa: „A ist nicht B“.

[15]Stallman beschreibt solche Wortspiele. Die englische Aussprache läst hier ein weiteres Wortspiel zu: Da im Englischen vor „n“ „k“ und „g“ nicht gesprochen werden, ergibt sich die Aussprache „new“. Deshalb stellt Stallman das „g“ extra voran, weil das System inzwischen nicht mehr so neu ist. Ausgesprochen klingt GNU also „g’ new“. Stallman 2001c

[16]Der Text der Ankündigung findet sich unter Stallman 1983.

[17]Er wollte damit der Gefahr vorbeugen als Angestellter des Institutes Software geschrieben zu haben, die dann vom MIT als Eigentum betrachtet werden konnte.

[18]Seitdem wird Emacs (kurz für Editing MACroS) ständig weiter entwickelt. Inzwischen kann man damit unter anderem Email lesen und schreiben und, mit einem Zusatzpaket, auch im Internet surfen. Version 21.1 wurde am 24.10.2001 veröffentlicht.

[19]Das „file transfer protocol“ (ftp) ist Internetprotokoll wie http. In ftp-Verzeichnissen werden Dateien ablegt. Dass das Verzeichnis „anonym“ ist, bedeutet, dass sich Benutzer nicht anmelden (oder einloggen) müssen, um darauf zuzugreifen.

[20]Vgl. die Beschreibung des Raumes, in dem Levy Stallman zum ersten Mal traf: „[…] a room cluttered with printouts, manuals, a bedroll, and a blinking computer terminal […]“. Levy 1984, S.415

[21]Vgl. Stallman 2001c.

[22]Diese enge Bindung wird gelegentlich kritisiert, weil die Freie Software-Bewegung, die durch die FSF vertreten wird, aus wesentlich mehr Programmierern besteht als die FSF Mitglieder hat. Auf der Diskussionsmailingliste der FSF Europe hat es kurz nach deren Öffnung eine längere Diskussion gegeben, in der Nicht-Mitglieder Mitspracherecht bei Entscheidungen der Stiftung forderten.

[23]Programmierer sprechen von der „Mächtigkeit“ eines Programms, wenn sie das Ausmaß seiner Möglichkeiten beschreiben.

[24]Auf Unix-Systemen läuft dabei zusätzlich noch ein Windowmanager, der die Anordnung und das Aussehen der Fenster kontrolliert.

[25]Siehe philosophischesKonzept GPL und Copyleft.

[26]BSD selbst war zu diesem Zeitpunkt noch kein freies Betriebssystem, da, um es zu benutzen noch die durch AT&T lizensierten Teile nötig waren. Ausserdem war die Lizenz, die in Berkeley benutzt wurde zwar eine Freie Lizenz, passte aber nur teilweise in Stallmans Konzept.

[27]„,Hurd‘ stands for ,Hird of Unix-Replacing Daemons‘. And, then, ,Hird‘ stands for ,Hurd of Interfaces Representing Depth‘“, lautet die Erklärung des Namens, die unter http://www.gnu.org/software/hurd/hurd.html zu finden ist. Wie der Autor der Seite sagt, ist dies vermutlich das erste Programm, dessen Name aus zwei aufeinander verweisenden Akronymen besteht.

[28] Bei der Entwicklung Freier Software gibt es, da oft viele Personen daran mitarbeiten und die meisten Programme nach ihrer ersten Veröffentlichung weiterentwickelt werden, stets mehrere Versionen. Diese werden von Projekt zu Projekt anders bezeichnet, aber meistens gibt es Entwicklerversionen, die noch in der Testphase sind, und so genannte „stabile“ Versionen, bei denen die Entwickler davon ausgehen, dass sie in für den täglichen Gebrauch stabil genug sind. So ähnlich verhält es sich bei proprietärer Software natürlich auch, nur dass die stabilen Versionen dort die sind, die verkauft werden.