Gestern vor 20 Jahren setzte der Student Linus Benedict Torvalds von der Universität Helsinki ein Posting in die Usenet-Gruppe comp.os.minix. Er habe ein neues freies Betriebssystem für 386er und 486er entwickelt. Es sei nur ein Hobby, aber er habe schon bash und gcc portiert und die Sache funktioniere.
Dieses Posting erregte 1991 ein immenses Aufsehen. Seit vielen Jahren versuchten sich bekannte Größen wie Richard Stallman daran, ein freies unixoides Betriebssystem zu entwickeln. Gelungen war das bisher nicht.
Für PCs gab es seinerzeit nur Minix. Es war so konzipiert, dass es auch auf Intel 8088-CPUs lief. Es beherrschte zwar alle Unix-7-Calls, hatte aber zahlreiche Beschränkungen. Programme waren wegen der segmentierten Speicherarchitektur auf eine Größe von 64 KByte limitiert. Speicherschutz gab es überhaupt nicht, da die 8088-Architektur das nicht erlaubt.
Hinzu kam, dass Minix damals nicht frei war. Universitäten bekamen zwar eine kostenlose Lizenz, aber es durfte nicht frei kopiert werden. Privatleute mussten 169 Dollar zahlen. Außerdem durfte das OS nicht substanziell verändert werden, obwohl Minix-Schöpfer Andrew S. Tanenbaum den Sourcecode veröffentlicht hatte.
Linus Torvalds bekam seinen ersten IBM-kompatiblen PC erst im Januar 1991. Vorher besaß er einen Sinclair QL und einen Commodore VC-20. Obwohl Torvalds schon immer ein Nerd war und etwa an seinem Sinclair QL das Betriebssystem erweiterte, nutzte er seinen PC erst einmal einen Monat lang nur, um damit "Prince of Persia" zu spielen.
Erst danach erhielt er seine lizensierte Kopie von Minix. Da ihm die Beschränkungen nicht gefielen, entwickelte er seinen eigenen Kernel. Eigentlich wollte er nur die neuen Features des 80386 wie Virtual Memory und Task-Switching ausprobieren. Er überlegte sich, dazu einen multisessionfähigen Terminal-Emulator zu schreiben, den er ohnehin brauchte, um an die Großrechner der Universität zu kommen. Während der Entwicklung stellte er fest, dass er eigentlich eher ein Betriebssystem geschaffen hatte.
Im September 1991 war Torvalds so weit, dass er sein neues OS auf den FTP-Server ftp.funet.fi spielen wollte. Damals nahmen Admins noch das Privileg für sich Anspruch, das selbst machen zu wollen. So musste Torvalds sein neues Betriebssystem bei Uni-Mitarbeiter Ari Lemmke abliefern. Dem gefiel der Name Freax überhaupt nicht und nannte Verzeichnis und Kernel-Datei kurzerhand in Linux um, wovon Torvalds zunächst nichts wusste, dann aber zustimmte.
Hilfe von Entwicklern aus der ganzen Welt
Linux 0.01 unterstützte nur genau die Hardware, die Torvalds zu Hause besaß. Doch er bekam überraschend viel Unterstützung von anderen Entwicklern. Den Rest des Jahres 1991 und 1992 verbrachte Torvalds damit, den Code, den er von Entwicklern aus der ganzen Welt erhielt, in seinen Kernel einzubauen. So entstand im Dezember 1992 die Version 0.99, die schon recht stabil auf einer Vielzahl von Hardware lief.
Bekannte Software-Gurus zweifeln am Erfolg
Doch Torvalds erhielt auch Kritik: Damals war man der Meinung, dass die Zukunft der Betriebssysteme in Microkerneln liege. Vorteil einer reinen Microkernel-Architektur ist, dass selbst die Treiber im Usermode laufen und bei einem Treiberabsturz keine Kernel-Panic (bei Windows Bluescreen genannt) auftritt, sondern der Treiber einfach neu gestartet werden kann. Nachteil ist aber, dass alle Komponenten nur durch Message-Passing miteinander kommunizieren können, was die Geschwindigkeit signifikant reduziert.
Linux war damals das genaue Gegenteil eines Microkernels. Es war monolithisch aufgebaut. Alle Treiber wurden in eine einzige Kernel-Datei hinein kompiliert. Heute sind viele Treiber als Kernel-Objekt-Datei mit der Erweiterung .ko realisiert. Aber nach wie vor, funktionieren .ko-Dateien nur mit einem bestimmten Kernel. Eine .ko-Datei für die debian-Variante des 2.6.32-Kernels läuft nicht mit der Ubuntu-Variante derselben Versionsnummer. Ändert sich die Versionsnummer zu 2.6.32-1, muss die .ko-Datei ebenfalls neu kompiliert werden.
Das ist eine Besonderheit von Linux, die bei anderen unixoiden Betriebssystemen, etwa Mac OS, längst der Vergangenheit angehört. Linux arbeitet bei der Einbindung von .ko-Dateien auch heute noch mit absoluten Adressen und nicht mit einer Symboltabelle.
Im Januar 1992 übte der Minix-Schöpfer Andrew S. Tanenbaum harsche Kritik an Linux' monolithischer Architektur. Man müsse einen Microkernel schaffen. Ferner sei Linux fest an die x86-Architektur gebunden, was es früher oder später obsolet machen werde.
Tanenbaum hielt es ferner für völlig illusorisch, dass Entwickler aus aller Welt auf Dauer Code zu Linux beisteuern. Damals schrieb er: "Ich denke, dass die Koordination von 1000 Primadonnen, die überall auf der ganzen Erde leben, genauso einfach ist, wie Katzen zu hüten […] Wenn Linus die Kontrolle über die offizielle Version behalten will und eine Gruppe fleißiger Biber in verschiedene Richtungen strebt, tritt das gleiche Problem auf. Wer sagt, dass eine Menge weit verstreuter Leute an einem komplizierten Stück Programmcode hacken können und dabei die totale Anarchie vermeiden, hat noch nie ein Softwareprojekt gemanagt.“
Doch Tanenbaum irrte in allen drei Punkten:
Der zweite bekannte Kritiker war Richard Stallman. Er wollte mit GNU ebenfalls ein komplett freies unixoides Betriebssystem schaffen. Er hatte damals alles zusammen, etwa den ersten plattformunabhängigen C-Compiler gcc, die Shell bash und die GNU-Tools (heute GNU Baseutils), die die Basis-Unix-Befehle wie ls, cp, rm und mkdir enthalten.
Es fehlte lediglich ein Kernel und Stallman schlug daher widerwillig vor, den Linux-Kernel für eine Übergangszeit für das GNU-Betriebssystem zu verwenden. Bis heute versucht Stallman unter dem Namen "The Hurd" einen reinen Microkernel zu entwickeln. Stabil ist er aber immer noch nicht.
Er bestand zudem darauf, dass Server- und Desktopbetriebssysteme mit dem Linux-Kernel den Namen GNU/Linux tragen sollten. Linus Torvalds bezeichnete diesen Namen als "affig". Die meisten Linux-Distributionen verwendeten von Anfang an nur den Namen Linux mit Ausnahme von debian. Ian Murdock legte von Anfang an Wert auf den Namen GNU/Linux.
Folgt man der Ansicht Stallmans, dass heutige moderne Linux-Distributionen nicht nur aus dem Linux-Kernel, sondern vielen anderen Komponenten bestehen, müsste man allerdings einen Namen wie GNU/Linux/Apache/Samba/MySQL/Java/Asterisk/PHP/PERL verwenden.
Erste Distributionen und erste Gerichtsprozesse
1993 erschienen die ersten Linux-Distributionen, die den Linux-Kernel, die GNU-Tools sowie weitere Programme enthielten. Zunächst wurde Slackware fertiggestellt. Im selben Jahr wurde das debian-Projekt ins Leben gerufen. 1994 folgten Red Hat und SUSE. Letzteres war zunächst ein Projekt, um eine deutsche Übersetzung der Slackware-Distribution zu erstellen.
1996 gab es den ersten Rechtsstreit um das kostenlose Linux-Betriebssystem. Rechtsanwalt William R. Della Croce, Jr. registrierte im August 1994 beim US Trademark Office den Markennamen Linux und mahnte ab 1996 Linux-Distributoren ab und verlangte Geld für die Nutzung "seines" Markennamens.
Die Distributoren legten Berufung ein und gewannen. Die Markenrechte wurden Linus Torvalds zugesprochen, obwohl er den Namen nie schützen ließ. Die Distributoren gründeten daraufhin das Linux Mark Institute (LMI), dessen einzige Aufgabe es ist, Torvalds Markenrechte an Linux aufrecht zu erhalten. Die Distributoren konnten den Namen Linux für einen symbolischen Dollar pro Jahr lizensieren. Später vergab das LMI dauerhafte kostenlose Sublizenzen.
Linus Torvalds macht Examen und muss Geld verdienen
Im selben Jahr brachte Torvalds Linux 2.0 heraus. Sein Kernel war inzwischen erwachsen geworden und lag mit anderen unixoiden Kerneln auf Augenhöhe. Ferner schloss er 1996 die Universität mit einem Master Titel ab. Das brachte ihn in die Verlegenheit, ab sofort eigenes Geld für den Lebensunterhalt verdienen zu müssen. Er war inzwischen zwar so berühmt wie Bill Gates und Steve Jobs, aber längst nicht so reich.
Er fing 1997 bei Transmeta an, das damals an einer x86-kompatiblen CPU arbeitete, die intern aber eine VLIW-Architektur besaß. Diese CPU sollte genauso schnell sein, wie ein nativer x86, aber deutlich weniger Strom verbrauchen. Bei Transmeta blieb er bis 2003 und kümmerte sich nur wenig um Linux, obwohl er seit 1999 so viel Geld besaß, um nie wieder arbeiten zu müssen.
1999 schenkten ihm Red Hat und VA Linux nämlich eine beträchtliche Anzahl an Aktienoptionen aus Dankbarkeit, weil er das Betriebssystem geschaffen hatte, auf dem das Geschäftsmodell der Firmen fußte. Als Red Hat und VA Linux im selben Jahr an die Börse gingen, besaß Torvalds etwa 20 Millionen Dollar.
Linux entwickelte sich in der Zeit ohne Torvalds prächtig. Der Kernel wurde von Firmen wie Red Hat, Oracle, IBM und Novell weitergeführt. Die Zahl der Hobbyentwickler, vielfach Studenten und Assistenten an Universitäten, ging zurück und kommerzielle Unternehmen stellten Vollzeitentwickler für Linux ab. Die engagierten Hobbyisten und viele Startup-Firmen begannen Projekte außerhalb des Kernels wie XFree86 (heute X.Org), Samba, Apache und MySQL, die heute meist ebenfalls von kommerziellen Firmen unterstützt oder dominiert werden.
Linux auf Consumer-Geräten
Linux entwickelte sich aber nicht nur auf Desktop- und Servercomputern. Es fand Einzug in Digitalkameras, Satellitenreceivern, Mobiltelefonen, Navigationssystemen, Musik-Synthesizern, Home-NAS-Geräten und Home-Routern wie die Fritzbox. Viele Haushaltsgeräte basieren auf Linux, ohne dass der Benutzer davon etwas bemerkt. Ohne Linux gäbe es heute eine Vielzahl von alltäglichen Geräten nicht oder nur zu einem für Privatleute unerschwinglichen Preis. Hardwarehersteller mussten dank Linux kein Betriebssystem teuer lizensieren oder selbst entwickeln, was die Kosten senkt.
Die embedded Linux-Varianten bestehen aus dem Linux-Kernel, enthalten aber keineswegs die GNU-Tools. Der Name GNU/Linux wäre hier nicht zutreffend. Um während der Entwicklungsphase eine Kommandozeile zur Verfügung zu haben, entstanden neue Usermode-Umgebungen, von denen BusyBox die bekannteste ist.
BusyBox ist nur ein einzelnes Executable, das die wichtigsten Unix-Kommandos beinhaltet. Oft stehen nicht alle Optionen zur Verfügung. Es wird meist nicht gegen die GNU-C-Library, sondern gegen die uClibc gelinkt, die weniger Speicher braucht. Ferner läuft die uClibc auch auf Prozessoren, die keine MMU besitzen und keinen Speicherschutz bieten.
So konnten sich Entwickler per Kommandozeile auf Digitalkameras und SAT-Receivern anmelden, um kleine Anpassungen und Änderungen am System vorzunehmen. In der endgültigen Version wird BusyBox oft entfernt, etwa bei Android-Handys. Andere Hersteller, beispielsweise AVM oder Dream-Multimedia, lassen BusyBox bewusst auch im endgültigen Produkt auf ihren Geräten.
Das ermöglicht Power-Usern, sich ebenfalls per Shell auf eine Fritzbox oder Dreambox einzuloggen und selbst Firmwareverbesserungen vorzunehmen. Beim Dreambox-Satellitenreceiver wird beispielsweise vermutet, dass die Herstellerfirma gar nichts dagegen hat, wenn alternative Firmware kursiert, die den kostenlosen Empfang verschlüsselter Programme ermöglicht, etwa via Cardsharing.
Die Firmen, die die Entwicklung von Linux vorantrieben, begannen 2000 sich noch besser zu organisieren. Sie gründeten die Open Source Development Labs (OSDL) und die Free Standard Group (FSG) mit teilweise denselben Mitgliedern, zum Beispiel HP, IBM, Dell, Intel, Oracle, Red Hat und Google. 2007 schlossen sich OSDL und FSG zur Linux Foundation zusammen.
In der Zeit ohne Torvalds enstehen die Linux-Versionen 2.2 (1999) und 2.4 (2001). Die Versionen 2.1, 2.3 und 2.5 sind experimentelle "Entwicklerkernel", die nicht für den Produktivbetrieb gedacht sind. Sie dienen dazu, neue Features auszuprobieren.
Linus Torvalds übernimmt ab 2003 wieder das Ruder
2003 kehrt Linus Torvalds in die aktive Entwicklung des Kernels zurück und übernimmt wenig später wieder die Gesamtleitung der Kernelentwicklung. Er wird einer der wenigen Festangestellten der ODSL.
Im selben Jahr gibt es erneut Streit: Die SCO Group (vormals Caldera) behauptet von Novell die Rechte am Namen Unix und am Original-System-V-Unix erworben zu haben. Ferner habe man festgestellt, dass IBM im Rahmen seiner Mitarbeit an Linux System-V-Code einfach in Linux eingeschmuggelt habe, vor allem bei SMP- und NUMA-Unterstützung. Dieser Streit dauert bis 2010 an. Dann stellt ein Gericht fest, dass SCO die Rechte am Namen Unix und am Code gar nicht erworben hat.
Noch im Jahr 2003 gibt Torvalds die Version 2.6 frei. Er beschließt gemeinsam mit Andrew Morton den eigenen Entwicklerkernel nicht fortzuführen. Es gibt keine Version 2.7. Von nun an müssen Entwickler ihre Codeänderungen in die nächste 2.6.x-Version einfließen lassen. Wenn alles stabil läuft, wird die Version freigegeben.
Trotzdem werden einige Features als experimentell gekennzeichnet, etwa das neue Dateisystem btrfs. Wer einen stabilen Kernel braucht, darf das entsprechende Modul nicht einbinden.
Im Mai 2011 gibt Torvalds bekannt, dass auf den Kernel 2.6.39 die Version 3.0 folgen werde. Das soll aber lediglich darauf hinweisen, dass für Linux das dritte Jahrzehnt eingeläutet wird. Er hätte den Kernel genauso gut 2.6.40 nennen können. Künftige Versionen werden 3.1, 3.2, 3.3 und so weiter heißen.
Linux fehlt der Ritterschlag zu Unix
Obwohl Linux eindeutig ein unixoides Betriebssystem ist, darf es sich im Gegensatz zu anderen wie HP/UX, AIX, Mac OS X oder Solaris nicht Unix nennen. Der Markenname Unix wurde von AT&T an Novell verkauft. Novell verkaufte den Namen sogleich weiter an X/Open, die später mit der Open Software Foundation zur Open Group fusionierten.
Die Open Group ist ein hersteller- und technologieneutrales Industrie-Konsortium, das den Namen Unix an jedes Betriebssystem lizensiert, dass die Single Unix Specification (SUS) erfüllt. Dazu gehört nicht nur hundertprozentige Posix-Kompatibilität, sondern auch die Verfügbarkeit von Kommandos mit bestimmten Optionen, und ob sie in /bin oder /usr/bin liegen.
Grundsätzlich kann man daher Linux nicht pauschal nach der SUS zertifizieren, sondern immer nur eine einzelne Distribution. Die Distributoren behaupteten lange Zeit, zumindest wenn die Pakete für die Kompatibilität mit der Linux Standard Base (LSB) installiert seien, wären ihre Linux-Varianten SUS-konform.
Die Zertifizierung wolle man aber nicht vornehmen lassen, da sie zu teuer sei, und ohnehin jeder wisse, dass Linux die aktuelle SUS-Spezifikation SUSv3 erfülle. Doch die Open Group nahm den Distributoren den Wind aus den Segeln, indem sie anbot, die Zertifizierung für einen Dollar durchzuführen.
Bis 2005 machte die Zertifizierung gute Fortschritte, seitdem streiten sich LSB und Open Group. Die Differenzen sind bei der Open Group dokumentiert. Sie sind teilweise trivial zu lösen, etwa dass die LSB-Spezifikation bei den Kommandos chgrp und chown die Parameter -L, -H und -P nicht vorschreibe oder dass -n-Parameter beim cut-Befehl undefiniert sei.
Auch Linus Torvalds selbst ist verantwortlich dafür, dass die SUS-Spezifikation nicht eingehalten wird. Sie besagt beispielsweise, wenn mit kill() ein Signal an den Prozess -1 geschickt wird, dass das Signal an alle Prozesse geht. Torvalds entschied jedoch für Linux, dass der sendende Prozess das Signal als einziger nicht bekommt. Das sei besser so. Recht hat er, aber eine Zertifizierung gibt es mit diesem Verhalten nicht.
Der Cybersecurity Report von Hornetsecurity stuft 2,3 Prozent der Inhalte gar als bösartig ein. Die…
Die Hintermänner haben es auf Zugangsdaten zu Microsoft Azure abgesehen. Die Kampagne ist bis mindestens…
Cloud-Plattform für elektronische Beschaffungsprozesse mit automatisierter Abwicklung elektronischer Rechnungen.
Mindestens eine Schwachstelle erlaubt eine Remotecodeausführung. Dem Entdecker zahlt Google eine besonders hohe Belohnung von…
Nur rund die Hälfte schaltet während der Feiertage komplett vom Job ab. Die anderen sind…
Security-Experten von Check Point sind einer neuen Angriffsart auf die Spur gekommen, die E-Mail-Schutzmaßnahmen umgehen…