Sternzeichen GNU
Es gibt in der IT kaum jemanden, der mehr polarisiert als Richard Stallman. Die Geschichte der GNU-Projekts ist sehr eng mit seiner Person verwoben.
- Jon "Maddog" Hall
- Peter Salus
Es war im Sommer 1969. Maddog hatte im vergangenen Sommer in einem Fernkurs FORTRAN gelernt und dies in seinem Nebenjob bei der Western Electric Plant in Baltimore, Maryland, auf einer IBM 1130 auch praktiziert. Nun war er wieder zurück an der Drexel-Universität in Philadelphia. Dort befanden sich die einzigen Computer, auf denen er seine elektronischen Simulationsprogramme laufen lassen konnte – hinter verschlossenen Türen.
Zu jener Zeit war Software außerordentlich teuer. Der Kauf einer einzelnen Kopie eines Compilers für FORTRAN oder COBOL (ja, die Namen schrieben sich versal, vielen Dank) konnte leicht 100 000 US-Dollar verschlingen – und das zu einer Zeit, als 100 000 US-Dollar noch richtig viel Geld waren. Als Student konnte sich Maddog das natürlich nicht leisten.
Glücklicherweise gab es die 1961 gegründete Digital Equipment Corporation’s User Society (DECUS). Zu deren Angebot zählte eine Softwarebibliothek von Programmen, die Benutzer für eigene Zwecke geschrieben hatten. Man konnte sich aus einem gedruckten Katalog Anwendungen heraussuchen und bekam diese für den Preis der Erstellung einer Lochstreifen- oder Magnetbandkopie per Post zugeschickt. Die Kosten betrugen üblicherweise fünf bis fünfzehn Dollar, und da die Software copyrightfrei war, konnte man das Geld durch den Weiterverkauf von Kopien an Freunde und Bekannte wieder hereinbekommen.
Man konnte sich aus einem Katalog Anwendungen heraussuchen und bekam diese für den Preis der Erstellung einer Lochstreifen- oder Magnetbandkopie per Post zugeschickt.
Warum verschenkten 1969 Leute ihre Software? Im Wesentlichen, weil es schwer ist, Software zu verkaufen. Man muss für sie werben, Dokumentation erstellen, Support leisten, sie erweitern und zeigen, dass die Software „noch lebt“. Darüber hinaus gab es 1969 in der IT keine Industriestandards. Jedes Stück Hardware besaß – wenn überhaupt – sein eigenes Betriebssystem. Da keine dominante Architektur existierte, war der Markt für Portierungen sehr klein. Außerdem waren die Autoren dieser Anwendungen keine professionellen Programmierer, sondern Ingenieure, Geschäftsleute, Anwälte, Lehrende oder Forscher. Sie verdienten ihr Geld mit anderen Dingen, brauchten aber Software als Unterstützung für ihren Job. Sie verschenkten ihre Software, damit andere davon profitieren und ihnen eventuell bei Verbesserungen helfen können. Als potenzieller Lohn winkte auf der DECUS vielleicht ein Freibier, ein kostenloses Essen oder mit viel Glück gar ein Jobangebot, aber Softwareverkauf hatten sie nicht im Sinn.
Zwei weitere Ereignisse trugen sich 1969 zu: In New Jersey entschlossen sich zwei AT&T-Forscher ein Betriebssystem zu schreiben, und im finnischen Helsinki kam ein Kind zur Welt. Dieser Artikel wird sich auf Ersteres konzentrieren.
Ken Thompson and Dennis Ritchie fingen mit der Entwicklung dessen an, was später als Unix bekannt werden sollte. Es begann als Forschungsprojekt und sie gingen nicht davon aus, dass es größere Auswirkungen auf die Computerindustrie haben würde. Sie wollten nur neue Wege für die Nützlichkeit von Computern suchen. Ken und Dennis verteilten ihre Software an viele Universitäten und verlangten – wenn überhaupt – nur einen kleinen Obolus zur Deckung der Kosten für Magnetbänder, Porto und Handbücher.
Und ein High-School-Student in New York City entschloss sich, mehr über diese Computer zu lernen.
Schon während seiner New Yorker High-School-Zeit hatte Richard M. Stallman (oder kurz: RMS) in IBMs Science Center und an der Rockefeller Universität gearbeitet. Später, im Jahr 1971, war Richard für Russ Noftsker am Labor für Künstliche Intelligenz des MIT (AI Lab) tätig – obwohl er nur ein Erstsemesterstudent in Harvard war. Wie Richard es ausdrückte: „Ich wurde Teil einer Software teilenden Community, die schon seit Jahren existierte. Die gemeinsame Nutzung von Software war nicht auf unsere besondere Community beschränkt; sie ist so alt wie Computer, genauso wie der Austausch von Kochrezepten so alt ist wie das Kochen. Aber wir praktizierten es mehr als die meisten.“
Das AI Lab verwendete ein Time-Sharing-Betriebssystem namens ITS (Incompatible Timesharing System), das Angestellte des Instituts für eine Digital PDP 10 entworfen und in Assembler geschrieben hatten. Als Mitglied der Community und als Angestellter des AI Lab war es Richards Job, dieses System zu verbessern.
Wir nannten unsere Programme nicht ,Free Software‘, da der Begriff noch nicht geprägt war, aber das ist das, was es war.
„Wir nannten unsere Programme nicht ,Free Software‘, da der Begriff noch nicht geprägt war, aber das ist das, was es war. Wann immer jemand von einer anderen Universität oder einer Firma ein Programm portieren und benutzen wollte, freute uns das und wir ließen sie gewähren. Wenn man ein unbekanntes interessantes Programm sah, konnte man immer den Sourcecode bekommen, sodass man ihn lesen, verändern oder sogar für eigene Anwendungen ausschlachten konnte.“
Nach einer Weile begannen jedoch Unternehmen Unix als potenziell gewinnbringendes Etwas zu betrachten. AT&T hatte die Software bis dato nie kommerziell freigegeben und fing an, sie zu lizenzieren. Darüber hinaus verlangte man von kommerziellen Firmen hohe Summen für die Weitergabe des Quellcodes. Unternehmen wie Sun starteten die Vermarktung günstigerer Unix-Binär-Distributionen etwa zur selben Zeit, als Microsoft und Apple anfingen, ihre Software nur in Binärform auszuliefern.
In der Usenix, die sich bekanntlich die Förderung fortschrittlicher Betriebssystemtechniken auf die Fahnen geschrieben hat, gab es eine leichte Änderung in den Konferenzpräsentationen. Während früher die Sprecher ihren Vortrag mit einer Adresse beendeten, von der man sich den Quellcode kopieren konnte, schlossen sie nun mit der Entschuldigung, dass ihr Arbeitgeber ihnen die Weitergabe des Quellcodes nicht gestattete. Die ersten Male quittierte das Publikum dies noch mit lautstarken Buh-Rufen, doch mit der Zeit wurden diese immer leiser und leiser. Die Zuhörer akzeptierten zunehmend die Tatsache vom Ende der freien Verteilung von Sourcecode – alle bis auf einen …
„Symbolics hat die Community des AI Lab zerstört,“ sagte RMS im Gespräch mit Peter Salus. „Die Leute kamen nicht mehr. 1980 verbrachte ich drei oder vier Monate in Stanford und als ich zurückkam [zum Tech Square], waren die Leute weg und das Labor quasi tot.“ Sam Williams erzählte [1], das Symbolics 14 Angestellte des AI Lab als Teilzeit-„Consultants“ eingestellt hatte. Richard war tatsächlich der „Letzte der Hacker“.
„Im Januar 1982 gaben sie [Symbolics] eine erste Version heraus,“ erzählte RMS weiter. „Sie teilten nicht, also implementierte ich einen ganz anderen Satz von Funktionen und schrieb etwa die Hälfte des Codes neu. Das war im Februar. An meinem Geburtstag [16.3.] brach der Krieg aus. Jeder am MIT entschied sich für die eine Seite: Nutze das Zeug von Symbolics, aber gib keinen Sourcecode weiter. Ich war sehr unglücklich. Die Community war zerstört worden. Nun begann sich das gesamte Verhalten der Leute zu ändern.“
Der erste Schritt zur Benutzung eines Computers bestand darin zu versprechen, seinem Nachbarn nicht zu helfen.
Was Richard Stallman wollte, war klar: Eine kooperative Community von Programmierern, die zunehmend bessere Software produzieren. Aber die Hersteller wollten keine Kooperation, jeder wollte ein partielles Monopol. Um die Software nutzen zu können, mussten Programmierer ein NDA (Non-Disclosure Agreement) unterschreiben. Richard sagte „Das bedeutete, der erste Schritt zur Benutzung eines Computers bestand darin zu versprechen, seinem Nachbarn nicht zu helfen. Eine zusammenarbeitende Gemeinschaft war verboten. Die von den Besitzern proprietärer Software aufgestellte Regel lautete: ,Wenn du mit deinem Nachbarn teilst, bist du ein Softwarepirat.‘“
Richard hatte wiederholt gesagt, dass Software frei sein müsse. Aber 1982 und 1983 war er eine einzelne, einsame Stimme. Er kopierte die Arbeit der Symbolics-Programmierer, um zu verhindern, dass die Firma sich ein Monopol verschaffte. Er weigerte sich, NDAs zu unterschreiben und teilte seine Arbeit mit anderen, was er immer noch als den „Geist der wissenschaftlichen Offenheit und Zusammenarbeit“ ansah. Am 27. September 1983 kündigte RMS das GNU-Projekt an [a] und und gab im Januar 1984 seinen Job am MIT auf.
Er schrieb: „Ich begann mit der Arbeit am GNU Emacs im September 1984, Anfang 1985 begann er benutzbar zu werden. Dies ermöglichte mir, Unix-Systeme fürs Editieren einzusetzen. Ich hatte keine Lust, vi oder ed zu erlernen, da ich bis dahin meine Texte auf anderen Arten von Systemen erledigt hatte.“
Die gemeinsame Nutzung von Software ist so alt wie Computer – genauso wie der Austausch von Kochrezepten so alt ist wie das Kochen.
Zu dieser Zeit begann die 1982 gegründete Firma Sun Microsystems für ihr SunOS 4.1cBSD als Basis zu verwenden. In den folgenden rund sechs Jahren flossen alle BSD-Verbesserungen in die folgenden SunOS-Versionen ein. 1988 erschreckte AT&T die Unix-Community, indem man eine große Investition in Sun ankündigte. Offiziell hieß es, um die Unix-Bemühungen von AT&T und Berkeley zu vereinen, viele vermuteten jedoch weit dunklere Absichten.
Richard Stallmans erster Erfolg mit freier Software war der GNU C-Compiler (gcc). Zwar existierte schon eine Reihe von C-Compilern, (mindestens vier oder fünf von diesen stammten von P.J. Plaugers Firma Whitesmiths), aber die waren alle proprietär lizenziert. Stallmans Software war unbelastet und sie funktionierte gut. Heute steht GCC für GNU Compiler Collection, und umfasst Compiler für C, C++, Objective-C, Fortran, Java, Ada sowie eine große Zahl Bibliotheken. Das Zwei-CD-Set kostet nur 45 US-Dollar.
Dann verärgerte auch Sun seine Benutzer, indem es die Compiler nicht mehr im Bundle mit dem Betriebssystem sondern als eigenständige Produkte vermarktete. Während des Sun User Group Meeting in San Jose im Dezember 1990 spitzten sich die Dinge zu. Viele Sun-Nutzer fragten sich, warum sie einen C-Compiler von Sun kaufen sollten, wenn sie einen besseren und billigeren bei der FSF bekämen. Als Ergebnis schnellten die CD-Verkäufe bei der FSF in die Höhe.
Stallman schrieb auch die GPL – die GNU Public License, heute GNU General Public License. Sie entstand aus dem Bedarf nach rechtlicher Dokumentation. Die Vorgeschichte der GPL begann damit, dass James Gosling, Jungakademiker an der CMU (Carnegie Mellon Universität), eine C-Version von Emacs schrieb. Gosmacs benutzte einen vereinfachten Lisp-Dialekt namens Mocklisp. Um seinen Emacs in Lisp zu schreiben bediente sich RMS bei Goslings Neuerungen. Andere CMU-Entwickler hatten Stallman erzählt, Gosling habe versichert, ihre Arbeit an Gosmacs und dem Lisp-Interpreter würde verfügbar bleiben. Aber Gosling stellte Gosmacs unter Copyright und verkaufte die Rechte an UniPress, die wiederum drohten, RMS zu verklagen.
Wieder einmal stand Stallman vor der Aufgabe, von vorn zu beginnen. Im Laufe des Reverse-Engineering von Goslings Interpreter sollte Stallman einen vollständigen Lisp-Interpreter schreiben, der Goslings Original nicht nur das Wasser reichen konnte. Dennoch: Die Idee, dass Entwickler Rechte an einer Software verkaufen – insbesondere der Gedanke, dass sie überhaupt Rechte an einer Software besitzen, die sie verkaufen können, wurmte Stallman gehörig.
Insbesondere der Gedanke, dass Entwickler überhaupt Rechte an einer Software besitzen, die sie verkaufen können, wurmte Stallman gehörig.
1985 gab RMS zwar den GNU Emacs frei, aber er musste realisieren, wie wichtig es für GNU-Software sei, auf ein rechtliches Fundament bauen zu können. Als direktes Ergebnis entstand die erste Version der GPL. Richard hatte erkannt, dass man den Benutzern ein uneingeschränktes Recht einräumen müsse. Zwar hatte er mit dem Bostoner Anwalt Mark Fischer, spezialisiert auf geistiges Eigentum, sowie einem weiteren Anwalt, Jerry Cohen, gesprochen, aber dennoch schrieb er seine eigene Lizenz. Nur wenige Jahre später erschien die GPL Version 2.
Das war 1991. Bis 1991 gab es viele Leute, die GNU-Software auf unterschiedlichen Plattformen einsetzten. Richard war so weitsichtig gewesen (vielleicht hatte er auch nur Glück), eine Software zu entwerfen, die sich auf viele Betriebssysteme und Hardwarekombinationen portieren ließ. Er kümmerte sich zuerst um „Upper-Level“-Anwendungen, statt sich an einem Kernel zu versuchen. GNU-Software kam zum Einsatz, um Unterschiede zwischen den Hard- und Softwarekombinationen unterschiedlicher Hersteller zu überwinden. Der Emacs verhielt sich auf allen Plattformen gleich. Boeing benutzte die GNU-Compiler, weil Syntax und Semantik auf den unterschiedlichen Systemen gleich waren, was zu weniger Ausnahme-Routinen im Quellcode eines Projekts führte. Kunden von Firmen wie DEC begannen zu fordern, dass GNU-Code auch auf die proprietärsten Systeme portiert und mit ausgeliefert werden sollte. Weigerten sich die Firmen, verloren sie Kunden.
Maddog, damals Manager bei DEC, erinnert sich an eine solche Anforderung, GNU-Code unter dem Namen „Goodstuff“ zu vertreiben. Es handelte sich um eine Programmsammlung übersetzt für Digital Unix auf dem hauseigenen Alpha-Prozessor. Da diese offiziell als „unsupported“ galt, fragte sich fast das gesamte DEC-Softwareproduktmanagement ungläubig, warum Kunden gerade diese Software haben wollten. Und doch verteilte DEC Tausende dieser CDs an die Kunden und ersparte ihnen die Mühe, die Software selbst zu bauen. Später, als das Alpha-Linux-Projekt schon lief, war die Entwicklungsabteilung bei DEC überrascht, dass sich der Großteil des Upper-Level-Codes sich so leicht auf ein 64-Bit-System portieren ließ. Maddog wusste, dass der Code bereits auf Digitals Unix auf Alpha-Systemen portiert worden war, sodass – wenn überhaupt – nur wenige Probleme zu erwarten waren.
Allerdings war es nicht immer einfach, mit Richards Idealen umzugehen. Maddog erinnert sich an seine Bemühungen, der FSF einen VAX/Ultrix-Rechner zur Verfügung zu stellen, damit sie ihre GNU-Software auf das System portieren konnte. Erst nach vielen vergeblichen Anläufen ließ sich Richard dazu bewegen, ein Digital-Standardformular mit dem Titel „Leihgabe von Produkten“ zu unterschreiben. Der Grund: Ihn störte die Passage, die einen Schutz des Betriebssystems vor Kopien forderte. Während Richard DEC versicherte, er würde das Betriebssystem nicht kopieren, weil er gar nicht den Wunsch dazu verspüre, würde er doch niemanden abhalten es zu tun, weil es seiner Überzeugung widerspreche. Ein Federstrich eliminierte den betreffenden Satz, ein paar Initialen und alles war in Butter.
In Bezug auf freie Software existierten auch andere Projekte, die sich – natürlich – in den Freiheitsgraden der verwendeten Lizenzen unterschieden. Die Berkeley Software Distributions, das MIT-Projekt Athena (von dem Kerberos und das X Window System heute noch als Erbe erhalten sind), Sendmail, Ingres/Postgres und andere. Aber das GNU-Projekt überflügelte sie alle mit seinem einzigartigen Ziel, eine komplette Betriebssystemumgebung zu schaffen, deren Quellcode verfügbar ist und die den vier in der GPL erklärten Freiheiten genügt.
Eine kooperative Community von Programmierern produziert zunehmend bessere Software.
Um 1991 herum existierte in der einen oder anderen Form der Code für viele Komponenten eines Betriebssystems. Der einzig fehlende Hauptteil war der Kernel. Obwohl unter dem Namen „The Hurd“ auch ein GNU-Kernel-Projekt geplant war, sorgten diverse Richtungswechsel und andere Verzögerungen dafür, dass der Linux-Kernel viele Teile des GNU-User-Level-Codes nutzen konnte.
Jetzt feiert das GNU-Projekt seinen fünfundzwanzigsten Geburtstag. Viele Leute haben Richard Stallman für sein taktisches Vorgehen kritisiert. Aber in der Realität gibt es nur wenige Menschen, die ihre Philosophie und Ziele klar definieren und über ein Vierteljahrhundert konsequent in die Tat umsetzen. Sicherlich hätten viele Informatikstudenten weniger Erfahrungen gesammelt, hätten sie nicht den Zugriff auf den Quellcode von ausgezeichneter Software gehabt – entwickelt unter der Philosophie von Richard Stallmans Free Software Foundation und dem GNU-Projekt.
Literatur
[1] Sam Williams; Free as in Freedom; Richard Stallman’s Crusade for free Software; ISBN 978-0-596-00287-9; O’Reilly 2002
[2] Richard M. Stallman, Ankündigung des GNU-Projekts (avr)