Der Linux-Kernel ist 31 Jahre alt

Am 25. August 1991, nach fünfmonatiger Entwicklungszeit, gab der 21-jährige Student Linus Torvalds auf der comp.os.minix-Telefonkonferenz bekannt, dass ein funktionierender Prototyp des neuen Linux-Betriebssystems fertiggestellt sei, der Bash 1.08 und GCC 1.40 portiert habe abgeschlossen wurde. Die erste öffentliche Veröffentlichung des Linux-Kernels wurde am 17. September veröffentlicht. Der 0.0.1-Kernel war 62 KB komprimiert und enthielt etwa 10 Zeilen Quellcode. Der moderne Linux-Kernel verfügt über über 30 Millionen Codezeilen. Laut einer von der Europäischen Union im Jahr 2010 in Auftrag gegebenen Studie würden die ungefähren Kosten für die Neuentwicklung eines Projekts, das dem modernen Linux-Kernel ähnelt, mehr als eine Milliarde US-Dollar betragen (die Berechnung erfolgte, als der Kernel über 13 Millionen Codezeilen verfügte). , nach anderen Schätzungen - mehr als 3 Milliarden.

Der Linux-Kernel wurde vom MINIX-Betriebssystem inspiriert, das mit seiner begrenzten Lizenz nicht zu Linus passte. Als Linux später zu einem bekannten Projekt wurde, versuchten Kritiker, Linus vorzuwerfen, den Code einiger MINIX-Subsysteme direkt kopiert zu haben. Der Angriff wurde von Andrew Tanenbaum, dem Autor von MINIX, abgewehrt, der einen Studenten damit beauftragte, einen detaillierten Vergleich zwischen dem Minix-Code und den ersten öffentlichen Versionen von Linux anzustellen. Die Ergebnisse der Studie zeigten, dass es aufgrund der Anforderungen von POSIX und ANSI C nur vier geringfügige Übereinstimmungen von Codeblöcken gab.

Linus dachte ursprünglich daran, den Kernel Freax zu benennen, aus den Wörtern „free“, „freak“ und X (Unix). Der Name „Linux“ wurde dem Kernel jedoch von Ari Lemmke gegeben, der auf Wunsch von Linus den Kernel auf dem FTP-Server der Universität ablegte und das Verzeichnis mit dem Archiv nicht „Freax“ nannte, wie Torvalds fragte, sondern „Linux“. “. Bemerkenswert ist, dass es dem unternehmungslustigen Geschäftsmann William Della Croce (William Della Croce) gelang, die Marke Linux zu registrieren und im Laufe der Zeit Lizenzgebühren eintreiben wollte, später aber seine Meinung änderte und alle Rechte an der Marke auf Linus übertrug. Das offizielle Maskottchen des Linux-Kernels, der Tux-Pinguin, wurde 1996 im Rahmen eines Wettbewerbs ausgewählt. Der Name Tux steht für Torvalds UniX.

Wachstumsdynamik der Codebasis (Anzahl der Quellcodezeilen) des Kernels:

  • 0.0.1 – September 1991, 10 Codezeilen;
  • 1.0.0 – März 1994, 176 Codezeilen;
  • 1.2.0 – März 1995, 311 Codezeilen;
  • 2.0.0 – Juni 1996, 778 Codezeilen;
  • 2.2.0 – Januar 1999, 1.8 Millionen Codezeilen;
  • 2.4.0 – Januar 2001, 3.4 Millionen Codezeilen;
  • 2.6.0 – Dezember 2003, 5.9 Millionen Codezeilen;
  • 2.6.28 – Dezember 2008, 10.2 Millionen Codezeilen;
  • 2.6.35 – August 2010, 13.4 Millionen Codezeilen;
  • 3.0 – August 2011, 14.6 Millionen Codezeilen.
  • 3.5 – Juli 2012, 15.5 Millionen Codezeilen.
  • 3.10 – Juli 2013, 15.8 Millionen Codezeilen;
  • 3.16 – August 2014, 17.5 Millionen Codezeilen;
  • 4.1 – Juni 2015, 19.5 Millionen Codezeilen;
  • 4.7 – Juli 2016, 21.7 Millionen Codezeilen;
  • 4.12 – Juli 2017, 24.1 Millionen Codezeilen;
  • 4.18 – August 2018, 25.3 Millionen Codezeilen.
  • 5.2 – Juli 2019, 26.55 Millionen Codezeilen.
  • 5.8 – August 2020, 28.4 Millionen Codezeilen.
  • 5.13 – Juni 2021, 29.2 Millionen Codezeilen.
  • 5.19 – August 2022, 30.5 Millionen Codezeilen.

Kernentwicklungsfortschritt:

  • Linux 0.0.1 – September 1991, erste öffentliche Veröffentlichung, die nur die i386-CPU und das Booten von Diskette unterstützt;
  • Linux 0.12 – Januar 1992, die Verbreitung des Codes begann unter der GPLv2-Lizenz;
  • Linux 0.95 – März 1992, fügte die Möglichkeit hinzu, das X-Window-System auszuführen, implementierte Unterstützung für virtuellen Speicher und eine Swap-Partition.
  • Linux 0.96-0.99 – 1992–1993, die Arbeit am Netzwerk-Stack begann. Das Ext2-Dateisystem wurde eingeführt, Unterstützung für das ELF-Dateiformat hinzugefügt, Treiber für Soundkarten und SCSI-Controller eingeführt, das Laden von Kernelmodulen und das /proc-Dateisystem implementiert.
  • 1992 erschienen die ersten Distributionen von SLS und Yggdrasil. Im Sommer 1993 wurden die Projekte Slackware und Debian gegründet.
  • Linux 1.0 – März 1994, erste offiziell stabile Version;
  • Linux 1.2 – März 1995, eine deutliche Erhöhung der Anzahl der Treiber, Unterstützung für die Plattformen Alpha, MIPS und SPARC, erweiterte Netzwerk-Stack-Funktionen, das Erscheinen eines Paketfilters, NFS-Unterstützung;
  • Linux 2.0 – Juni 1996, Unterstützung für Multiprozessorsysteme;
  • März 1997: LKML, Mailingliste für Linux-Kernel-Entwickler, gegründet;
  • 1998: Einführung des ersten Top500 Linux-basierten Clusters, bestehend aus 68 Knoten mit Alpha-CPUs;
  • Linux 2.2 – Januar 1999, verbesserte Effizienz des Speicherverwaltungssystems, zusätzliche Unterstützung für IPv6, Implementierung einer neuen Firewall, Einführung eines neuen Sound-Subsystems;
  • Linux 2.4 – Februar 2001, Unterstützung für 8-Prozessor-Systeme und 64 GB RAM, Ext3-Dateisystem, USB-Unterstützung, ACPI;
  • Linux 2.6 – Dezember 2003, SELinux-Unterstützung, automatische Kernel-Parameter-Tuning-Tools, sysfs, neu gestaltetes Speicherverwaltungssystem;
  • Im Jahr 2005 wurde der Xen-Hypervisor eingeführt, der das Zeitalter der Virtualisierung einläutete;
  • Im September 2008 wurde die erste Version der Android-Plattform basierend auf dem Linux-Kernel erstellt;
  • Im Juli 2011, nach 10 Jahren Entwicklung des 2.6.x-Zweigs, erfolgte der Übergang zur 3.x-Nummerierung. Die Anzahl der Objekte im Git-Repository hat 2 Millionen erreicht;
  • Im Jahr 2015 erfolgte die Veröffentlichung des Linux 4.0-Kernels. Die Anzahl der Git-Objekte im Repository hat 4 Millionen erreicht;
  • Im April 2018 wurde der Meilenstein von 6 Millionen Git-Objekten im Kern-Repository überschritten.
  • Im Januar 2019 wurde der Linux 5.0-Kernelzweig gegründet. Das Repository hat die Größe von 6.5 Millionen Git-Objekten erreicht.
  • Der im August 2020 veröffentlichte Kernel 5.8 war hinsichtlich der Anzahl der Änderungen der größte aller Kernel über die gesamte Lebensdauer des Projekts.
  • Im 5.13-Kernel wurde ein Rekord für die Anzahl der Entwickler (2150) aufgestellt, deren Änderungen in den Kernel übernommen wurden.
  • Im Jahr 2021 wurde dem Linux-next-Kernelzweig Code für die Entwicklung von Treibern in Rust hinzugefügt. Derzeit wird daran gearbeitet, Komponenten zur Unterstützung von Rust in den Hauptteil des Kerns aufzunehmen.
  • Im August 2022 wurde der Kernelzweig Linux 6.0 gegründet, da es im 5.x-Zweig genügend Releases gab, um die erste Zahl in der Versionsnummer zu ändern.

68 % aller Kernänderungen wurden von den Top-20-Unternehmen vorgenommen. Bei der Entwicklung des Kernels 5.19 wurden beispielsweise 10.9 % aller Änderungen von Intel, 5.7 % von Linaro, 5.5 % von AMD, 5.2 % von Red Hat, 4.1 % von Google, 3.5 % von Meta, 3.1 % von SUSE, 2.9 vorbereitet % von Huawei, 2.8 % – NVIDIA, 2.7 % – Oracle. 11.8 % der Änderungen wurden von unabhängigen Mitwirkenden oder Entwicklern erstellt, die ihre Arbeit nicht ausdrücklich für bestimmte Unternehmen deklarierten. Mit 5.19 zum Kernel hinzugefügten Codezeilen liegt AMD mit einem Anteil von 37.9 % an der Spitze (der amdgpu-Treiber hat über 4 Millionen Codezeilen, die meisten davon sind automatisch generierte Header-Dateien mit Daten für GPU-Register).

Source: opennet.ru

Kommentar hinzufügen