Eine Geschichte von Linux: Vom Hobbyprojekt 1991 zur globalen Infrastruktur

Die Geschichte von Linux begann ernsthaft im Jahr 1991, als der finnische Universitätsstudent Linus Torvalds einen Kernel für die Nutzung auf Personalcomputern entwickelte. Die Linux-Umgebung, die wir heute verwenden, ist jedoch kein von einer einzigen Person abgeschlossenes Betriebssystem; sie ist das Ergebnis jahrzehntelanger Kombination des Linux-Kernels, GNU-Werkzeugen, Distributionen und einer weltweiten Entwicklergemeinschaft. Die Grundlagen erklärt Was ist Linux? Den Kernel, Distributionen und Open Source verstehen.

Das Erste, was man wissen sollte: Linux ist ein Kernel

Wie unterscheiden sich der Linux-Kernel und das gesamte Betriebssystem?

Streng genommen ist Linux der Kernel, der Kern des Betriebssystems. Der Kernel verwaltet Hardware-Ressourcen wie Prozessor, Speicher und Speicherplatz und koordiniert dazwischen, sodass Anwendungen die Hardware sicher nutzen können.

Die Distributionen, die Benutzer tatsächlich installieren, wie Ubuntu, Debian und Rocky Linux, sind vollständige Benutzerumgebungen, die den Linux-Kernel mit einer Shell, Systemwerkzeugen, Bibliotheken, Paketmanagern und Anwendungen bündeln. Aus diesem Grund wird das gesamte System üblicherweise als 'Linux' bezeichnet, aber wenn die historischen Komponenten betont werden, wird auch der Name 'GNU/Linux' verwendet. Die Erklärung des GNU-Projekts zu Linux und GNU geht detailliert auf die Beziehung zwischen den beiden Begriffen ein.

Was genau macht der Kernel?

Der Kernel liegt zwischen den regulären Programmen, die Benutzer ausführen, und der Hardware. Aufgaben wie das Lesen einer Datei durch einen Webbrowser oder das Senden von Netzwerkpaketen durch ein Serverprogramm werden letztlich über Systemaufrufe abgewickelt, die vom Kernel bereitgestellt werden. Um die Geschichte von Linux zu verstehen, ist es hilfreich, zunächst die folgenden vier Rollen zu unterscheiden.

  • Prozessverwaltung: Weist mehreren Programmen CPU-Zeit zu und koordiniert die Ausführungsreihenfolge.
  • Speicherverwaltung: Teilt den Speicherplatz für jedes Programm auf und schützt sie vor Überschneidungen.
  • Geräteverwaltung: Steuert Speichergeräte, Netzwerkkarten, Grafikgeräte und Peripheriegeräte über Treiber.
  • Datei- und Netzwerkverwaltung: Bietet gängige Schnittstellen, die für Dateisysteme und Netzwerkkommunikation erforderlich sind.

Daher stehen Änderungen bei der Unterstützung neuer Hardware, Leistung, Sicherheit, Energieverwaltung und Server-Skalierbarkeit größtenteils in Verbindung mit der Geschichte des Kernels. Im Gegensatz dazu sind Desktop-Bildschirme, Paketinstallationsbefehle und Basisanwendungen eher mit der Geschichte von Distributionen oder User-Space-Software verbunden.

Vor Linux: Das Design von UNIX und des GNU-Projekts

Linux ist ein Unix-ähnlicher Kernel, der so konzipiert ist, dass er ähnlich wie UNIX funktioniert. Das Multi-User- und Multitasking-Modell von UNIX, die Methode, kleine Werkzeuge zu kombinieren, und seine dateizentrierte Schnittstelle hatten einen erheblichen Einfluss auf spätere Betriebssystementwürfe. Linux ist jedoch kein Produkt, das aus UNIX-Quellcode abgeleitet wurde; es ist ein unabhängig entwickelter Kernel.

1983 kündigte Richard Stallman das GNU-Projekt an, das darauf abzielte, ein UNIX-kompatibles freies Betriebssystem zu schaffen, das jeder ausführen, studieren, verändern und verbreiten konnte. Die Entwicklung begann 1984, und um 1990 herum waren die Hauptkomponenten wie der Compiler, die Shell, der Editor und verschiedene Befehle vorhanden, aber ein praktischer Kernel war noch nicht fertiggestellt. Diese Hintergrundinformationen finden sich in der offiziellen Geschichte des GNU-Systems.

1991: Ein kleines persönliches Projekt wird öffentlich gemacht

Linus Torvalds, ein Student der Universität Helsinki, begann ungefähr im April 1991 als persönliches Projekt mit der Entwicklung eines Betriebssystemkerns für Intel-386-PCs. Am 25. August desselben Jahres stellte er das kostenlose Betriebssystem, das er entwickelte, einer Usenet-Newsgroup für MINIX-Benutzer vor und bat um Rückmeldungen.

Laut dem 2020 Linux Kernel History Report der Linux Foundation wurde die erste öffentliche Version, Linux 0.01, am 17. September 1991 veröffentlicht. Zu diesem Zeitpunkt bestand der Code aus 88 Dateien und 10.239 Zeilen und lief nur auf einer Art von Hardwarearchitektur, dem i386. Es war von Anfang an kein Allzwecksystem.

1992–1994: Freie Software trifft auf Distributionen

Die GNU GPL änderte die Bedingungen der Zusammenarbeit

Im Jahr 1992 wurde Linux unter der GNU General Public License (GNU GPL) weiterverteilt, was es den Nutzern erlaubte, den Quellcode einzusehen, zu ändern und unter denselben Bedingungen weiterzugeben. Der Linux-Kernel wurde mit bereits bestehenden GNU-Tools kombiniert, und mit dem Aufkommen von Distributionen, die für die Installation und Softwareverwaltung verantwortlich sind, entwickelte er sich zu einer nutzbaren Betriebssystemumgebung.

Debian, gestartet von Ian Murdock im August 1993, entwickelte ein Modell von gemeinschaftlich erstellten Distributionen, die offen zusammen geschaffen wurden. Laut der offiziellen Geschichte des Debian-Projekts strebte Debian von Anfang an eine konsistente Distribution und systematisches Paketmanagement an. Etwa zur gleichen Zeit wuchsen auch Distributionen mit kommerzieller Unterstützung, die die Grundlage dafür schufen, dass nicht nur Einzelbenutzer, sondern auch Unternehmen Linux übernehmen konnten.

Am 13. März 1994 wurde Linux 1.0 veröffentlicht. Das Linux 1.0 Archiv auf kernel.org bewahrt den Quell- und Änderungsverlauf aus dieser Zeit. Die Versionsnummer 1.0 war ein symbolischer Meilenstein, der anzeigte, dass Linux begann, sich als stabile Open-Source-Software jenseits eines rein experimentellen Projekts zu etablieren.

Distributionen machten Linux als Produkt nutzbar

Frühe Benutzer mussten den Kernel und verschiedene Werkzeuge selbst sammeln und konfigurieren. Distributionen ersetzten diesen komplexen Prozess durch die Bereitstellung von Installern, vorgefertigten Softwarepaketen, Abhängigkeitsinformationen und Update-Repositories. Selbst bei der Verwendung desselben Linux-Kernels entstehen verschiedene Distributionen, abhängig davon, welche Software gewählt wird, wie lange Updates bereitgestellt werden und wie Konfigurationen verwaltet werden.

Debian hat ein Modell entwickelt, bei dem eine freiwillige Gemeinschaft Richtlinien und Paketssysteme gemeinsam verwaltet. Im Gegensatz dazu hat Red Hat einen Weg erschlossen, der die Ergebnisse der offenen Entwicklung mit stabilen Unternehmensprodukten und technischem Support verbindet. Die offizielle Red Hat Geschichte erklärt den Prozess von der CD-Verteilung in den 1990er Jahren bis hin zu Unternehmensabonnementmodellen und Community-Distributionen. Mit dem Nebeneinander dieser unterschiedlichen Modelle konnte Linux vom persönlichen Lernen bis zu Unternehmensservern, die einen langfristigen Betrieb erfordern, weit verbreitet genutzt werden.

Wichtiger Zeitplan der Linux-Geschichte

Jahr Hauptereignisse Bedeutung
1983 Ankündigung des GNU-Projekts Das Ziel eines frei nutzbaren UNIX-kompatiblen Betriebssystems wurde vorgestellt.
1984 Beginn der Entwicklung des GNU-Systems Compiler, Shells und grundlegende Benutzerbereichswerkzeuge wurden erstellt.
1991 Vorstellung des Linux-Projekts und Veröffentlichung von Linux 0.01 Persönliche Projekte wurden zum Ausgangspunkt für kollaborative Internetentwicklung.
1992 Linux unter der GNU GPL verteilt Die Kollaborationsbasis, die Modifikation und Weiterverbreitung von Quellcode ermöglicht, wurde gestärkt.
1993 Debian-Projekt gestartet Öffentliche Community-Distributionen und systematische Paketverwaltung wuchsen.
1994 Linux 1.0 veröffentlicht Es wurde zu einem wichtigen Meilenstein, der zu einem stabilen öffentlichen Kernel entwickelte.
1996 Linux 2.0 veröffentlicht Die Unterstützung für symmetrisches Multiprocessing (SMP) wurde voll ausgereift, was den Einsatz von Servern erweiterte.
2000 Gründung der Open Source Development Labs Die Grundlage für die Unternehmensakzeptanz und die geschäftliche Unterstützung der Linux-Entwicklung wurde gestärkt.
2003 Linux 2.6 veröffentlicht Eine langfristige Entwicklungsgrundlage für vielfältigere Geräte und große Systeme entstand.
2005 Einführung von Git Die Zusammenarbeit am Kernel wurde durch ein Versionskontrollsystem ausgeweitet, das für groß angelegte verteilte Entwicklung geeignet ist.
2007 Gründung der Linux Foundation OSDL und die Free Standards Group fusionierten, um eine Organisation für Entwicklung, Standardisierung und rechtliche Unterstützung zu schaffen.

Von 1.0 bis 2.6: Wie der PC-Kernel zu einer universellen Basis wuchs

Linux 1.0 wurde hauptsächlich auf Intel-386-basierten PCs verwendet, aber spätere Versionen wurden schnell erweitert, um mehr Prozessoren und Geräte zu unterstützen. Anstatt alle Gerätefunktionen im Kernel zu integrieren, wurde es möglich, notwendige Funktionen als Module zu laden, was die Handhabung verschiedener Hardwarekombinationen erleichterte.

Linux 2.0 im Jahr 1996 unterstützte Symmetric Multiprocessing (SMP), das es ermöglicht, mehrere Prozessoren zusammen zu verwenden, was einen wichtigen Schritt in seinem Wachstum als Server-Betriebssystem markierte. In den anschließenden Serien 2.4 und 2.6 verbesserte sich die Unterstützung für neue Geräte, Planung, Speicherverwaltung und die Skalierbarkeit von Großsystemen weiter. Wenn man sich das 2.6-Archiv auf kernel.org ansieht, kann man erkennen, dass nach der Veröffentlichung von 2.6.0 im Dezember 2003 die stabilen und langfristig unterstützten Versionen weiterhin fortgesetzt wurden.

In diesem Zeitraum etablierte sich Linux als ein allgemeiner Kernel, der auf verschiedenen Architekturen läuft und über das bloße ‚Verwenden einer UNIX-ähnlichen Umgebung auf preiswerten PCs‘ hinausgeht. Mit der Bereitstellung von Treibern durch Hardwarehersteller und der Beteiligung von Unternehmen an Leistungs- und Stabilitätsverbesserungen entstand eine Struktur, in der die Gemeinschaft und kommerzielle Interessen in einem einzigen Hauptkern zusammentreffen.

Im Jahr 2005 wurde Git geschaffen, um die Entwicklung in diesem Umfang zu bewältigen.

Die Kernel-Gemeinschaft benötigte ein neues Versionskontroll-Tool.

Als der Code von Linux wuchs und immer mehr Menschen daran teilnahmen, wurde es wichtig, zu verwalten, wer welche Änderungen vornahm und wie die verschiedenen Entwicklungsstränge zusammengeführt werden sollten. Die Kernel-Community nutzte eine Zeit lang ein Versionskontrollwerkzeug namens BitKeeper, aber als die freie Nutzungsvereinbarung 2005 endete, wurde ein neues Werkzeug benötigt.

Linus Torvalds entwickelte Git, mit dem Fokus auf schnelle Änderungsverfolgung, verteilte Arbeit und groß angelegte Zusammenführung. Die kurze Geschichte von Git in der offiziellen Dokumentation erklärt, dass Git aus den Bedürfnissen der Linux-Kernel-Entwicklungsgemeinschaft entstanden ist. Seitdem ist Git zu einem repräsentativen Versionskontrollsystem geworden, das über die Kernel-Entwicklung hinaus in der Softwareentwicklung verwendet wird.

Wie werden Änderungen am aktuellen Kernel zusammengeführt?

Von Entwicklern geschriebene Änderungen werden in Form von Patches veröffentlicht und von den für die jeweiligen Subsysteme verantwortlichen Personen sowie anderen Entwicklern überprüft. Verifizierte Änderungen aus spezialisierten Repositorien wie Netzwerk, Dateisystem, Treiber und Prozessorarchitektur werden nach und nach in den Hauptzweig zusammengeführt. Unmittelbar nach der Veröffentlichung einer neuen Version öffnet sich eine Zusammenführungsphase für wichtige Funktionen, und während der Release-Kandidaten-Phase liegt der Fokus auf der Behebung von Regressionsfehlern und Stabilitätsproblemen.

Diese Struktur erlaubt es niemandem, sofort Code in den finalen Kernel einzufügen. Während öffentliche Beteiligung möglich ist, wird die Qualität durch Überprüfungen, Tests, verantwortliche Maintainer und schrittweise Integrationsverfahren sichergestellt. Das Linux Kernel Development HOWTO erklärt die Mainline-, Stable-Versionen, Subsystem-Bäume und den Patch-Einreichungsprozess.

Von Servern bis zu mobilen Geräten und der Cloud

Wuchs im Server- und Unternehmensmarkt

Seit den späten 1990er Jahren ist Linux im Serverbereich aufgrund seiner Stabilität, Netzwerkmöglichkeiten und Unterstützung für verschiedene Hardware schnell gewachsen. Distributionsanbieter stellten langfristige Updates und technischen Support bereit, wodurch Unternehmen Linux für Webserver, Datenbanken und Unternehmenssysteme einsetzen konnten.

In den 2000er Jahren, als Virtualisierung und Cloud Computing verbreitet wurden, wurden die Vorteile von Linux, das leicht zu automatisieren und an Bedürfnisse anpassbar ist, noch wichtiger. Auf den Prozessisolations- und Ressourcenkontrollfähigkeiten von Linux basierende Container wurden ebenfalls entwickelt. Die heutige Kernel-Entwicklung wird nicht von einer einzelnen Organisation durchgeführt, die den gesamten Code erstellt, sondern durch eine verteilte kollaborative Struktur, in der Subsystem-Maintainer Patches prüfen und integrieren. Die neuesten Entwicklungsverfahren sind in der offiziellen Dokumentation zur Linux-Kernel-Entwicklung zu finden.

Warum passten Container und die Cloud gut zu Linux?

Virtuelle Maschinen führen im Allgemeinen für jede Instanz einen separaten Betriebssystemkernel aus, während Container den Linux-Kernel des Hosts teilen und gleichzeitig Prozesse isolieren. Namespaces teilen die von Prozessen gesehenen Benutzer-, Netzwerk-, Dateisystem- und Prozess-ID-Bereiche, und Kontrollgruppen (cgroups) bündeln CPU-, Speicher- und I/O-Ressourcennutzung, um diese zu begrenzen oder zu messen.

Ein Container ist nicht dasselbe wie eine einzelne Linux-Kernel-Funktion. Er erfordert ein Image-Format, Ausführungswerkzeuge und die Verwaltung von Netzwerken und Speicher zusammen. Da jedoch die grundlegende Basis für Isolierung und Ressourcensteuerung im Kernel enthalten war, konnte ein Ökosystem für die schnelle Bereitstellung von Anwendungen auf groß angelegten Servern entstehen. Detaillierte Vorgänge finden Sie in der Linux-Kernel-cgroup-v2-Dokumentation.

Erweitert auf mobile und eingebettete Geräte

Linux blieb nicht nur auf PCs und Servern. Es wurde auf Router, Autos, Industrieanlagen und verschiedene eingebettete Geräte portiert und drang tief in Smartphones ein. Zum Beispiel basiert laut der Kernel-Beschreibung des Android Open Source Project der Android-Kernel auf dem upstream Linux Long-Term-Support (LTS) Kernel.

Unternehmensbeteiligung widersprach der offenen Entwicklung nicht

Das frühe Wachstum von Linux beruhte stark auf der Beteiligung einzelner Entwickler sowie von Universitäts- und Hobby-Communities. Mit der Erweiterung des Anwendungsbereichs begannen auch Serverhersteller, Halbleiterunternehmen, Distributionsanbieter und Cloud-Anbieter, Funktionen zu entwickeln, die für ihre Produkte erforderlich sind, und diese in den Mainline zu integrieren. Dies liegt daran, dass in den Mainline aufgenommener Code an verschiedene Distributionen und Benutzer ausgeliefert werden kann und gemeinsame Überprüfung und Wartung erhält.

Im Jahr 2000 wurde das Open Source Development Labs (OSDL) gegründet, um die Einführung und Entwicklung von Linux in Unternehmen zu unterstützen. Im Jahr 2007 fusionierte OSDL mit der Free Standards Group, um die Linux Foundation zu gründen. Laut der Erklärung zur organisatorischen Geschichte der Linux Foundation unterstützt diese Organisation die Kernel-Community dabei, die unabhängige Entwicklung fortzusetzen, während sie Entwicklungsinfrastruktur, Standardisierung, Veranstaltungen, Bildung sowie rechtliche und Markenunterstützung bereitstellt.

Die Struktur überträgt nicht alle Urheberrechte des Codes auf ein einzelnes Unternehmen. Offizielle Dokumente zur Kernel-Entwicklung erklären, dass Code, der in den Mainline aufgenommen wird, Eigentum des ursprünglichen Urheberrechtsinhabers bleibt. Der gesamte Linux-Kernel wird unter den Bedingungen der GNU GPL Version 2 (GPL-2.0-only) bereitgestellt, und einzelne Quellcode-Dateien können unter kompatiblen Lizenzen oder Doppellizenzen stehen.

Die Betrachtung der Linux-Geschichte in drei Ebenen hilft, Verwirrung zu reduzieren.

Kategorie Was beinhaltet es? Rolle in der Geschichte
Linux-Kernel Prozess-, Speicher-, Geräte-, Datei- und Netzwerkverwaltung Es bot eine gemeinsame Grundlage, die Hardware und Programme verbindet.
Benutzerbereich GNU-Tools, Shells, Bibliotheken, Dienste und Desktop-Umgebungen Schuf eine Umgebung, in der Benutzer und Anwendungen tatsächliche Aufgaben ausführen können.
Distribution Installationswerkzeuge, Paket-Repositories, Standardeinstellungen, Updates und Support-Richtlinien Integrierte mehrere Komponenten in ein zweckgebundenes Betriebssystem und verteilte es.

Diese drei Schichten stehen in engem Zusammenhang, sind jedoch nicht identisch. Zum Beispiel kann ein Sicherheitsfix im Kernel häufig mehrere Distributionen betreffen, aber Paketversionen und Unterstützungszeiträume können je nach Distribution unterschiedlich sein. Android verwendet ebenfalls den Linux-Kernel, aber sein Userspace und seine Anwendungsstruktur unterscheiden sich von allgemeinen Desktop-GNU/Linux-Distributionen.

Der Grund, warum Linux über einen langen Zeitraum wachsen konnte

  • Open-Source-Code: Jeder kann den Code überprüfen, Probleme beheben oder Unterstützung für neue Hardware vorschlagen.
  • Klare Lizenz: Die GNU GPL bietet Bedingungen für Modifikation und Weiterverbreitung und bildet die rechtliche Grundlage für die kollaborative Entwicklung.
  • Internetbasierte Zusammenarbeit: Mailinglisten, Maintainer und öffentliche Überprüfungsprozesse haben die Entwicklung über regionale und organisatorische Grenzen hinaus ermöglicht.
  • Distributionsökosystem: Installationswerkzeuge, Pakete, Aktualisierungspolitiken und technischer Support, die auf verschiedene Zwecke zugeschnitten sind, werden bereitgestellt.
  • Hohe Portabilität: Es kann auf verschiedener Hardware verwendet werden, von Personalcomputern über Server, Smartphones bis hin zu eingebetteten Geräten.

Was die Linux-Geschichte zeigt

Das Wachstum von Linux lässt sich nicht nur durch den Erfolg eines herausragenden Kernels erklären. Es konnte über einen langen Zeitraum wachsen, weil das bewährte Design von UNIX-Systemen, GNU-Werkzeugen und der Bewegung für freie Software, Integrationsarbeit durch Distributionen, Investitionen von Unternehmen und die öffentliche Zusammenarbeit von Entwicklern weltweit alle ineinandergreifen.

Daher geht der Kern der Linux-Geschichte über das "Wer hat was 1991 gemacht" hinaus. Es ist am genauesten, sie als den Prozess zu verstehen, durch den eine Entwicklungsmethode - bei der die Gemeinschaft öffentlich freigegebene Technologie überprüft, verbessert und für unterschiedliche Zwecke umkonfiguriert - zu einer kritischen Infrastruktur in der realen Welt wurde.

Häufig gestellte Fragen

Wer hat Linux erschaffen?

Der Linux-Kernel wurde 1991 von Linus Torvalds gestartet. Seitdem haben einzelne Entwickler und Unternehmen auf der ganzen Welt zum Code beigetragen und ihn zu einem groß angelegten Gemeinschaftsprojekt entwickelt.

Sind Linux und UNIX dasselbe Betriebssystem?

Nein, sie sind nicht dasselbe. Linux ist ein Unix-ähnlicher Kernel, der dem Design und der Nutzung von UNIX folgt, aber unabhängig entwickelt wurde. UNIX ist eine historische Familie von Betriebssystemen und hat ebenfalls die Bedeutung einer zertifizierten Marke.

Was ist der Unterschied zwischen Linux und GNU/Linux?

Linux bezieht sich strikt auf den Kernel. GNU/Linux ist ein Name, der das gesamte Betriebssystem betont, das aus dem Linux-Kernel und GNU-Tools besteht. Im alltäglichen Gebrauch werden Distributionen und das gesamte System ebenfalls häufig als Linux bezeichnet.

Warum werden Distributionen benötigt?

Mit nur dem Kernel ist es für normale Benutzer schwierig, eine vollständige Computerumgebung zu nutzen. Distributionen bieten ein für den Zweck geeignetes Betriebssystem, indem sie Installer, Systemwerkzeuge, Paketmanager, Update-Politiken und Anwendungen bündeln.

Kann ein Unternehmen das Open-Source-Linux verkaufen?

Ja, es ist möglich. Die 'Freiheit' in freier Software bedeutet nicht unbedingt einen kostenlosen Preis. Unternehmen können Software gegen Gebühr anbieten, indem sie Vertrieb, langfristige Updates, Sicherheitszertifizierungen, technischen Support und Betriebsmittel bündeln. Beim Ändern und Verteilen des Linux-Kernel-Codes müssen sie jedoch die Lizenzanforderungen einhalten, wie das Bereitstellen des Quellcodes, wie von der GNU GPL gefordert.

Besitzt ein Unternehmen Linux?

Kein einzelnes Unternehmen besitzt und kontrolliert die Entwicklung des Linux-Kernels ausschließlich. Linus Torvalds verwaltet den Mainline-Zweig, und Maintainer in jedem Bereich integrieren Änderungen, aber das Copyright des Codes ist unter zahlreichen Mitwirkenden verteilt. Die Linux Foundation unterstützt die Entwicklungsumgebung und das Ökosystem, ist jedoch keine Organisation, die den gesamten Kernel wie ein Unternehmensprodukt besitzt.

Referenzen