Der Linux-Kernel ist fast 25 Jahre alt . Wenn ich mir die Kurzversion über die Entwicklungsgeschichte des Linux-Kernels seit 1991 (Anfangsdatum) und insbesondere seit 1994 (1.0.0) bis heute einfallen lassen müsste, könnte ich das nicht. Das Beste , was ich tun konnte , kurz jeden einzelnen Kernel Release Notes lesen , wäre folgendes zu schaffen , die die allgemeine Funktionen dieser Version 3.11 (Anmerkungen und Links weggelassen) an den Kernel bis Version hinzugefügt:
- Version 1.0 des Linux-Kernels wurde am 14. März 1994 veröffentlicht. Diese Version des Linux-Kernels unterstützte nur i386-basierte Computersysteme mit einem Prozessor. Die Portabilität wurde zu einem Problem, und so wurde die Version 1.2 (veröffentlicht am 7. März 1995) für Computersysteme mit Prozessoren, die auf den Architekturen Alpha, SPARC und MIPS basierten, unterstützt.
- Version 2.0 wurde am 9. Juni 1996 veröffentlicht. Es gab 41 Veröffentlichungen in der Serie. Das Hauptmerkmal von 2.0 war die SMP-Unterstützung (dh die Unterstützung mehrerer Prozessoren in einem einzigen System) und die Unterstützung mehrerer Prozessortypen.
- Mit Version 2.2 (veröffentlicht am 26. Januar 1999) wurde der globale Spinlock entfernt und die SMP-Unterstützung verbessert. Außerdem wurden die m68k- und PowerPC-Architekturen sowie neue Dateisysteme (einschließlich Nur-Lese-Unterstützung für Microsoft NTFS) unterstützt.
- Die am 4. Januar 2001 veröffentlichte Version 2.4.0 enthielt Unterstützung für ISA Plug-and-Play-, USB- und PC-Karten. Außerdem wurde der PA-RISC-Prozessor von Hewlett-Packard unterstützt. Die Entwicklung für 2.4.x hat sich dahingehend geändert, dass im Laufe der Serie weitere Funktionen zur Verfügung gestellt wurden, darunter: Unterstützung für Bluetooth, Logical Volume Manager (LVM) Version 1, RAID-Unterstützung, InterMezzo- und ext3-Dateisysteme.
- Die Version 2.6.0 wurde am 18. Dezember 2003 veröffentlicht. Die Entwicklung für 2.6.x wurde weiter dahingehend geändert, dass während der gesamten Laufzeit der Serie neue Funktionen hinzugefügt wurden. Zu den Änderungen, die in der 2.6-Reihe vorgenommen wurden, gehören: Integration von µClinux in die Mainline-Kernel-Quellen, PAE-Unterstützung, Unterstützung für mehrere neue CPU-Linien, Integration von ALSA in die Mainline-Kernel-Quellen, Unterstützung für bis zu 2 32 Benutzer ( ab 2 16 ), Unterstützung für bis zu 2 29 Prozess-IDs (nur 64-Bit, 32-Bit-Bögen weiterhin auf 2 15 begrenzt), die Anzahl der Gerätetypen und die Anzahl der Geräte für jeden Typ erheblich erhöht, die 64-Bit-Unterstützung verbessert, Dateisysteme mit einer Dateigröße von bis zu 16 Terabyte unterstützt, In-Kernel-Preemption und die native POSIX-Thread-Bibliothek unterstützt (NPTL), Linux-Integration im Benutzermodus in die Hauptkernquellen, SELinux-Integration in die Hauptkernquellen, InfiniBand-Unterstützung und vieles mehr. Bemerkenswert ist auch das Hinzufügen mehrerer Dateisysteme in den Releases 2.6.x: FUSE, JFS, XFS, ext4 und mehr. Details zum Verlauf der 2.6-Kernel-Serie finden Sie in den ChangeLog-Dateien im Quellcode-Veröffentlichungsbereich der 2.6-Kernel-Serie von kernel.org.
- Die Version 3.0 wurde am 22. Juli 2011 veröffentlicht. Torvalds gab bekannt, dass die große Änderung "NICHTS. Absolut nichts" war. Am 30. Mai 2011 gab Torvalds bekannt: "... lassen Sie uns sicherstellen, dass wir mit der nächsten Veröffentlichung nicht nur eine brandneue, sondern auch einen guten Kernel haben." Nach dem erwarteten 6-7-wöchigen Entwicklungsprozess würde es gegen 20-jähriges Jubiläum von Linux veröffentlicht.
- Im Dezember 2012 beschloss Torvalds, die Komplexität des Kernels zu reduzieren, indem die Unterstützung für i386-Prozessoren gestrichen wurde. Damit ist die 3.7-Kernelserie die letzte, die den ursprünglichen Prozessor noch unterstützt. Dieselbe einheitliche Serienunterstützung für den ARM-Prozessor.
- Die am 2. September 2013 veröffentlichte Version 3.11 enthält viele neue Funktionen wie das neue O_TMPFILE-Flag für open (2), um temporäre Dateischwachstellen, experimentelles dynamisches AMD Radeon-Power-Management, Netzwerk-Polling mit geringer Latenz und zswap (komprimierter Swap-Cache) zu reduzieren.
Ich könnte auch hinzufügen , dass seit vielen Jahren die Linux Foundation hat die Berichterstattung über die Kernel - Entwicklung. Dies sind die Highlights der Kernel-Entwicklung 2012-2013:
- Fast 92.000 Änderungssätze wurden aus 3.738 einzelnen Entwicklern zusammengeführt, die 536 Unternehmen repräsentieren (von denen wir wissen).
- Eine Vielzahl wichtiger neuer Funktionen wurde in die Hauptlinie integriert. Dazu gehören der vollständige tickless-Betrieb, Benutzer-Namespaces, KVM- und Xen-Virtualisierung für ARM, die Verfolgung der Auslastung pro Entität im Scheduler, der Checkpoint / Neustart des Benutzerbereichs, die Unterstützung der 64-Bit-ARM-Architektur, das F2FS-Flash-orientierte Dateisystem sowie zahlreiche Verbesserungen des Netzwerks Bei den Latenz- und Bufferbloat-Problemen sorgen zwei unabhängige Subsysteme für schnelles Caching für Blockspeichergeräte und vieles mehr.
- Der langjährige Streit um Android-spezifische Kernelfunktionen ist vollständig in den Hintergrund getreten. Die viel diskutierte "Wakelocks" -Funktion wurde leise durch eine andere Hauptlösung ersetzt, die in den neuesten Android-Geräten verwendet wird.
- Die Verwendung automatisierter Tools zum Auffinden von Fehlern in Entwicklungskernen hat in diesem Zeitraum erheblich zugenommen. Tools wie der "Trinity" -Fuzz-Tester und das Zero-Day-Build-and-Boot-System finden eine große Anzahl von Fehlern in Pre-Release-Kerneln, verkürzen den Entwicklungszyklus und ermöglichen es der Community, qualitativ hochwertigere Releases bereitzustellen.
- Die Beiträge aus der Mobilfunk- und Embedded-Branche nehmen weiter zu. Linaro, Samsung und TI trugen zum Beispiel zusammen 4,4% zu den Änderungen in der Vorgängerversion dieses Dokuments bei. Für den Zeitraum bis 3.10 trugen sie fast 11% aller Veränderungen bei.
- Das Kernel-Projekt nahm zum ersten Mal am Outreach-Programm für Frauen teil und führte zu 41 Bewerbungen für 7 freie Stellen. Während des Bewerbungsprozesses wurden 374 Patches an den Kernel übermittelt, und über 1/3 dieser Patches wurden in der 3.10-Kernel-Version akzeptiert. Der interne Prozess ist jetzt im Gange, aber die Ergebnisse davon werden erst in zukünftigen Kernel-Releases sichtbar.
Darüber hinaus ist es nicht sehr schwierig zu quantifizieren, was mit dem Kernel passiert, da wir Metriken haben, die über die einzelnen Commits hinausgehen . Zum Beispiel wissen wir, dass der 1.0.0-Kernel im Jahr 1994 176.250 Codezeilen hatte; und wir wissen, dass ein moderner Kernel wie 3.10 15 803 499 Codezeilen hat. Beträchtlich mehr. Die Häufigkeit der Kernelfreigaben hat zugenommen (63 Tage für 3.10), ebenso die Änderungsrate (9 Commits pro Stunde oder mehr, während wir sprechen). So zitieren Sie die Linux Foundation:
Die Fähigkeit, diese Änderungsrate über Jahre hinweg aufrechtzuerhalten, ist in früheren öffentlichen Softwareprojekten beispiellos.
Aber das alles bringt meiner Meinung nach wenig Einsicht. Deshalb würde ich fragen:
- Kann man das Viertel Jahrhundert Evolution summarisch werden qualifiziert über die lineare Addition aller aufgelisteten Features , die diese Kernel im Laufe der Zeit bilden?
- Und gibt dies Aufschluss darüber, worum es im Linux-Kernel geht oder wohin es geht? Nach 25 Jahren Entwicklung lassen sich hieraus sicherlich einige Schlussfolgerungen ziehen?
Suche nach einer abstrakten Antwort in Laienbegriffen, die alles sagt, ohne alles zu sagen.