Entstehungsgeschichte
Da Linux wie BSD ein Unix-ähnliches Betriebssystem ist und eine Unzahl von Unix-Eigenschaften besitzt, beschäftigen wir uns an dieser Stelle zunächst einmal mit der Entstehungsgeschichte von Unix. Wir beginnen dazu mit einem Rückblick in die graue Vorzeit der Informatik.
Unix
Im Jahre 1965 begannen BELL, General Electric und das MIT, an einem Betriebssystem für Großrechner namens MULTICS (multiplexed information and computing service) zu arbeiten. Als allerdings feststand, dass dieses Vorhaben scheitern würde, stieg BELL aus.
Die Raumfahrt
Als 1969 das Apollo-Raumfahrtprogramm der USA im Mittelpunkt der Aufmerksamkeit stand, begann Ken Thompson (BELL) aufgrund zu primitiver Möglichkeiten der Programmentwicklung mit der Entwicklung eines Zwei-User-Betriebssystems für den DEC PDP-7. Sein Ziel war es, raumfahrtbezogene Programme zu entwickeln, um Orbit-Berechnungen für Satelliten, Mondkalender und Ähnliches zu realisieren. Das Grundprinzip von MULTICS wurde dabei übernommen, und so bekam das spätere Unix beispielsweise ein hierarchisches Dateisystem.
Brian Kernighan nannte dieses System spöttisch UNICS (uniplexed). Erst später benannte man es aufgrund der Begrenzung für die Länge von Dateinamen auf der Entwicklungsplattform GECOS in Unix um.
Ursprünglich waren alle Unix-Programme in Assembler geschrieben. Ken Thompson entschied sich später, einen FORTAN-Compiler <FORTRAN ist wie C eine Programmiersprache der dritten Generation und erlaubt das Programmieren in einer höheren Abstraktionsebene.> zu entwickeln, da Unix seiner Meinung nach ohne einen solchen Compiler wertlos wäre.
Nach kurzer Zeit entschied er sich allerdings, eine neue Programmiersprache namens B zu entwickeln, die stark von der Sprache BCPL (Basic Combined Programming Language) beeinflusst wurde.
Aus B wird C
Da das Team 1971 ein PDP11-System bekam, das byte-adressiert arbeitete, entschloss sich Dennis Ritchie, aus der wortorientierten Sprache B eine byte-orientierte Sprache mit dem schlichten Namen »C« zu entwickeln, indem er u.a. Typen hinzufügte.
1973 wurde der Unix-Kernel komplett neu in C geschrieben. Dieses neue Unix (mittlerweile in der Version 4) wurde damit auf andere Systeme portierbar. Noch im selben Jahr wurde Unix zu einem Multiuser-Multitasking-Betriebssystem weiterentwickelt und der Öffentlichkeit vorgestellt. Da C gleichzeitig eine sehr portable, aber auch systemnahe Sprache war, konnte Unix recht gut auf neuen Plattformen implementiert werden, um dann auch dort performant zu laufen. Die Vorteile einer Hochsprache wurden hier deutlich: Man braucht nur einen Übersetzer für eine neue Hardwareplattform, und schon kann der Code mit nur wenigen Änderungen übernommen werden.
Derivate
1977 nahm man dann auch die erste Implementierung auf ein Nicht-PDP-System vor, nämlich auf eine Interdate 8/32. Dies gab den Anstoß für weitere Unix-Portierungen durch Firmen wie HP und IBM. So begann die Unix-Entwicklung, sich in viele Abkömmlinge, sogenannte Derivate, aufzuspalten.
System V
Die Unix-Variante von AT&T wurde 1981 mit der von BELL zu einem einheitlichen »Unix System III« kombiniert. 1983 kündigte BELL das »System V« an, das primär für den Einsatz auf VAX-Systemen an Universitäten entwickelt wurde. Im Jahr darauf kündigte AT&T die zweite Version von System V an. Die Anzahl der Unix-Installationen stieg bis dahin auf ca. 100.000 an. 1986 erschien System V, Release 3. Schließlich wurde 1989 System V Release 4 (SVR4) freigegeben, das noch heute als Unix-Standard gilt.
Neben SVR4-Unix gab es noch die Entwicklung von BSD-Unix, auf deren Darstellung wir hier natürlich keineswegs verzichten möchten. <Schließlich haben wir der BSD-TCP/IP-Implementierung mehr oder weniger das heutige Internet zu verdanken.> Bereits 1974 verteilte AT&T Quellcode-Lizenzen an einige Universitäten. Auch das Computing Science Research Center (CSRC) der University of California in Berkeley bekam solch eine Lizenz.
BSD-Geschichte
Das erste BSD
In Berkeley wurde in den darauffolgenden Jahren von einem Kreis aus Entwicklern der dortigen Universität neuer Systemcode samt Verbesserungen für AT&T-Unix entwickelt, woraus 1977 »1BSD«, die erste Berkeley Software Distribution, von Bill Joy zusammengestellt wurde. Im darauffolgenden Jahr wurde »2BSD« veröffentlicht, das über neue Software und weitere Verbesserungen verfügte.
Das erste freie Unix
1979 beauftragte die Defense Advanced Research Projects Agency (DARPA) der amerikanischen Regierung die Computer Systems Research Group (CSRG), die Unix-Referenzimplementierung der Protokolle für das ARPANET, den Vorläufer des Internets, zu entwickeln. Die CSRG veröffentlichte schließlich das erste allgemein verfügbare Unix namens 4.2BSD, das unter anderem folgende wichtige Merkmale aufwies:
- Integration von TCP/IP
- Berkeley Fast Filesystem (FFS)
- Verfügbarkeit der Socket-API
Somit kann dieses BSD-Derivat als Urvater des Internets angesehen werden. Durch die Integration von TCP/IP und die Berkeley Socket-API wurden Standards geschaffen bzw. geschaffene Standards umgesetzt, die für das spätere Internet essenziell sein sollten. Wenn man bedenkt, dass selbst heute noch eben diese Berkeley Socket-API als Standard in allen netzwerkfähigen Betriebssystemen implementiert ist, wird erst das volle Ausmaß der Bedeutung dieser Entwicklungen deutlich.
1989 entschloss man sich also schließlich dazu, den TCP/IP-Code in einer von AT&T unabhängigen Lizenz als »Networking Release 1« (Net/1) zu vertreiben. Net/1 war die erste öffentlich verfügbare Version. Viele Hersteller benutzten den Net/1-Code, um TCP/IP in ihre Systeme zu integrieren. In 4.3BSD Reno wurden 1990 noch einmal einige Änderungen am Kernel und in den Socket-APIs vorgenommen, um die OSI-Protokolle aufzunehmen.
Im Juni 1991 wurde Net/2 herausgegeben, das komplett neu und unabhängig vom AT&T-Code entwickelt worden war. Die wichtigsten Neuerungen von Net/2 waren die folgenden:
- komplette Neuimplementierung der C-Bibliothek
- Neuimplementierung von vielen Systemprogrammen
- Ersetzen des AT&T-Kernels bis auf sechs Dateien
Nach einiger Zeit stellte Bill Jolitz, der nun auch die letzten sechs Dateien neu entwickelt hatte, ein vollständiges, bootbares Betriebssystem zum freien FTP-Download zur Verfügung. Es trug den Namen 386/BSD und lief auf der gleichnamigen Intel-Plattform.
Die Berkeley Software Design, Inc. (BSDI) brachte 1991 mit BSD/OS eine kommerzielle Weiterentwicklung von 386/BSD auf den Markt. Diese Version konnte für den Preis von 999 US-Dollar erworben werden.
1992 entstand außerdem das freie NetBSD-ProjektNetBSD, das es sich zum Ziel setzte, 386/BSD als nichtkommerzielles Projekt weiterzuentwickeln und auf möglichst vielen Plattformen verfügbar zu machen.
Nachdem die Unix System Laboratories (USL), eine Tochtergesellschaft von AT&T, BSDI wegen einer Urheberrechtsverletzung verklagt hatten, mussten einige Veränderungen am Net/2-Code vorgenommen werden. Daher mussten 1994 alle freien BSD-Projekte ihren Code auf den von 4.4BSD-Lite (auch als Net/3 bezeichnet) umstellen. Mit der Veröffentlichung von 4.4BSD-Lite2 im Jahre 1995 wurde die CSRG aufgelöst. Allerdings werden die mittlerweile existierenden vier BSD-Derivate NetBSD, BSD/OS, FreeBSD und OpenBSD noch bis heute gepflegt und ständig weiterentwickelt. Im Laufe der letzten Jahre kamen noch diverse weitere Derivate wie PicoBSD dazu.
Linux-Geschichte
Linux entstand, weil sein Entwickler, der finnische Informatik-Student Linus Torvalds, mit dem damals verfügbaren Minix-System von Andrew Tannenbaum nicht ganz zufrieden war. Er beginnt im Frühjahr 1991 mit der Arbeit an diesem neuen System und postete schließlich im August des Jahres eine erste Nachricht in die Minix-Newsgroup:
From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds) Newsgroups: comp.os.minix Subject: What would you like to see most in minix? Date: 25 Aug 91 20:57:08 GMT Hello everybody out there using minix - I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things). I've currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I'll get something practical within a few months, and I'd like to know what features most people would want. Any suggestions are welcome, but I won't promise I'll implement them :-) Linus (torvalds@kruuna.helsinki.fi) PS. Yes – it's free of any minix code, and it has a multi- threaded fs. It is NOT protable (uses 386 task switching etc), and it probably never will support anything other than AT- harddisks, as that's all I have :-(.
Listing 0.1 Linus Torvalds' Posting an comp.os.minix
In seinem Buch »Just for Fun«, das wir Ihnen sehr empfehlen können, schreibt Torvalds, dass er während dieser Zeit fast nichts anderes tat als zu schlafen, zu programmieren und wenig Sex zu haben. Damit entsprach er dem typischen Nerd-Klischee.
Das erste Linux
Die erste veröffentlichte Entwicklerversion (0.01) stellte Linus am 17.09.1991 für Interessenten aus dem Usenet zur Verfügung.
Die erste offizielle Version (0.02) wurde etwas später, nämlich am 05.10.1991, freigegeben.
1992
Im Folgejahr stellte er Version 0.12 auf einen Anonymous FTP-Server, wodurch die Anzahl derjenigen stieg, die an der Systementwicklung mitwirkten. Im gleichen Jahr wurde die Newsgroup alt.os.linux gegründet.
Im gleichen Jahr hagelte es aber auch Kritik von Andrew Tannenbaum (dem Entwickler von Minix). Tannenbaum hielt Linux bereits für veraltet, weil es einen monolithischen Kernel benutzt und zudem schlecht portierbar war.
GNU/Linux
Ebenfalls 1992 wird Linux unter die GNU General Public License (GPL) gestellt, die 1989 von Richard Stallman geschrieben wurde. Richard Stallman gründete 1983 das GNU-Projekt, das freie Software und Kooperationen zwischen den Entwicklern befürwortet. Die wichtigsten Komponenten der Userspace-Software von Linux sind seit Beginn GNU-Programme wie der gcc. Richard Stallman versuchte daher später, den Namen »GNU/Linux« durchzusetzen, was ihm aber nur bedingt gelang.
Linux 1.0 und 2.0
Im Jahre 1994 wurde Version 1.0 veröffentlicht. Der Kernel verfügte zu diesem Zeitpunkt schon über Netzwerkfähigkeit. Außerdem portierte das XFree86-Projekt seine grafische Oberfläche – das X-Window-System – auf Linux. Das wohl wichtigste Ereignis in diesem Jahr ist jedoch, dass Linus endlich auf die Idee kam, den Kernel-Code unter der GNU General Public License zu veröffentlichen. Zwei Jahre später war Linux 2.0 zu haben. Erste Distributionen stellten ihre Systeme nun auf die neue Version um, darunter auch Slackware mit dem »'96«-Release.
Linux 2.2 und 2.4
1998 erschien die Kernel-Version 2.2. Von nun an verfügte Linux auch über Multiprozessorsupport. Im Jahr 2001 erschien schließlich die Version 2.4, mit der weitere Kernfeatures Einzug in den Kernel fanden. Dazu zählen
- die Unterstützung für neue Architekturen wie IMB S/390 und Intel IA64,
- Unterstützung für große Hauptspeicher (bis 64 GByte auf der Intel-Architektur),
- bessere SMP-Unterstützung,
- die Möglichkeit, größere Dateien anzulegen,
- 32-Bit-User- und -Group-IDs,
- ein besserer Sheduler,
- neue Dateisysteme (im Besonderen ReiserFS und DevFS),
- Unterstützung für Plug-and-Play-Geräte (u.a. über Firewire und USB),
- die neue netfilter-Firewall
- und viele weitere Neuerungen.
Kernel 2.6
Die aktuellen Kernel-Versionen bewegen sich seit 2003 im 2.6.x-er-Bereich. Linux bekam mit der neuen Version wieder diverse neue Features. Dazu zählen
- ein neuer O(1)-Sheduler,
- Support für Hyper Threading,
- neue Architekturen (64 Bit PowerPC, 64 Bit AMD, ucLinux und Usermode Linux),
- das ALSA Sound System,
- SATA-Support,
- Bluetooth-Support,
- ein neuer IDE-Layer,
- neue Dateisysteme (JFS, NFSv4, XFS, AFS, ReiserFS 4)
- und viele weitere Neuerungen.
Zeitrechnung
Anhand dieser wichtigen Eckdaten benutzen eingefleischte Linux-Fans teilweise auch ihre eigene Zeitrechnung: Stellt man die Frage: »Seit wann arbeitest du eigentlich mit Linux?«, sollte man auf eine Antwort wie »Schon seit 2.0.34!« gefasst sein.
Gegenwart
Linus Torvalds kümmert sich auch heute noch um die Entwicklung des Linux-Kernels, ihm helfen dabei allerdings viele tausend weltweit verteilte Entwickler. Viele dieser Entwickler arbeiten kostenlos am Kernel, doch einige werden auch von Firmen bezahlt.
Mittlerweile wird Linux in vielen Rechnenzentren, Büros und Forschungsnetzwerken weltweit eingesetzt. Zudem haben sich viele Großprojekte darauf konzentriert, auf diesem freien System aufzubauen. Dazu zählen beispielsweise die beiden Projekte KDE und GNOME, aber auch die Office-Suiten OpenOffice und KOffice sowie die grafische Oberfläche des X.Org-Projekts.
Auch im Heimanwender-Bereich wird Linux seit Jahren verstärkt vorgefunden, was einerseits durch seinen guten Ruf und die Tatsache, dass es gratis zu haben ist, aber auch durch die immer einfachere Handhabung bedingt ist.
Geschichte der Distributionen
SLS
Die erste halbwegs vernünftige Linux-Distribution nannte sich SLS (»Softlanding Linux System«) und wurde 1992 von Peter McDonald erstellt. Da SLS viele Fehler beinhaltete, entwickelten zwei Personen basierend auf SLS jeweils eine neue Distribution, die beide die ältesten heute noch aktiven Distributionsprojekte darstellen.
Slackware, Debian
Der erste war Patrick J. Volkerding, der im Juli 1993 die erste Slackware-Version 1.0.0 freigab, und der zweite, Ian Murdock, gab im August 1993 die erste Debian-Version frei. Auf Debian und Slackware basieren zahlreiche der heute aktiven Distributionen (etwa Zenwalk oder Ubuntu).
Ein besonders interessantes Interview mit Patrick Volkerding, das 1994 vom Linux Journal geführt wurde, findet sich hier: http://www.linuxjournal.com/article/2750. Ebenfalls historisch interessant ist die vom gleichen Journalisten geschriebene Nachricht über die Freigabe der Version 2.0 von Slackware (http://www.linuxjournal.com/article/2795).
RedHat
Im November 1994 wurde die RedHat-Distribution gegründet, die auf Slackware basierte, aber ein eigenes Paketformat (RPM) bekam.
Auf RedHat basieren die heutigen Distributionen RedHat Enterprise Linux und Fedora Core.
SuSE
Ebenfalls 1994 wurde die Distribution SuSE-Linux (mittlerweile komplett groß geschrieben: SUSE-Linux) ins Leben gerufen.
SuSE basierte auch eine Zeit lang auf Slackware-Linux, wurde aber später unabhängig von Slackware.
Mandrake
Im Juli 1998 wurde mit Mandrake-Linux eine neue benutzerfreundliche Distribution veröffentlicht, die auf RedHat basierte. Heute heißt Mandrake-Linux Mandrivia-Linux.
Aktuell
Bis Anfang dieses Jahrzehnts entstanden weitere wichtige Distributionen (im Besonderen Gentoo, Knoppix und Ubuntu).