Linux-Kernel, sein 29-jähriger Verlaufsbericht

2020/08/25, Linux Foundation [2020 Linux Kernel History Report](https://www.linuxfoundation.org/blog/2020/08/download-the -2020-linux-kernel-history-report /) wurde veröffentlicht. Es fasst die 29-jährige Geschichte des Linux-Kernels von seiner ersten Veröffentlichung am 17. September 1991 bis zu Linux 5.8 am 2. August 2020 zusammen.

Also habe ich es grob diagonal gelesen. Bitte tun Sie etwas gegen das PDF, das Sie nicht kopieren und einfügen können.

Linux Kernel History Report

Dieser Bericht untersucht die gesamte Geschichte von Linux. Von der ersten Kernel-Veröffentlichung am 17. September 1991 bis zum 2. August 2020, als der neueste 5.8-Kernel veröffentlicht wurde, haben BitKeeper und git über 1 Million Commit-Historien. ..

Kernel Archeology

Die erste Version hatte nur 88 Dateien, 10.000 Zeilen und 2964 Token. Es gibt nur wenige Spuren des Originals, aber es gibt noch ein erstes Commit von Linus selbst am 17.09.1991 1 in vsprintf.c.

01.png

Mehr als die Hälfte des Linux 5.8-Kernels besteht aus Code, der in den letzten sieben Jahren geschrieben wurde.

02.png

Impact of Development Process Best Practices

Um Best Practices für die Entwicklung zu fördern, hat CII 2015 das Best Practice Badge-System (https://github.com/coreinfrastructure/best-practices-badge) erstellt. Linux Core war eines der frühesten Projekte, um dieses Abzeichen zu erhalten, und im Juni 2020 erhielt es den höchsten Titel, das Gold-Abzeichen.

Es heißt, aber da CII eine Organisation innerhalb der Linux Foundation ist, kann ich nicht anders, als mich wie eine Matchpumpe zu fühlen.

Adoption of Maintainer Hierarchy

Die Datei "MAINTAINERS" wurde 1996 zum ersten Mal am 1.3.68 festgeschrieben. Mit nur 107 Zeilen gibt es nur 3 Betreuer. Alan Cox, Jon Naylor und Linus Torvalds.

MAINTAINERS


REST:
P: Linus Torvalds
S: Buried alive in email

Da die ersten Diskussionen über die Entwicklung des Linux-Kernels in mehreren MLs geführt wurden, sind die Diskussionen vor 1997 nur fragmentarisch. Einige der gesammelten Elemente werden unter http://lkml.iu.edu/hypermail/linux/ veröffentlicht, fehlen aber auch. Wenn jemand ein Protokoll dieser Zeit hat, geben Sie es bitte an.

Der 5.8 MAINTAINERS hat wiederum 19033 Zeilen und 1501 Maintainer sind aufgelistet.

MAINTAINERS


THE REST
M: Linus Torvalds <[email protected]>
L: [email protected]
S: Buried alive in reporters
Q: http://patchwork.kernel.org/project/LKML/list/
T: git git://git.kernel.org/pub/scm/linux/
kernel/git/torvalds/linux.git
F: *
F: */

Version Control Systems

03.png

Vor BitKeeper war nicht klar, wer wie viel beigetragen hat. Eine richtige Geschichte begann um 2002 und wird vorher aus der in jedem Dokument verbliebenen Geschichte abgeleitet.

Im Jahr 2005 verschiedene Dinge wurde BitKeeper unbrauchbar, also machte Linus einen Git von Grund auf neu und ging dorthin. Migriert.

Die Rekrutierung von Entwicklern ist eine ewige Herausforderung, und die Linux Foundation unterstützt weiterhin Outreachy- und LKMP-Programme. Wir haben auch Anstrengungen unternommen, um die Anzahl der weiblichen Mitwirkenden zu erhöhen.

04.png

Removing Unused Code

Die Bemühungen, nicht verwendeten Code zu entfernen, dauern an. Beispielsweise wurden im Jahr 2018 mit 4.17 18.000 Zeilen mit 8 Architekturen entfernt.

Es scheint so zu sein, aber es ist nur eine kleine Menge im Vergleich zur Erhöhungsmenge.

05.png

Highly Diversified Corporate Contributors

Der Linux-Kernel wurde von vielen Unternehmen beigesteuert. Von 2007 bis 2019 gab es 780048 Verpflichtungen von 1730 Unternehmen. Die Top 20 Unternehmen machen 68% aus.

06.png

In den letzten 10 Jahren haben jedes Jahr Beiträge von rund 400 Unternehmen geleistet.

07.png

Release Model with Predictable Release Cycle Cadence

Es gibt vier Arten von Linux-Release-Modellen. ・ Prepatch (RC) ・ Hauptleitung ・ Stabil ・ Langzeitstabilität

Den neuesten Kernel finden Sie unter https://www.kernel.org/.

Es gab viele Debatten über den Release-Zyklus, aber seit 2011 wurde ein allgemein funktionierendes Release-Modell erstellt. Beginnend mit einem zweiwöchigen "Zusammenführungsfenster" werden neue Funktionen getestet und in das Git-Repository eingeführt. Wenn das RC1-Tag hinzugefügt wird, geht es in einen Zyklus von Integrationstests, Debugging und Optimierung über, und das RC wird wöchentlich aktualisiert, bis Qualität und Stabilität gewährleistet sind. Wenn neue Funktionen veröffentlicht werden, wird das nächste "Zusammenführungsfenster" erneut gestartet.

08.png

Improving Automated Testing the Kernel

Das Testen des Kernels basiert auf Community-Bemühungen. Sparse, Smatch, Coccicheck werden als automatischer Test-BOT ausgeführt, und Trinity, Syzbot, werden als Fading-Test ausgeführt. Viele Fehler wurden von diesen entdeckt.

09.png

Stable Release Process

Die stabile Version wird ungefähr einmal pro Woche veröffentlicht.

Am Beispiel von Linux 5.7.9 wird der Release-Kandidat "RC" ML zunächst per E-Mail mitgeteilt. Es gibt 166 Patches in dieser RF, die alle einzeln in ML benachrichtigt werden. Jeder Entwickler und jedes automatisierte Testtool testet seine Freigabemethode und sendet die Ergebnisse per E-Mail zurück. Wenn es ein Problem mit RC gibt, werden RC2, RC3 und seine Nachfolger erstellt, RC2 wird jedoch selten erstellt.

Automatische Erstellung BOT-Builds für über 30 Architekturen. Die stabile Version ist für 31 Architekturen und 56 Konfigurationen ausgelegt. Und viele Tests wie LKFT, LTP, Linux Kernel Selftests und Linux Perf werden durchgeführt. Es wird freigegeben, wenn der Test vollständig abgeschlossen ist und die Benachrichtigung an ML gesendet wird.

Longterm Release Kernels

Mit der Einführung der langfristigen Unterstützung ist Linux in eingebetteten Produkten noch beliebter geworden. Distributionen wie SUSE, Ubuntu und Red Hat haben dieses Konzept als erste eingeführt und seine Nützlichkeit im Kernel bewiesen.

Im stabilen Kernel gefundene Fehler werden zuerst auf die stabile Version angewendet, aber zurückportiert, wenn festgestellt wird, dass sie auf das LTS anwendbar sind. Die Beurteilung, ob die stabile Version des Fixes auf LTS angewendet werden kann, wird von Jahr zu Jahr verbessert, da Sasha Levin maschinelle Lernwerkzeuge entwickelt hat. 2019 gab es 18668 Backports, mehr als die Änderungen am stabilen Kernel vor 15 Jahren.

Einige Märkte suchen nach SLTS mit extrem langfristiger Unterstützung, das sogar länger als LTS ist, und einige Entwickler haben beschlossen, Linux 4.4 und 4.19 als SLTS zu unterstützen.

Conclusion

Die heutigen Linux-Kernel werden in allen Bereichen der Sicherheit eingesetzt, von medizinischen Geräten bis hin zu Raumfahrzeugen. Die Verbesserung der Infrastruktur zur Gewährleistung der richtigen Sicherheit vor der Verwendung von Linux ist eine der nächsten großen Herausforderungen.

Der Linux-Kernel hat eine hervorragende Grundlage, um weiterhin weltweit führend zu sein, indem er Best Practices zur Verbesserung der gesamten OSS-Branche entwickelt.

Thanks

Ich bin außer Sicht.

10.png

Impressionen

Linux ist ein unverzichtbarer Teil der Welt, aber es war ein interessantes Material, das eine grobe Vorstellung von seinem Wachstumskurs gibt. Die Anzahl der Committer, die Anzahl der Commits, die Menge an Code und der dramatische Anstieg in den letzten Jahren zeigen deutlich die Bedeutung dieses Projekts.

Es gibt jedoch nur Materialien, die der Öffentlichkeit nahe stehen, und es gibt nur Inhalte, die veröffentlicht werden können. Zurück Seite Verlauf Es würde Spaß machen, einen Bericht über [Geschichte] zu haben (https://linux.srad.jp/story/18/11/02/0642259/).

In der Cloud-Serverless versucht die Existenz eines Betriebssystems auf niedriger Ebene, es hinter den Kulissen zu verbergen, aber sobald etwas passiert, muss ich Befehle und Protokolle ausgraben, sodass ich schließlich Linux-Kenntnisse benötige. Ist immer noch das gleiche. Wird die Welt, in der Sie sich keine Sorgen um die Existenz und den Typ des Betriebssystems machen müssen, eines Tages wirklich kommen?

Recommended Posts

Linux-Kernel, sein 29-jähriger Verlaufsbericht
Informationen zu Linux-Kernelparametern
Linux Kernel Release 5.x (2/4)
Überprüfen Sie die Linux-Kernelversion
Linux Kernel Release 5.x (3/4)
Linux Kernel Release 5.x (4/4)
Linux Kernel Release 5.x (1/4)
Linux Kernel Build für DE10nano
Selbst erstellter Linux-Kernel mit Clang
[LINUX-Kernel neu erstellen] Upgrade (4.18.0 → 5.8.8)