Unix ist aufgrund seiner großen Unterstützung und Verbreitung eines der beliebtesten Betriebssysteme weltweit. Ursprünglich wurde es Mitte der 1970er Jahre als Multitasking-System für Minicomputer und Mainframes entwickelt. Seitdem hat es sich zu einem der am weitesten verbreiteten Betriebssysteme überhaupt entwickelt, trotz seiner manchmal verwirrenden Oberfläche und der fehlenden zentralen Standardisierung.
Der wahre Grund für die Beliebtheit von Unix? Viele Hacker sind der Meinung, dass Unix das Richtige ist – das einzig wahre Betriebssystem. Daher die Entwicklung von Linux durch eine wachsende Gruppe von Unix-Hackern, die sich mit ihrem eigenen System die Hände schmutzig machen wollen.
Versionen von Unix gibt es für viele Systeme, von Personal Computern bis hin zu Supercomputern wie dem Cray Y-MP. Die meisten Unix-Versionen für Personalcomputer sind recht teuer und umständlich. Zum Zeitpunkt des Verfassens dieses Artikels kostet eine Ein-Maschinen-Version von AT&T’s System V für den 386er etwa $US1500.
Linux ist eine frei verteilbare Version von Unix, die ursprünglich von Linus Torvalds entwickelt wurde, der 1991 als Student an der Universität von Helsinki in Finnland mit der Arbeit an Linux begann.Linus arbeitet jetzt für die Transmeta Corporation, ein Start-up-Unternehmen in Santa Clara, Kalifornien, und pflegt weiterhin den Linux-Kernel, d.h. die niedrigste Kernkomponente des Betriebssystems.
Linus veröffentlichte die erste Version von Linux kostenlos im Internet und löste damit ungewollt eines der größten Softwareentwicklungsphänomene aller Zeiten aus. Heute wird Linux von einer Gruppe von mehreren Tausend (wenn nicht mehr) Entwicklern entwickelt und gepflegt, die lose über das Internet zusammenarbeiten. Im März 1999 fand in San Jose, Kalifornien, die erste Linux World Expo statt, an der Berichten zufolge weit über 12.000 Menschen teilnahmen. Die meisten Schätzungen gehen davon aus, dass die Zahl der Linux-Benutzer weltweit um die 10-Millionen-Marke liegt (und wir erwarten, dass diese Zahl klein aussehen wird, wenn Sie dies lesen).
Inspiriert von Andrew Tanenbaums Minix-Betriebssystem (ein weiteres freies Unix für PCs – wenn auch ein sehr einfaches), begann Linux als Klassenprojekt, bei dem Linus ein einfaches Unix-System bauen wollte, das auf einem 386er PC laufen konnte.Die ersten Diskussionen über Linux fanden in der Usenet-Newsgroup comp.os.minix statt. Diese Diskussionen drehten sich hauptsächlich um die Entwicklung eines kleinen, akademischen Unix-Systems für Minix-Benutzer, die mehr wollten.
Die sehr frühe Entwicklung von Linux beschäftigte sich hauptsächlich mit den Task-Switching-Funktionen der 80386 Protected-Mode-Schnittstelle, die alle in Assembler-Code geschrieben waren. Linus schreibt:
Danach war es einfach: immer noch haarige Codierung, aber ich hatte einige Geräte, und das Debuggen war einfacher. In dieser Phase habe ich angefangen, C zu verwenden, was die Entwicklung sicherlich beschleunigt. Das ist auch der Zeitpunkt, an dem ich anfange, mich ernsthaft mit meinen größenwahnsinnigen Ideen zu beschäftigen, „ein besseres Minix als Minix“ zu entwickeln. Ich hatte gehofft, dass ich eines Tages in der Lage sein würde, den Compilegcc unter Linux zu rekompilieren …
Zwei Monate für die Grundeinrichtung, aber dann nur etwas länger, bis ich einen Festplattentreiber (ernsthaft fehlerhaft, aber er funktionierte zufällig auf meiner Maschine)und ein kleines Dateisystem hatte. Das war ungefähr der Zeitpunkt, an dem ich 0.01 verfügbar machte: es war nicht schön, hatte keinen Floppydriver und konnte so gut wie nichts machen. Ich glaube nicht, dass irgendjemand diese Version jemals kompiliert hat. Aber zu diesem Zeitpunkt war ich süchtig und wollte nicht aufhören, bis ich Minix rausschmeißen konnte.
Es wurde nie eine Ankündigung für Linux Version 0.01 gemacht. Die 0.01-Quellen waren nicht einmal ausführbar: Sie enthielten nur die nackten Grundlagen des Kernel-Quellcodes und setzten voraus, dass man Zugang zu einer Minix-Maschine hatte, um sie zu kompilieren und damit zu spielen.
Am 5. Oktober 1991 kündigte Linus die erste „offizielle“ Version von Linux an, Version 0.02. Zu diesem Zeitpunkt war Linus in der Lage, bash (die GNU Bourne AgainShell) und gcc (den GNU C-Compiler) laufen zu lassen, aber sonst funktionierte nicht viel. Auch dieses System war als Hackersystem gedacht. Das Hauptaugenmerk lag auf der Entwicklung des Kernels; keine der Fragen der Benutzerunterstützung, der Dokumentation, der Verteilung und so weiter wurden überhaupt in Angriff genommen. Heute ist die Situation ganz anders – die wirkliche Aufregung in der Linux-Welt dreht sich um grafische Benutzerumgebungen, einfach zu installierende Distributionspakete und High-Level-Anwendungen wie Grafikprogramme und Produktivitätssuiten.
Linus schrieb in comp.os.minix:
Sehnst du dich nach den schönen Tagen von Minix-1.1, als Männer noch Männer waren und ihre eigenen Gerätetreiber schrieben? Haben Sie kein schönes Projekt und brennen darauf, sich an einem Betriebssystem auszuprobieren, das Sie für Ihre Bedürfnisse anpassen können? Finden Sie es frustrierend, wenn unter Minix alles funktioniert und Sie sich nicht mehr die Nächte um die Ohren schlagen können, um ein schickes Programm zum Laufen zu bringen? Dann könnte dieser Beitrag genau das Richtige für Sie sein.
Wie ich vor einem Monat erwähnte, arbeite ich an einer freien Version eines Minix-ähnlichen Programms für AT-386-Computer. Sie hat endlich das Stadium erreicht, in dem sie sogar benutzbar ist (obwohl sie es vielleicht nicht ist, je nachdem, was Sie wollen), und ich bin bereit, die Quellen für eine breitere Verteilung herauszugeben.Es ist nur Version 0.02 … aber ich habe erfolgreichbash, gcc, GNU make, GNUsed, compress, etc. unter ihr laufen lassen.
Nach Version 0.03 hat Linus die Versionsnummer auf 0.10 erhöht, als mehr Leute anfingen, an dem System zu arbeiten. Nach mehreren weiteren Überarbeitungen erhöhte Linus die Versionsnummer auf 0.95, um seiner Erwartung Ausdruck zu verleihen, dass das System sehr bald für eine „offizielle“ Veröffentlichung bereit sei. (Im Allgemeinen wird Software erst dann mit der Versionsnummer 1.0 versehen, wenn sie theoretisch vollständig oder fehlerfrei ist). Das war im März 1992. Fast eineinhalb Jahre später, Ende Dezember 1993, befand sich der Linux-Kernel immer noch in der Version 0.99.pl14 – und näherte sich damit asymptotisch der Version 1.0. Version 1.0 erschien im März 1994. Zum Zeitpunkt der Abfassung dieses Artikels (März 1999) ist die aktuelle Kernelversion 2.2.6, während die 2.3 Kernelversionen gleichzeitig entwickelt werden. (Wir werden die Linux-Versionskonventionen später detailliert erläutern.)
Linux hätte ohne die GNU-Werkzeuge der Free Software Foundation nicht entstehen können, deren gcc-Compiler, den wir in Kapitel 13 besprechen werden, den Code von Linus Torvalds zum Leben erweckte. Die GNU-Tools waren von Anfang an mit der Entwicklung von Linux verwoben. Wegen der entscheidenden Beiträge dieser Werkzeuge fordert die Free Software Foundation sogar, dass Linux-Distributionen mit den dazugehörigen Dienstprogrammen GNU/Linux genannt werden.
Berkeley Unix (BSD) hat ebenfalls eine wichtige Rolle bei Linux gespielt – nicht so sehr bei seiner Entwicklung, sondern bei der Bereitstellung der Werkzeuge, die es populär machen. Die meisten der in den Linux-Distributionen enthaltenen Hilfsprogramme wurden von BSD portiert. Besonders wichtig sind die Netzwerk-Daemons und -Utilities. Der Netzwerkcode des Linux-Kernels wurde von Grund auf neu entwickelt (sogar zwei- oder dreimal), aber die Daemons und Dienstprogramme sind klassische BSD-Programme.
Heute ist Linux ein kompletter Unix-Klon, der in der Lage ist, das X-Window-System, TCP/IP, Emacs, Web-, Mail- und News-Software und vieles mehr auszuführen. Fast alle wichtigen freien Softwarepakete wurden auf Linux portiert, und es wird immer mehr kommerzielle Software verfügbar. Tatsächlich schreiben viele Entwickler zunächst Anwendungen für Linux und portieren sie später auf andere Unixsysteme. Es wird mehr Hardware unterstützt als in den ursprünglichen Versionen des Kernels. Viele Leute haben Benchmarks auf Linux-Systemen durchgeführt und festgestellt, dass sie schneller sind als Workstations von Sun Microsystems und Compaq, und Linux schneidet bei einer Vielzahl von Benchmarks besser oder gleich gut ab wie Windows 98 und Windows NT.
Wer hätte jemals gedacht, dass dieser „kleine“ Unix-Klon so groß werden würde, dass er die gesamte Welt der Personal- und Server-Computer erobern würde?