Zum Inhalt springen

„Linux (Kernel)“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
FBE2005 (Diskussion | Beiträge)
Versionsgeschichte ab Version 2.6: +Anmerkung zum 2.6.20er, dabei Versionen aktualisiert und Überschriften normalisert
nv
 
Zeile 1: Zeile 1:
{{Infobox Betriebssystem
{{Infobox Betriebssystem
| Logo = <!-- Von WikiData -->
| Logo = [[Datei:NewTux.svg|50px|Tux, der Linux-Pinguin]]
| Screenshot = [[Datei:Linux-x86-under-qemu.png|250px]]
| Screenshot = [[Datei:Linux 3.0.0 boot.png|250px]]
| Beschreibung = Startender Systemkern in [[Qemu]]
| Beschreibung = Startender Systemkern (Version 3.0.0) in [[Debian]]
| Entwickler = [[Linus Torvalds]] u.&nbsp;v.&nbsp;m.
| Entwickler = <!-- Von WikiData -->
| Sprache = [[Englische Sprache|Englisch]]
| Sprache = [[Englische Sprache|Englisch]]
| Erscheinungsdatum = <!-- WikiData Q14579 -->
| Version = 2.6.39.2
| Version = <!-- WikiData Q14579 -->
| Freigabedatum = 23.&nbsp;Juni 2011
| Freigabedatum = <!-- WikiData Q14579 -->
| Stammbaum =
| Quelle = <!-- WikiData Q14579 -->
| Kernel =
| Vorabversion =
| Chronik =
| Freigabedatum Vorabversion =
| Architekturen = [[IA-32]], [[AMD64]], [[Alpha-Prozessor|Alpha AXP]], [[Sun SPARC]], [[Motorola 68000]], [[PowerPC]], [[ARM-Architektur|ARM]], [[SuperH|Hitachi SuperH]], [[IBM S/390]], [[MIPS-Architektur|MIPS]], [[PA-RISC|HP PA-RISC]], [[IA-64]], [[ETRAX CRIS|AXIS CRIS]], [[Atmel AVR32]], [[Renesas H8|Renesas H8/300]], [[Blackfin]] und weitere
| Architekturen = [[IA-32]] (inkl. [[x64]]), [[Alpha-Prozessor|Alpha&nbsp;AXP]], [[SPARC-Architektur|SPARC]], [[Motorola-68000er-Familie|Motorola&nbsp;68k]], [[PowerPC]], [[IBM Power|POWER]], [[Arm-Architektur|Arm]], [[SuperH|Hitachi SuperH]], [[z&nbsp;Systems]], [[MIPS-Architektur|MIPS]], [[PA-RISC]] und weitere
| Größe = 67,0 [[Mebibyte|MiB]] <small>(2.6.36.2, [[Quelltext]], [[bzip2]]-komprimiert)</small>
| Größe = 73,2&nbsp;[[Mebibyte|MiB]] <small>(3.0, [[Quelltext]], [[bzip2]]-komprimiert)</small>
| Startmedium = [[Festplatte]], [[CD-ROM]], [[DVD-ROM]], [[Diskette]], [[Netzwerk]], [[USB-Stick]]
| Startmedium = [[Festplatte]], [[CD-ROM]], [[DVD-ROM]], [[Diskette]], [[Netzwerk]], [[USB-Stick]]
| Lizenz = Proprietär wegen [[Binary Large Object|BLOBs]]; in BLOB-freier Version [[GNU General Public License|GPL]]&nbsp;v2<ref>http://directory.fsf.org/project/linux/</ref>
| Lizenz = <!-- Von WikiData -->
| Website = [http://www.kernel.org/ www.kernel.org]
| Website = <!-- Von WikiData -->
}}
}}


'''Linux''' (dt. [{{IPA|ˈliːnʊks}}]) ist ein [[Betriebssystemkern]] (engl. ''kernel''). Er wurde [[1991]] von dem Finnen [[Linus Torvalds]] ursprünglich für die [[x86]]-Architektur entwickelt und unter der [[Freie Software|freien]] [[GNU General Public License|GNU General Public License (GPL)]] veröffentlicht. Der Kern (Kernel) findet in einer Vielzahl von [[Distribution (Software)|Distributionen]] und [[Betriebssystem]]en seine Anwendung.
'''Linux''' ({{deS}} [{{IPA|ˈliːnʊks}}]) ist ein [[Kernel (Betriebssystem)|Betriebssystem-Kernel]], der im Jahr 1991 von [[Linus Torvalds]] ursprünglich für die [[32-Bit-Architektur|32-Bit]]-[[x86-Architektur]] „[[i386]]“, [[retronym]] „[[IA-32]]“, entwickelt und ab Version 0.12 unter der [[Freie Software|freien]] [[GNU General Public License]] (GPL) veröffentlicht wird.<ref>{{Internetquelle |autor=Linus Torvalds |url=https://www.kernel.org/pub/linux/kernel/Historic/old-versions/RELNOTES-0.12 |titel=RELEASE NOTES FOR LINUX v0.12 |werk=kernel.org |sprache=en |abruf=2017-04-22}}</ref> Er ist heute Teil einer Vielzahl von [[Betriebssystem]]en.


Der Begriff ''Linux'' setzt sich aus dem Namen Linus und dem X aus [[Unix]] zusammen und zeigt die Ähnlichkeit mit Unix an. Er bezeichnet im üblichen Sprachgebrauch nicht nur den Linux-Kern selbst, sondern auch [[Linux-Distribution]]en und [[Linux]]-basierte Systeme. Das führte zum [[GNU/Linux-Namensstreit]].
Der Name ''Linux'' setzt sich zusammen aus dem Namen Linus und einem X für das als Vorbild dienende [[Unix]]. Er bezeichnet im weiteren Sinne mittlerweile nicht mehr nur den Kernel selbst, sondern übertragen davon ganze [[Linux|Linux-basierte Systeme]] und [[Linux-Distribution|Distributionen]]. Dies führte zum [[GNU/Linux-Namensstreit]].


== Grundlegende Technologie ==
== Grundlegende Technologie ==
[[Datei:Linux Kernel Struktur.svg|mini|Grob-Struktur des Linux-Kernels]]

[[Datei:Linux_Kernel_Stuktur.svg|miniatur|Grob-Struktur des Linux-Kernels]]


=== Aufgaben des Kernels ===
=== Aufgaben des Kernels ===
{{Hauptartikel|Kernel (Betriebssystem)}}


Der Kernel eines Betriebssystems bildet die [[Hardwareabstraktionsschicht|hardwareabstrahierende Schicht]], das heißt, er stellt der auf dieser Basis aufsetzenden [[Software]] eine einheitliche [[Schnittstelle]] ([[Programmierschnittstelle|API]]) zur Verfügung, die unabhängig von der [[Rechnerarchitektur]] ist. Die Software kann so immer auf die Schnittstelle zugreifen und braucht die Hardware selbst, die sie nutzt, nicht genauer zu kennen. Linux ist dabei ein modularer [[monolithischer Kernel]] und zuständig für [[Speicherverwaltung]], [[Scheduling|Prozessverwaltung]], [[Multitasking]], Lastverteilung, Sicherheitserzwingung und Eingabe/Ausgabe-Operationen auf verschiedenen Geräten.
{{Hauptartikel|Betriebssystemkern}}

Der Kernel eines Betriebssystems bildet die hardwareabstrahierende Schicht ([[Hardwareabstraktionsschicht]]), das heißt, er stellt der auf dieser Basis aufsetzenden [[Software]] eine einheitliche [[Schnittstelle]] ([[Programmierschnittstelle|API]]) zur Verfügung, die unabhängig von der [[Rechnerarchitektur]] ist. Die Software kann so immer auf die Schnittstelle zugreifen und braucht die Hardware selbst, die sie nutzt, nicht genauer zu kennen. Linux ist dabei ein modularer [[Monolithischer Kernel|monolithischer Betriebssystemkern]] und zuständig für [[Speicherverwaltung]], [[Scheduling|Prozessverwaltung]], [[Multitasking]], Lastverteilung, Sicherheitserzwingung und Eingabe/Ausgabe-Operationen auf verschiedenen Geräten.


=== Programmiersprache ===
=== Programmiersprache ===
Linux ist fast ausschließlich in der Programmiersprache [[C (Programmiersprache)|C]] geschrieben, wobei einige [[GNU Compiler Collection|GNU-C]]-Erweiterungen benutzt werden. Ausnahmen bilden die architekturabhängigen Teile des Codes (im Verzeichnis ''arch'' innerhalb der Linux-[[Quelltext|Sourcen]]), wie zum Beispiel der Beginn des Systemstarts ([[Bootvorgang]]), der in [[Assemblersprache]] geschrieben ist, sowie die Programmiersprache [[Rust (Programmiersprache)|Rust]], die seit der Version 6.1 erstmals unterstützt<ref>{{Internetquelle |autor=Sebastian Grüner |url=//www.golem.de/news/programmiersprache-linux-erscheint-erstmals-mit-rust-support-2212-170429.html |titel=Programmiersprache: Linux erscheint erstmals mit Rust-Support |hrsg=Golem.de |datum=2022-12-12 |abruf=2025-01-27}}</ref> und seit 6.8 erstmals für einzelne [[Gerätetreiber]] genutzt wird.<ref>{{Internetquelle |autor=Ankush Das |url=https://news.itsfoss.com/linux-kernel-6-8-release/ |titel=Linux Kernel 6.8 Released! Goes Big On Hardware Support |hrsg=It's FOSS News |datum=2024-03-11 |sprache=en |abruf=2025-01-27}}</ref>

Linux ist fast komplett in der Programmiersprache [[C (Programmiersprache)|C]] geschrieben, wobei einige [[GNU Compiler Collection|GNU-C]]-Erweiterungen benutzt werden. Eine Ausnahme bilden die architekturabhängigen Teile des Codes (im Verzeichnis ''arch'' innerhalb der Linux-[[Quelltext|Sourcen]]), wie zum Beispiel der Beginn des Systemstarts ([[Bootvorgang]]), der in [[Assemblersprache]] geschrieben ist.


=== Funktionsweise ===
=== Funktionsweise ===
Bei einem strikt [[Monolithischer Kernel|monolithischen Kernel]] wird der gesamte [[Quelltext|Quellcode]] inklusive aller [[Gerätetreiber|Treiber]] in das Kernel-Image (den ausführbaren Kernel) [[Compiler|kompiliert]]. Im Gegensatz dazu kann Linux Module benutzen, die während des Betriebs geladen und wieder entfernt werden können. Damit wird die Flexibilität erreicht, um unterschiedlichste Hardware ansprechen zu können, ohne sämtliche (auch nicht benötigte) Treiber und andere Systemteile im [[Arbeitsspeicher]] halten zu müssen.


Sind Teile der [[Hardware]]spezifikationen nicht genügend offengelegt, so stützt sich Linux notfalls über spezielle [[Virtual 8086 Mode|VM86-Modi]] auch auf das [[BIOS]] des Systems, u.&nbsp;a. auf die Erweiterungen gemäß den Standards [[Advanced Power Management|APM]], [[Advanced Configuration and Power Interface|ACPI]] und [[Video Electronics Standards Association|VESA]]. Um unter diesen Voraussetzungen [[x86-Architektur|x86]]-kompatible Hardware z.&nbsp;B. auf der [[Digital Equipment Corporation|DEC]]-[[Alpha-Prozessor|Alpha]]-Plattform zu betreiben, werden teilweise sogar [[Emulator]]en zur Ausführung entsprechenden [[Festwertspeicher|ROM]]-[[Code]]s verwendet. Linux selbst übernimmt das System beim [[Booten|Bootprozess]] typischerweise in dem Moment, in dem der [[Bootloader]] der [[Systemfirmware]] („BIOS“) erfolgreich war und daher alle Systeminitialisierungen des BIOS abgeschlossen sind.
Bei einem strikt [[Monolithischer Kernel|monolithischen Kernel]] wird der gesamte Quellcode inklusive aller Treiber in das Kernel-Image (den ausführbaren Kernel) kompiliert. Im Gegensatz dazu kann Linux Module benutzen, die während des Betriebs geladen und wieder entfernt werden können. Damit wird die Flexibilität erreicht, um unterschiedlichste Hardware ansprechen zu können, ohne sämtliche (auch nicht benötigte) Treiber und andere Systemteile im Speicher halten zu müssen.


Der Kernel ist ein Betriebssystemkern und darf nicht als das eigentliche [[Betriebssystem]] verstanden werden. Dieses setzt sich aus dem Kernel und weiteren grundlegenden Bibliotheken und Programmen (die den Computer erst bedienbar machen) zusammen.
Sind Teile der Hardwarespezifikationen nicht genügend offengelegt, so stützt sich Linux notfalls über spezielle [[Virtual 8086 Mode|VM86-Modi]] auch auf das [[Basic Input Output System|BIOS]] des Systems, u.&nbsp;a. auf die Erweiterungen gemäß den Standards [[Advanced Power Management|APM]], [[Advanced Configuration and Power Interface|ACPI]] und [[Video Electronics Standards Association|VESA]]. Um unter diesen Voraussetzungen [[X86-Prozessor|x86]]-kompatible Hardware z.&nbsp;B. auf der [[Digital Equipment Corporation|DEC]]-[[Alpha-Prozessor|Alpha]]-Plattform zu betreiben, werden teilweise sogar [[Emulator]]en zur Ausführung entsprechenden [[Festwertspeicher|ROM]]-[[Code]]s verwendet. Linux selbst übernimmt das System beim Bootprozess typischerweise in dem Moment, wo der BIOS-[[Bootloader]] erfolgreich war und alle Systeminitialisierungen des BIOS abgeschlossen sind.


''Siehe auch:'' [[Gerätedatei]], [[Network Block Device]], [[Netfilter]], [[Netzwerk-Scheduler]], [[Prozess-Scheduler]], [[Linux]] (Betriebssystem)
Der Kernel ist ein Betriebssystemkern und darf nicht als das eigentliche [[Betriebssystem]] verstanden werden. Dieses setzt sich aus dem Kern und weiteren grundlegenden Bibliotheken und Programmen (die den Computer erst bedienbar machen) zusammen.


=== Schnittstellen ===
''Siehe auch:'' [[Gerätenamen unter Linux]], [[Network Block Device]], [[Linux (Betriebssystem)]]
[[Datei:Linux kernel interfaces.svg|mini|[[Linux Standard Base]]]]


Man kann zwischen vier Schnittstellen unterscheiden, die das Zusammenwirken von entweder kernelinternen Komponenten untereinander oder von Kernel und externer Software ermöglichen. Die Stabilität der externen [[Programmierschnittstelle]] wird garantiert, das heißt, dass Quellcode grundsätzlich ohne jegliche Veränderungen portierbar ist.
=== Architektur ===
Die Stabilität der internen Programmierschnittstellen wird nicht garantiert, diese können zehn Jahre oder wenige Monate stabil bleiben. Da der Linux-Kernel von einigen tausend Entwicklern vorangetrieben wird, ist der eventuell entstehende Aufwand zu verschmerzen.


Die [[Binärschnittstelle]] des Kernels ist unerheblich, auf das komplette Betriebssystem kommt es an. Die [[Linux Standard Base]] (LSB) soll es ermöglichen, kommerzielle Programme unverändert zwischen Linux Betriebssystemen zu portieren. Die interne Binärschnittstelle ist nicht stabil, und es gibt keinerlei Bestrebungen, dies zu ändern; dies hat zur Folge, dass ein internes Modul, welches z.&nbsp;B. für Linux 3.0 kompiliert worden ist, höchstwahrscheinlich nicht mit Linux-Kernel 3.1 zusammenarbeiten wird. Dies ist eine ganz bewusste Entscheidung.<ref>[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/stable-api-nonsense.rst index: kernel/git/torvalds/linux.git]</ref>
[[Datei:Linux_Schichten.svg|miniatur|Abstraktionsschichten unter Linux]]


=== Architektur ===
Linux ist ein [[monolithischer Kernel]]. Die Treiber im Kernel und die Kernel-[[Modul (Software)|Module]] laufen im [[privileg]]ierten Modus (x86: [[Ring (CPU)|Ring]]&nbsp;0), haben also unbeschränkten Zugriff auf die [[Hardware]]. Einige wenige Module des Kernels laufen im eingeschränkten Benutzermodus (x86: Ring&nbsp;3). Die ''Level'' 1 und 2 der [[X86-Prozessor|x86]]-Architektur werden von Linux nicht genutzt.
<div class="float-right">{{Linux Schichten}}</div>


Linux ist ein [[monolithischer Kernel]]. Die Treiber im Kernel und die Kernel-[[Modul (Software)|Module]] laufen im [[privileg]]ierten Modus (x86: [[Ring (CPU)|Ring]]&nbsp;0), haben also unbeschränkten Zugriff auf die [[Hardware]]. Einige wenige Module des Kernels laufen im eingeschränkten Benutzermodus (x86: Ring&nbsp;3). Die ''Level'' 1 und 2 der [[x86-Architektur]] werden von Linux nicht genutzt, da sie auf vielen anderen Architekturen nicht existieren und der Kernel auf allen unterstützten Architekturen im Wesentlichen gleich funktionieren soll.
Nahezu jeder Treiber kann auch als Modul zur Verfügung stehen und vom System dann dynamisch nachgeladen werden. Ausgenommen davon sind Treiber, die für das Starten des Systems verantwortlich sind, bevor auf das [[Dateisystem]] zugegriffen werden kann. Man kann allerdings den Kernel so konfigurieren, dass ein [[Cramfs]]- oder [[Initramfs]]-[[Dateisystem]] vor dem tatsächlichen Root-Dateisystem geladen wird, welches die weiteren für den Startprozess notwendigen Module enthält. Dadurch kann die Kernelgröße verringert und die Flexibilität drastisch erhöht werden.


Nahezu jeder Treiber kann auch als Modul zur Verfügung stehen und vom System dann dynamisch nachgeladen werden. Ausgenommen davon sind Treiber, die für das Starten des Systems verantwortlich sind, bevor auf das [[Dateisystem]] zugegriffen werden kann. Man kann allerdings den Kernel so konfigurieren, dass ein [[CramFS]]- oder [[Initramfs]]-Dateisystem vor dem tatsächlichen Root-Dateisystem geladen wird, welches die weiteren für den Startprozess notwendigen Module enthält. Dadurch kann die Kernelgröße verringert und die Flexibilität drastisch erhöht werden.
Im System laufende Programme bekommen wiederum vom Kernel Prozessorzeit zugewiesen. Jeder dieser Prozesse erhält einen eigenen, geschützten Speicherbereich und kann nur über Systemaufrufe auf die Gerätetreiber und das Betriebssystem zugreifen. Die Prozesse laufen dabei im Benutzermodus (''user mode''), während der Kernel im Kernel-Modus (''kernel mode'') arbeitet. Die Privilegien im Benutzermodus sind sehr eingeschränkt. Abstraktion und Speicherschutz sind nahezu vollkommen, ein direkter Zugriff wird nur sehr selten und unter genau kontrollierten Bedingungen gestattet. Dies hat den Vorteil, dass kein Programm z.&nbsp;B. durch einen [[Programmfehler|Fehler]] das System zum Absturz bringen kann.


Im System laufende Programme bekommen wiederum vom Kernel Prozessorzeit zugewiesen. Jeder dieser Prozesse erhält einen eigenen, geschützten Speicherbereich und kann nur über Systemaufrufe auf die Gerätetreiber und das Betriebssystem zugreifen. Die Prozesse laufen dabei im Benutzermodus ''({{lang|en|user mode}})'', während der Kernel im Kernel-Modus ''({{lang|en|kernel mode}})'' arbeitet. Die Privilegien im Benutzermodus sind sehr eingeschränkt. Abstraktion und Speicherschutz sind nahezu vollkommen, ein direkter Zugriff wird nur sehr selten und unter genau kontrollierten Bedingungen gestattet. Dies hat den Vorteil, dass kein Programm z.&nbsp;B. durch einen [[Programmfehler|Fehler]] das System zum Absturz bringen kann.
Linux stellt wie sein Vorbild [[Unix]] eine vollständige Abstraktion und Virtualisierung für nahezu alle Betriebsmittel bereit (z.&nbsp;B. [[Virtuelle Speicherverwaltung|virtueller Speicher]], Illusion eines eigenen Prozessors etc.).


Linux stellt wie sein Vorbild [[Unix]] eine vollständige Abstraktion und Virtualisierung für nahezu alle Betriebsmittel bereit (z.&nbsp;B. [[Virtuelle Speicherverwaltung|virtueller Speicher]], Illusion eines eigenen Prozessors usw.).
Die Tatsache, dass Linux nicht auf einem [[Mikrokernel]] basiert, war Thema eines berühmten [[Flame War]]s zwischen [[Linus Torvalds]] und [[Andrew S. Tanenbaum]]. Anfang der [[1990er]] Jahre, als Linux entwickelt wurde, galten monolithische Kernels als [[obsolet]] (Linux war zu diesem Zeitpunkt noch rein monolithisch). Die Diskussion und Zusammenfassungen sind im Artikel [[Geschichte von Linux]] näher beschrieben.


Die Tatsache, dass Linux nicht auf einem [[Microkernel]] basiert, war Thema eines berühmten [[Flame War]]s zwischen [[Linus Torvalds]] und [[Andrew S. Tanenbaum]]. Anfang der [[1990er]] Jahre, als Linux entwickelt wurde, galten monolithische Kernels als [[Obsoleszenz #Allgemeines|obsolet]] (Linux war zu diesem Zeitpunkt noch rein monolithisch). Die Diskussion und Zusammenfassungen sind im Artikel [[Geschichte von Linux]] näher beschrieben.
Durch Erweiterungen wie [[Filesystem in Userspace|FUSE]] und durch die zunehmende Verwendung von Kernel-Prozessen fließen mittlerweile auch [[Mikrokernel]]-Konzepte ein.

Durch Erweiterungen wie [[Filesystem in Userspace|FUSE]] und durch die zunehmende Verwendung von Kernel-Prozessen fließen mittlerweile auch zahlreiche Microkernel-Konzepte in Linux ein.


=== Portierbarkeit ===
=== Portierbarkeit ===
Obwohl Linus Torvalds eigentlich nicht beabsichtigt hatte, einen [[Portierung (Software)|portierbaren]] Kernel zu schreiben, hat sich Linux dank des GNU Compilers [[GNU Compiler Collection|GCC]] weitreichend in diese Richtung entwickelt. Es ist inzwischen eines der am häufigsten portierten Systeme (nur noch [[NetBSD]] läuft auf etwa gleich vielen Architekturen). Das Repertoire reicht dabei von eher selten anzutreffenden Betriebsumgebungen wie dem [[iPAQ]]-Handheld-Computer, [[Digitalkamera]]s oder Großrechnern wie IBMs [[System z]] bis hin zu normalen [[Personal Computer|PCs]].


Obwohl die Portierung auf die S/390 ursprünglich ein vom IBM-Management nicht genehmigtes Unterfangen war ''(siehe auch: [[Skunk works]])'', plante [[IBM]] auch die IBM-Supercomputergeneration [[Blue Gene]] mit einem eigenen Linux-Port auszustatten.
Obwohl Linus Torvalds eigentlich nicht beabsichtigt hatte, einen [[Migration (Informationstechnik)|portierbaren]] Kernel zu schreiben, hat sich Linux dank des GNU Compilers [[GNU Compiler Collection|GCC]] weitreichend in diese Richtung entwickelt. Es ist inzwischen mit eines der am häufigsten portierten Systeme (nur noch [[NetBSD]] läuft auf etwa gleich vielen Architekturen). Das Repertoire reicht dabei von eher selten anzutreffenden Betriebsumgebungen wie dem [[iPAQ]]-Handheld-Computer, [[Digitalkamera]]s oder Großrechnern wie IBMs [[System z]] bis hin zu normalen Home-PCs.

Obwohl die Portierung auf die S/390 ursprünglich ein vom IBM-Management nicht genehmigtes Unterfangen war (''siehe auch: [[Skunk Works]]''), plant [[IBM]] auch die nächste IBM-Supercomputergeneration [[Blue Gene]] mit einem eigenen Linux-Port auszustatten.


Ursprünglich hatte Torvalds eine ganz andere Art von Portierbarkeit für sein System angestrebt, nämlich die Möglichkeit, freie GPL- und andere quelloffene Software leicht unter Linux kompilieren zu können. Dieses Ziel wurde bereits sehr früh erreicht und macht sicherlich einen guten Teil des Erfolges von Linux aus, da es jedem eine einfache Möglichkeit bietet, auf einem freien System freie Software laufen zu lassen.
Ursprünglich hatte Torvalds eine ganz andere Art von Portierbarkeit für sein System angestrebt, nämlich die Möglichkeit, freie GPL- und andere quelloffene Software leicht unter Linux kompilieren zu können. Dieses Ziel wurde bereits sehr früh erreicht und macht sicherlich einen guten Teil des Erfolges von Linux aus, da es jedem eine einfache Möglichkeit bietet, auf einem freien System freie Software laufen zu lassen.


Die ersten Architekturen, auf denen Linux lief, waren die von Linus Torvalds verwendeten Computer:<ref name="digital-domain_unix-linux-history">{{Internetquelle |url=https://digital-domain.net/lug/unix-linux-history.html |titel=UNIX/Linux History |sprache=en |abruf=2017-03-11}}</ref>
Linux läuft gegenwärtig auf den folgenden Architekturen:
* [[IA-32]] (x86 ab dem [[Intel 80386|i386]]) – Linus hatte ab 1991 einen PC mit Intel-386DX-33-MHz-Prozessor, 4&nbsp;MB RAM und einer 40-MB-Festplatte.
* [[Acorn Archimedes]], [[A5000]] und [[Risc PC|RiscPC]]-Serie ([[ARM-Architektur|ARM]], [[StrongARM]], Intel [[XScale]] etc.)
* [[Alpha-Prozessor|Alpha]]&nbsp;– Torvalds arbeitete von 1994 bis 1995 an der Portierung auf die [[64-Bit-Architektur|64-Bit]]-Alpha-Architektur (auf einem [[Digital Equipment Corporation|DEC]]-Alpha-Rechner, den er als Leihgabe erhalten hatte).
* [[AMD64]] (auch bekannt als x86–64 oder x64): [[AMD]]s 64-bit Prozessoren [[AMD Athlon 64]], [[AMD Opteron]] und [[AMD Turion 64|Turion]], sowie Intel-Prozessoren mit EM64T-Erweiterung ([[Xeon]] 4E)

* [[Atmel AVR32]]
Damit war Linux sehr früh 64-Bit-fähig (Linux 1.2 erschien 1995) und durch die Portierung auf Alpha war der Weg für weitere Portierungen frei. Zeitgleich arbeitete der Student Dave Miller ab 1993 an der Portierung auf [[SPARC-Architektur|SPARC]] von [[Sun Microsystems]], einer damals weit verbreiteten Architektur. Doch lief Linux 2.0 von Mitte 1996 offiziell auf IA-32 und Alpha, konnte aber bereits [[Symmetrisches Multiprozessorsystem|SMP]].
* [[Axis Communications]]' [[ETRAX CRIS|CRIS]]

Mit Linux 2.2 vom Januar 1999 kamen folgende Ports hinzu:<ref name="digital-domain_unix-linux-history" />
* [[SPARC-Architektur|SPARC]]/&#x200B;UltraSPARC von [[Oracle]] (ursprünglich von [[Sun Microsystems|Sun]])
* [[Motorola-68000er-Familie|68000]] (m68k) von [[Motorola]]
* [[PowerPC]] (ppc) von [[Apple]], IBM und Motorola (AIM-Allianz)

Mit Linux 2.4 vom Januar 2001 kamen schließlich folgende Architekturen hinzu:<ref name="digital-domain_unix-linux-history" />
* [[Itanium-Architektur|Itanium]] (IA-64) von [[Intel]] und [[HP Inc.|HP]]
* [[System/390|S/390]] von [[IBM]]
* [[SuperH]] von [[Hitachi (Unternehmen)|Hitachi]]
* [[MIPS-Architektur|MIPS]]

Trotz der unterstützten [[Befehlssatzarchitektur]]en ({{enS|Instruction Set Architecture}}, kurz ISA) ist für die Lauffähigkeit mehr nötig, sodass Linux gegenwärtig auf u.&nbsp;a. folgenden Plattformen und Architekturen läuft:
* [[Acorn Archimedes]], [[A5000]] und [[Risc PC|Risc-PC]]-Serie ([[Arm-Architektur|Arm]], [[ARM StrongARM|StrongARM]], Intel [[XScale]] usw.)
* [[Alpha-Prozessor|Alpha]] von [[Compaq]]
* [[Axis Communications]]’ [[ETRAX CRIS|CRIS]]
* [[Blackfin]]
* [[Blackfin]]
* [[Renesas H8|Hitachi H8/&#x200B;300]]
* [[Compaq]] [[Alpha-Prozessor]]
* [[HP Inc.|Hewlett-Packard]] [[PA-RISC]]
* [[Renesas H8|Hitachi H8/300]]
* [[Hewlett Packard]] [[PA-RISC]]
* [[IBM]] [[System/390|S/390]] und [[z&nbsp;Systems]]
* [[IA-64]]: PCs mit 64bit [[Intel Itanium]]-Prozessor
* [[IBM]] [[S/390]] und [[System z]]
* [[Intel 80386]] und neuer: [[IBM-PC]]s und kompatible mit den CPUs 80386, [[Intel 80486|80486]], und [[Intel Pentium|Pentium]]-Serie; AMD [[Athlon]]-Serie, [[AMD Duron]]; [[Cyrix]]-Prozessoren.
* Unterstützung für Intel-16-Bit-CPUs ([[Intel 8086|8086]], [[Intel 8088|8088]], [[Intel 80186|80186]], [[Intel 80186|80188]] und [[Intel 80286|80286]]) wird derzeit im Rahmen des ''[[ELKS]]''-Projektes entwickelt. ELKS steht für ''Embeddable Linux Kernel Subset'' und ist eine Kernel-Untermenge.
* [[MIPS-Architektur|MIPS]]: Maschinen von [[Silicon Graphics]]&nbsp;…
* [[MIPS-Architektur|MIPS]]: Maschinen von [[Silicon Graphics]]&nbsp;…
* [[Motorola 68020]] und neuer: neuere [[Amiga]]s, einige [[Atari]] und [[Apple Computer]] (siehe [[Linux68k]])
* [[Motorola 68020]] und neuer: spätere [[Amiga]]s, einige [[Atari]] und viele [[Apple#Computer|Apple Computer]] ab 1987 ([[Macintosh II]]) bis 1995 (siehe [[Linux68k]])
* [[NEC Corporation|NEC]] [[v850]]e
* [[NEC Corporation|NEC]] [[v850]]e
* [[PowerPC]]: die meisten neueren [[Apple#Computer|Apple Computer]] (alle PCI-basierten [[Apple Power Macintosh|Power Macintosh]], der [[GameCube]], begrenzte Unterstützung für [[NuBus]] Power Macs), Clones der Power Macs von [[Power Computing]], [[UMAX]] und [[Motorola]], mit einer „Power-UP“-Karte verbesserte [[Amiga]]s (z.&nbsp;B. Blizzard oder CyberStorm), sowohl [[POWER]] als auch PowerPC-basierte IBM [[RS/6000]]-Systeme, verschiedenen eingebetteten PowerPC-Plattformen
* [[PowerPC]]: die meisten [[Apple#Computer|Apple Computer]] zwischen 1994 und 2006 (alle [[Peripheral Component Interconnect|PCI]]-basierten [[Power Macintosh]], der [[Nintendo GameCube]]; begrenzte Unterstützung für [[NuBus]] Power Macs bis Kernel 2.4.x, die weitere Entwicklung wurde in das Projekt ''PPC/Linux for NuBus Power Macs'' ausgelagert<ref>{{Internetquelle |url=https://sourceforge.net/projects/nubus-pmac/ |titel=PPC/Linux for NuBus Power Macs |hrsg=sourceforge.net |sprache=en |abruf=2014-04-12}}</ref>), Clones der Power Macs von [[Power Computing]], [[UMAX]] und [[Motorola]], mit einer „Power-UP“-Karte verbesserte [[Amiga]]s (z.&nbsp;B. Blizzard oder CyberStorm) bzw. dessen Nachfolger [[AmigaOne]], sowohl [[IBM Power]] als auch PowerPC-basierte IBM [[RS/6000]]-Systeme, verschiedene eingebettete PowerPC-Plattformen
* [[Sun SPARC]] und [[UltraSparc]]: [[Sun Microsystems|Sun]]-Workstations
* [[SPARC-Architektur|Sun/&#x200B;Oracle SPARC]] und UltraSparc: Workstations von [[Sun Microsystems|Sun]]- bzw. [[Oracle]]
* [[Hitachi (Unternehmen)|Hitachi]] [[SuperH]]: [[Sega]] [[Dreamcast]]
* [[SuperH]] von [[Hitachi (Unternehmen)|Hitachi]]: [[Sega]] [[Dreamcast]]
* [[OpenRISC]]
* [[RISC-V]]
* [[x86-Architektur]]:
** x86-16-Bit: im Rahmen des ELKS-Projektes werden IBM-PC-kompatible Computer mit den 16-Bit-Prozessoren [[Intel 8086|8086]], [[Intel 8088|8088]], [[Intel 80186|80186]], [[Intel 80186|80188]], [[Intel 80286|80286]] und dazu kompatiblen unterstützt. Die Abkürzung „ELKS“ steht für ''{{lang|en|[[Embeddable Linux Kernel Subset]]}}'' und stellt eine Untermenge des Linux-2.0/2.1-Kernels dar. Das angestrebte Ziel ist Kompatibilität zu Unix-V7 auf 16-Bit-x86-Systemen.
** [[IA-32]], 32-Bit: [[IBM Personal Computer|IBM PCs]] und [[IBM-PC-kompatibler Computer|kompatible]] mit [[Intel 80386]] (bis Kernel 3.7, Anfang 2013)<ref>{{Internetquelle |autor=Katherine Noyes |url=https://www.linux.com/news/software/linux-kernel/701695-linux-38-hello-2013-goodbye-386-chips |titel={{lang|en|Linux 3.8: Hello 2013, Goodbye 386 Chips}} |werk={{lang|en|Linux News}} |hrsg={{lang|en|[[Linux Foundation]]}} |datum=2013-02-20 |sprache=en |abruf=2013-04-14}}</ref> bzw. [[Intel 80486]] und dazu kompatiblen [[x86-Prozessor]]-[[Prozessorarchitektur|Architekturen]] nachfolgender Generationen
** [[x86-64]], 64-Bit: Unter der Bezeichnung „amd64“ oder [[x64]] werden Prozessoren der x86-Architektur verstanden, die einen 64-Bit-Modus bieten (implementiert als [[AMD64]] oder [[Intel&nbsp;64]]). Dabei handelt es sich um die Nachfolger der ursprünglichen IBM-PC-kompatiblen Computer, die einen zum [[AMD Opteron]] kompatiblen x86-Prozessor nutzen, beispielsweise: von [[AMD]] ab [[AMD Athlon 64|Athlon 64]], [[AMD Turion 64|Turion]], [[AMD Phenom|Phenom]] und von [[Intel]] ab [[Intel Core 2|Core&nbsp;2]], [[Intel Xeon|Xeon]].


==== User Mode Linux ====
==== Binärschnittstellen der Arm-Architektur ====
Linux unterstützt zwei verschiedene Binärschnittstellen für [[Arm-Architektur|Arm]]-Prozessoren. Die ältere Binärschnittstelle wird mit dem Akronym ''OABI (old application binary interface)'' bezeichnet und unterstützt die Prozessorarchitekturen bis einschließlich ARMv4, während die neuere Binärschnittstelle, die mit ''EABI (embedded application binary interface)'' bezeichnet wird, die Prozessorarchitekturen ab einschließlich ARMv4 unterstützt. Der bedeutendste Unterschied der Binärschnittstellen in Bezug auf Systemleistung ist die sehr viel bessere Unterstützung von Software-emulierten Gleitkommarechnungen durch EABI.<ref>{{Internetquelle |autor=Andres Calderon, Nelson Castillo |url=http://linuxdevices.org/why-arms-eabi-matters/ |titel=Why ARM’s EABI matters |hrsg=LinuxDevices.com |datum=2007-05-14 |sprache=en |abruf=2019-04-10}}</ref>


==== User Mode Linux ====
Ein besonderer Port ist das ''[[User Mode Linux]] (UML)''. Prinzipiell handelt es sich dabei um einen Port von Linux auf sein eigenes Systemcall-Interface. Dies ermöglicht es, einen Linux-Kernel als normalen Prozess auf einem laufenden Linux-System zu starten. Der User-Mode-Kernel greift dann nicht selbst auf die Hardware zu, sondern reicht entsprechende Anforderungen an den echten Kernel durch. Durch diese Konstellation werden „[[Sandbox|Sandkästen]]“ ähnlich den [[Virtual Machine]]s von [[Java (Programmiersprache)|Java]] oder den ''Jails'' von [[FreeBSD]] möglich, in denen ein normaler Benutzer Root-Rechte haben kann, ohne dem tatsächlichen System schaden zu können.
Ein besonderer Port ist das ''[[User Mode Linux]]''. Prinzipiell handelt es sich dabei um einen Port von Linux auf sein eigenes Systemcall-Interface. Dies ermöglicht es, einen Linux-Kernel als normalen Prozess auf einem laufenden Linux-System zu starten. Der User-Mode-Kernel greift dann nicht selbst auf die Hardware zu, sondern reicht entsprechende Anforderungen an den echten Kernel durch. Durch diese Konstellation werden „[[Sandbox|Sandkästen]]“ ähnlich den [[Virtuelle Maschine|virtuellen Maschinen]] von [[Java (Programmiersprache)|Java]] oder den [[FreeBSD#Virtualisierung|jails]] von [[FreeBSD]] möglich, in denen ein normaler Benutzer Root-Rechte haben kann, ohne dem tatsächlichen System schaden zu können.


==== µClinux ====
==== µClinux ====
[[µClinux]] ist eine Linux-Variante für Computer ohne [[Memory Management Unit]] (MMU) und kommt vorwiegend auf [[Mikrocontroller]]n und [[Eingebettetes System|eingebetteten Systemen]] zum Einsatz. Seit Linux-Version 2.6 ist µClinux Teil des Linux-Projektes.


== Entwicklungsprozess ==
''[[µClinux]]'' ist eine Linux-Variante für Computer ohne [[Memory Management Unit]] (''MMU'') und kommt vorwiegend auf [[Mikrocontroller]]n und [[Eingebettetes System|eingebetteten Systemen]] zum Einsatz. Seit Linux-Version 2.6 ist ''µClinux'' Teil des Linux-Projektes.
[[Datei:LinuxCon Europe Linus Torvalds 03.jpg|mini|hochkant|Linus Torvalds (2014)]]


Die Entwicklung von Linux liegt durch die [[GNU General Public License]] und durch ein sehr offenes Entwicklungsmodell nicht in der Hand von Einzelpersonen, Konzernen oder Ländern, sondern in der Hand einer [[Online-Community#Entwickler-Community|weltweiten Gemeinschaft]] vieler Programmierer, die sich hauptsächlich über das Internet austauschen.
== Kernel-Versionen ==
Bei der Entwicklung kommunizieren die Entwickler fast ausschließlich über E-Mail, da Linus Torvalds behauptet, dass so die Meinungen nicht direkt aufeinander prallen.
In vielen [[Mailingliste]]n, aber auch in Foren und im Usenet besteht für jedermann die Möglichkeit, die Diskussionen über den Kernel zu verfolgen, sich daran zu beteiligen und auch aktive Beiträge zur Entwicklung zu leisten. Durch diese unkomplizierte Vorgehensweise ist eine schnelle und stetige Entwicklung gewährleistet, die auch die Möglichkeit mit sich bringt, dass jeder dem Kernel Fähigkeiten zukommen lassen kann, die er benötigt.


Eingegrenzt wird dies nur durch die Kontrolle von [[Linus Torvalds]] und einigen besonders verdienten Programmierern, die das letzte Wort über die Aufnahme von Verbesserungen und [[Patch (Software)|Patches]] in die offizielle Version haben. Manche Linux-Distributoren bauen auch eigene Funktionen in den Kernel ein, die im offiziellen Kernel (noch) nicht vorhanden sind.
[[Datei:Linux_kernel_loc.svg|miniatur|Anzahl der Zeilen des Source-Codes]]

=== Änderungen der Herkunftskontrolle ===
Der Entwicklungsprozess des Kernels ist wie der Kernel selbst ebenfalls immer weiterentwickelt worden. So führte der Rechtsprozess der [[SCO Group]] um angeblich illegal übertragenen Code in Linux zur Einführung eines „Linux Developer’s Certificate of Origin“, das von Linus Torvalds und [[Andrew Morton (Programmierer)|Andrew Morton]] bekanntgegeben wurde.<ref>Pressemitteilung OSDL: [http://www.osdl.org/newsroom/press_releases/2004/2004_05_24_dco.html ''Developer’s Certificate of Origin''.] 2004.</ref> Diese Änderung griff das Problem auf, dass nach dem bis dahin gültigen Modell des Linux-Entwicklungsprozesses die Herkunft einer Erweiterung oder Verbesserung des Kernels nicht nachvollzogen werden konnte.

{{Zitat
|Text=These days, most of the patches in the kernel don't actually get sent directly to me. That not just wouldn't scale, but the fact is, there's a lot of subsystems I have no clue about, and thus no way of judging how good the patch is. So I end up seeing mostly the maintainers of the subsystem, and when a bug happens, what I want to see is the maintainer name, not a random developer who I don't even know if he is active any more. So at least for me, the _chain_ is actually mostly more important than the actual originator.

There is also another issue, namely the fact than when I (or anybody else, for that matter) get an emailed patch, the only thing I can see directly is the sender information, and that's the part I trust. When Andrew sends me a patch, I trust it because it comes from him – even if the original author may be somebody I don't know. So the _path_ the patch came in through actually documents that chain of trust – we all tend to know the „next hop“, but we do _not_ necessarily have direct knowledge of the full chain.

So what I’m suggesting is that we start „signing off“ on patches, to show the path it has come through, and to document that chain of trust. It also allows middle parties to edit the patch without somehow „losing“ their names – quite often the patch that reaches the final kernel is not exactly the same as the original one, as it has gone through a few layers of people.
|Sprache=en
|Autor=Linus Torvalds
|Quelle=Linux-Kernel Archive, 23. Mai 2004
|Übersetzung=Zurzeit werden die meisten Patches für den Kernel nicht direkt an mich gesandt. Das wäre einfach nicht machbar. Tatsache ist, dass es eine Menge Untersysteme gibt, mit denen ich überhaupt nicht vertraut bin und ich somit keine Möglichkeit habe zu entscheiden, wie gut der Patch ist. Deshalb läuft es meist darauf hinaus, die Pfleger (Maintainer) des Untersystemes zu treffen. Falls ein Fehler auftritt, will ich den Namen eines Pflegers und nicht irgendeines Entwicklers sehen, von dem ich nicht einmal weiß, ob er noch aktiv ist. Daher ist für mich auf jeden Fall die _Kette_ wichtiger als der tatsächliche Urheber. Auch gibt es ein anderes Problem, nämlich dass ich, falls man mir (oder irgendjemand anderem) einen Patch über E-Mail schickt, einzig die Senderinformation direkt sehen kann, und das ist der Teil, dem ich traue. Wenn Andrew mir einen Patch schickt, vertraue ich dem Patch, weil er von Andrew kommt – auch wenn der eigentliche Urheber jemand ist, den ich nicht kenne. Also belegt tatsächlich der _Weg_, den der Patch zu mir nahm, diese Kette des Vertrauens – wir alle neigen dazu, das jeweils nächste „Glied“ zu kennen, aber _nicht_ unbedingt unmittelbares Wissen über die gesamte Kette zu haben. Was ich also vorschlage ist, dass wir anfangen, Patches „abzuzeichnen“, um den Weg, den sie genommen haben, aufzuzeigen und diese Kette des Vertrauens zu dokumentieren. Das erlaubt es darüber hinaus vermittelnden Gruppen, den Patch zu verändern, ohne dass dabei der Name von jemanden „auf der Strecke bleibt“ – ziemlich oft ist die Patchversion, die letztendlich in den Kernel aufgenommen wird, nicht genau die ursprüngliche, ist sie doch durch einige Entwicklerschichten gegangen.
|ref=<ref>Linux-Kernel Archive: ''[https://lkml.org/lkml/2004/5/23/10 <nowiki>[RFD]</nowiki> Explicitly documenting patch submission]'', 23. Mai 2004 (englisch)</ref>}}

=== Das Versionskontrollsystem Git ===
Die Versionskontrolle des Kernels unterliegt dem Programm [[Git]]. Dies wurde speziell für den Kernel entwickelt und auf dessen Bedürfnisse hin optimiert. Es wurde im April 2005 eingeführt, nachdem sich abgezeichnet hatte, dass das alte Versionskontrollsystem [[BitKeeper]] nicht mehr lange für die Kernelentwicklung genutzt werden konnte.


=== Kernel-Versionen ===
Auf der Website ''kernel.org'' werden alle alten und neuen Kernel-Versionen archiviert. Die dort befindlichen Referenzkernel werden auch als ''Vanilla-Kernel'' bezeichnet (von umgangssprachlich engl. ''vanilla'' für ''Standard'' bzw. ''ohne Extras'' im Vergleich zu Distributionskernels). Auf diesem bauen die sogenannten Distributionskernel auf, die von den einzelnen [[Linux-Distribution]]en um weitere Funktionen ergänzt werden.
Auf der Website ''kernel.org'' werden alle alten und neuen Kernel-Versionen archiviert. Die dort befindlichen Referenzkernel werden auch als ''[[Plain Vanilla|Vanilla]]-Kernel'' bezeichnet (von umgangssprachlich engl. ''vanilla'' für ''Standard'' bzw. ''ohne Extras'' im Vergleich zu Distributionskernels). Auf diesem bauen die Distributionskernel auf, die von den einzelnen [[Linux-Distribution]]en um weitere Funktionen ergänzt werden. Die Kernel-Version des geladenen Betriebssystems kann mit dem [[Syscall]] ''uname'' abgefragt werden.
Die Kernel-Version des geladenen Betriebssystems kann mit dem Befehl uname -r abgefragt werden.


=== Versionsnummern-Schema ===
=== Versionsnummern-Schema ===
Die frühen Kernelversionen (0.01 bis 0.99) hatten noch kein klares Nummerierungsschema. Version 1.0 sollte die erste „stabile“ Linux-Version werden.


==== Bis 2011 ====
Die frühen Kernelversionen (0.01 bis 0.99) hatten noch kein klares Nummerierungsschema. Version 1.0 sollte die erste „stabile“ Linux-Version werden. Beginnend mit Version 1.0 folgen die Versionsnummern von Linux einem bestimmten Schema:
Beginnend mit Version 1.0 folgten die [[Versionsnummer]]n von Linux einem bestimmten Schema:


Die ''erste Ziffer'' wird nur bei grundlegenden Änderungen in der Systemarchitektur angehoben. Während der Entwicklung des 2.5er Kernels kam wegen der relativ grundlegenden Änderungen, verglichen mit dem 2.4er Kernel, die Diskussion unter den Kernel-Programmierern auf, den nächsten Produktionskernel als 3.0 zu deklarieren. Torvalds war aber aus verschiedenen Gründen dagegen, sodass der resultierende Kernel als 2.6 bezeichnet wurde.
Die ''erste Ziffer'' wurde nur bei grundlegenden Änderungen in der Systemarchitektur angehoben. Während der Entwicklung des 2.5er-Kernels kam wegen der relativ grundlegenden Änderungen, verglichen mit dem 2.4er-Kernel, die Diskussion unter den Kernel-Programmierern auf, den nächsten Produktionskernel als 3.0 zu deklarieren. Torvalds war aber aus verschiedenen Gründen dagegen, sodass der resultierende Kernel als 2.6 bezeichnet wurde.


Die ''zweite Ziffer'' gibt das jeweilige „Majorrelease“ an. Bisher wurden stabile Versionen (sogenannte Produktionskernel) von den Entwicklern stets durch gerade Ziffern wie 2.2, 2.4 und 2.6 gekennzeichnet, während die Testversionen (sogenannte Entwicklerkernel) immer ungerade Ziffern trugen, wie zum Beispiel 2.3 und 2.5; diese Trennung ist aber seit Juli 2004 ausgesetzt, es gibt zurzeit (2010) keinen Entwicklerkernel mit der Nummer 2.7, stattdessen werden die Änderungen laufend in die 2.6er-Serie eingearbeitet.
Die ''zweite Ziffer'' gab das jeweilige „Majorrelease“ an. Stabile Versionen (Produktivkernel) wurden von den Entwicklern durch gerade Ziffern wie 2.2, 2.4 und 2.6 gekennzeichnet, während die Testversionen (Entwicklerkernel) immer ungerade Ziffern trugen, wie zum Beispiel 2.3 und 2.5; diese Trennung ist aber seit Juli 2004 ausgesetzt, es gab keinen Entwicklerkernel mit der Nummer 2.7, stattdessen wurden die Änderungen laufend in die 2.6er-Serie eingearbeitet.


Zusätzlich bezeichnet eine ''dritte Zahl'' das „Minorrelease“, das die eigentliche Version kennzeichnet. Werden neue Funktionen hinzugefügt, steigt die dritte Zahl an. Der Kernel wird damit zum Beispiel mit einer [[Versionsnummer]] wie 2.6.7 bestimmt.
Zusätzlich bezeichnet eine ''dritte Zahl'' das „Minorrelease“, die eigentliche Version. Werden neue Funktionen hinzugefügt, steigt die dritte Zahl an. Der Kernel wird damit zum Beispiel mit einer Versionsnummer wie 2.6.7 bestimmt.


Um die Korrektur eines schwerwiegenden [[Network File System|NFS]]-Fehlers schneller verbreiten zu können, wurde mit der Version 2.6.8.1 erstmals eine ''vierte Ziffer'' eingeführt. Seit März 2005 (Kernel 2.6.11) wird diese Nummerierung offiziell verwendet.<ref name="heise_versionsnummern">Thorsten Leemhuis: ''[http://www.heise.de/newsticker/meldung/57122 Neue Kernel-Serie mit Linux 2.6.11.1 gestartet]'' auf heise.de, 7. März 2005</ref> So ist es möglich, die Stabilität des Kernels trotz teilweise sehr schneller Veröffentlichungszyklen zu gewährleisten und Korrekturen von kritischen Fehlern innerhalb weniger Stunden in den offiziellen Kernel zu übernehmen – wobei sich die vierte Ziffer erhöht (z.&nbsp;B. von 2.6.11.'''1''' auf 2.6.11.'''2'''). Die Minorreleasenummer, also die dritte Ziffer, wird hingegen nur bei Einführung neuer Funktionen hochgezählt.
Um die Korrektur eines schwerwiegenden [[Network File System|NFS]]-Fehlers schneller verbreiten zu können, wurde mit der Version 2.6.8.1 erstmals eine ''vierte Ziffer'' eingeführt. Seit März 2005 (Kernel 2.6.11) wird diese Nummerierung offiziell verwendet.<ref name="heise_versionsnummern">{{Heise online |ID=140974 |Titel=Neue Kernel-Serie mit Linux 2.6.11.1 gestartet |Autor=Thorsten Leemhuis |Datum=2005-03-07 |Abruf=2015-04-26}}</ref> So ist es möglich, die Stabilität des Kernels trotz teilweise sehr kurzer Veröffentlichungszyklen zu gewährleisten und Korrekturen von kritischen Fehlern innerhalb weniger Stunden in den offiziellen Kernel zu übernehmen – wobei sich die vierte Ziffer erhöht (z.&nbsp;B. von 2.6.11.'''1''' auf 2.6.11.'''2'''). Die Minorreleasenummer, also die dritte Ziffer, wird hingegen nur bei Einführung neuer Funktionen hochgezählt.


==== Nach 2011 ====
Im Mai 2011 erklärte Linus Torvalds die nach der Version 2.6.39 kommende Version nicht 2.6.40 sondern 3.0 zu benennen.<ref>[http://thread.gmane.org/gmane.linux.kernel/1147415 Ankündigungsmail von Version 3.0-rc1]</ref> Als Grund dafür führte er an das die Versionsnummern seiner Meinung nach zu hoch wurden. Die Versionsnummer '3' würde gleichzeitig für das dritte Jahrzehnt stehen, welches für den Linux-Kernel mit seinem 20. Geburtstag anfangen wird. Zukünftig wird bei neuen Versionen die zweite Ziffer erhöht und die dritte steht – anstelle wie bisher die 4. – für Bugfixreleases.
Im Mai 2011 erklärte Linus Torvalds, die nach der Version 2.6.39 kommende Version nicht 2.6.40, sondern 3.0 zu benennen.<ref>{{Internetquelle |autor=Linus Torvalds |url=https://lkml.indiana.edu/hypermail/linux/kernel/1105.3/02846.html |titel=Linux 3.0-rc1 |hrsg= |datum=2011-05-29 |sprache=en |abruf=2024-12-23 }}<!--Bitte zwecks Dokumentation stehen lassen! Ersetzt {{Internetquelle |autor=Linus Torvalds |url=http://thread.gmane.org/gmane.linux.kernel/1147415 |titel=Linux 3.0-rc1 |hrsg=thread.gmane.org |datum=2011-05-30 |sprache=en |offline=1 |archiv-url=https://web.archive.org/web/20161130121934/http://thread.gmane.org/gmane.linux.kernel/1147415/ |archiv-datum=2016-11-30 |abruf=2014-11-16 |archiv-bot=2019-09-18 01:05:43 InternetArchiveBot}} (Im Archiv nicht auffindbar.)--></ref> Als Grund dafür führte er an, dass die Versionsnummern seiner Meinung nach zu hoch wurden. Die Versionsnummer 3 stehe gleichzeitig für das dritte Jahrzehnt, welches für den Linux-Kernel mit seinem 20. Geburtstag anfange.


Bei neuen Versionen wird seitdem die zweite Ziffer erhöht und die dritte steht – anstelle der vierten – für Bugfixreleases.
=== Entwicklerversion ===


Im Februar 2015 erhöhte Torvalds auf Version 4.0 statt Version 3.20,<ref>{{Internetquelle |autor=Linus Torvalds |url=https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=c517d838eb7d07bbe9507871fab3931deccff539 |titel=index: kernel/git/torvalds/linux.git |hrsg=git.kernel.org |datum=2015-02-23 |sprache=en |abruf=2015-02-23}}</ref> nachdem er auf [[Google+]] Meinungen hierzu eingeholt hatte.<ref>{{Internetquelle |autor=Linus Torvalds |url=https://plus.google.com/+LinusTorvalds/posts/jmtzzLiiejc |titel=Linus Torvalds — Google |datum=2015-02-13 |sprache=en |abruf=2015-02-23}}</ref> Seit März 2019 ist Linux 5.0 freigegeben. Dabei hat der Sprung von der letzten Versionsnummer 4.20 auf 5.0 keine tiefergehende Bedeutung. Auch den Sprung von 5.19 auf 6.0 begründete Linus lakonisch damit, dass er sich wieder vor großen Zahlen zu fürchten beginne.<ref>{{Internetquelle |autor=Linus Torvalds |url=https://lore.kernel.org/all/CAHk-=wgrz5BBk=rCz7W28Fj_o02s0Xi0OEQ3H1uQgOdFvHgx0w@mail.gmail.com/?ref=news.itsfoss.com |titel=Linux Kernel Mailing List: Announcement of Kernel 5.19 |hrsg=lore.kernel.org |datum=2022-07-31 |sprache=en |abruf=2023-04-11}}</ref>
Neue Funktionen finden sich im sogenannten ''-mm'' Kernel des Kernelentwicklers [[Andrew Morton (Programmierer)|Andrew Morton]] und werden anschließend in den Hauptzweig von Torvalds übernommen. Somit werden große Unterschiede zwischen Entwicklungs- und Produktionskernel und damit verbundene Portierungsprobleme zwischen den beiden Serien vermieden. Durch dieses Verfahren gibt es auch weniger Differenzen zwischen dem offiziellen Kernel und den Distributionskernel (früher wurden Features des Entwicklungszweiges von den Distributoren häufig in ihre eigenen Kernels rückintegriert). Allerdings litt 2004/2005 die Stabilität des 2.6er Kernels unter den häufig zu schnell übernommenen Änderungen. Ende Juli 2005 wurde deshalb ein neues Entwicklungsmodell beschlossen, das nach dem Erscheinen der Version 2.6.13 erstmals zur Anwendung kommt: Neuerungen werden nur noch in den ersten zwei Wochen der Kernelentwicklung angenommen, wobei anschließend eine Qualitätssicherung bis zum endgültigen Erscheinen der neuen Version erfolgt.

=== Entwicklerversion ===
Neue Funktionen finden sich im „''-mm“''-Kernel des Kernelentwicklers [[Andrew Morton (Programmierer)|Andrew Morton]] und werden anschließend in den Hauptzweig von Torvalds übernommen. Somit werden große Unterschiede zwischen Entwicklungs- und Produktionskernel und damit verbundene Portierungsprobleme zwischen den beiden Serien vermieden. Durch dieses Verfahren gibt es auch weniger Differenzen zwischen dem offiziellen Kernel und den Distributionskernel (früher wurden Features des Entwicklungszweiges von den Distributoren häufig in ihre eigenen Kernels rückintegriert). Allerdings litt 2004/2005 die Stabilität des 2.6er-Kernels unter den häufig zu schnell übernommenen Änderungen. Ende Juli 2005 wurde deshalb ein neues Entwicklungsmodell beschlossen, das nach dem Erscheinen der Version 2.6.13 erstmals zur Anwendung kam: Neuerungen werden nur noch in den ersten zwei Wochen der Kernelentwicklung angenommen, wobei anschließend eine Qualitätssicherung bis zum endgültigen Erscheinen der neuen Version erfolgt.


=== Pflege der Kernel-Versionen ===
=== Pflege der Kernel-Versionen ===
Während Torvalds die neuesten Entwicklungsversionen veröffentlicht, wurde die Pflege der älteren stabilen Versionen an andere Programmierer abgegeben. Gegenwärtig ist dafür [[Greg Kroah-Hartman]] verantwortlich – mit Ausnahme des von [[Ben Hutchings (Programmierer)|Ben Hutchings]] betreuten 3.16-Zweigs. Zusätzlich zu diesen offiziellen und über Kernel.org oder einen seiner [[Spiegelserver|Mirrors]] zu beziehenden Kernel-Quellcodes kann man auch alternative „Kernel-Trees“ aus anderen Quellen benutzen. [[Distributor]]en von Linux-basierten Betriebssystemen pflegen meistens ihre eigenen Versionen des Kernels und beschäftigen zu diesem Zwecke fest angestellte Kernel-[[Hacker]], die ihre Änderungen meist auch in die offiziellen Kernels einfließen lassen.

Während Torvalds die neuesten Entwicklungsversionen veröffentlicht, wurde die Pflege der älteren „stabilen“ Versionen an andere Programmierer abgegeben. Gegenwärtig ist [[David Weinehall]] für die 2.0er Serie verantwortlich, [[Marc-Christian Petersen]] (zuvor [[Alan Cox]]) für den Kernel 2.2, [[Willy Tarreau]] (zuvor [[Marcelo Tosatti]]) für den Kernel 2.4, [[Greg Kroah-Hartman]] und [[Chris Wright (Programmierer)|Chris Wright]] für die aktuellen stabilen Kernel 2.6.x.y(-stable), [[Linus Torvalds]] für die aktuellen „normalen“ Kernel 2.6.x, und [[Andrew Morton (Programmierer)|Andrew Morton]] für seinen experimentellen -mm-Zweig, basierend auf dem neuesten 2.6.x. Zusätzlich zu diesen offiziellen und über Kernel.org oder einen seiner [[Mirror]]s zu beziehenden Kernel-Quellcodes kann man auch alternative „Kernel-Trees“ aus anderen Quellen benutzen. [[Distributor]]en von Linux-basierten Betriebssystemen pflegen meistens ihre eigenen Versionen des Kernels und beschäftigen zu diesem Zwecke fest angestellte Kernel-[[Hacker]], die ihre Änderungen meist auch in die offiziellen Kernels einfließen lassen.


Distributions-Kernel sind häufig intensiv [[Patch (Software)|gepatcht]], um auch Treiber zu enthalten, die noch nicht im offiziellen Kernel enthalten sind, von denen der Distributor aber glaubt, dass seine Kundschaft sie benötigen könnte und die notwendige Stabilität respektive Fehlerfreiheit dennoch gewährleistet ist.
Distributions-Kernel sind häufig intensiv [[Patch (Software)|gepatcht]], um auch Treiber zu enthalten, die noch nicht im offiziellen Kernel enthalten sind, von denen der Distributor aber glaubt, dass seine Kundschaft sie benötigen könnte und die notwendige Stabilität respektive Fehlerfreiheit dennoch gewährleistet ist.


=== {{Anker|Langzeitunterstützung|Long Term Support|LTS}}Versionen mit Langzeitunterstützung ===
=== Versionen und Versionsgeschichte ===
Folgende Versionen werden besonders lange mit Support (''{{lang|en|[[Long Term Support]]}}'') versorgt:<ref>{{Internetquelle |url=https://www.kernel.org/category/releases.html |titel=Active kernel releases |hrsg=kernel.org |sprache=en |abruf=2024-12-18}}</ref>


{| class="wikitable"
==== Zeittafel ====
|-
! Version
! Veröffentlichung
! Support-Ende (''{{lang|en|[[End of Life|EOL]]}}'')
|-
| 5.4
| {{DatumZelle|2019-11-24}}
| Dezember 2025
|-
| 5.10
| {{DatumZelle|2020-12-13}}
| Dezember 2026
|-
| 5.15
| {{DatumZelle|2021-10-31}}
| Dezember 2026
|-
| 6.1
| {{DatumZelle|2022-12-11}}
| Dezember 2027
|-
| 6.6
| {{DatumZelle|2023-10-29}}
| Dezember 2026
|-
| 6.12
| {{DatumZelle|2024-11-18}}
| Dezember 2026
|}


== Versionsgeschichte ==
Das Schaubild stellt einzelne Versionen des Linux Kernels anhand der Erscheinungsdaten auf einer Zeittafel angeordnet dar und soll dem Überblick dienen.<br />
=== Zeittafeln ===
{{Zeitleiste Linux (Kernel)}}
[[Datei:Lines of Code Linux Kernel.svg|mini|Entwicklung der Anzahl Quelltextzeilen]]<!-- einschließlich Zeitangaben -->


Das folgende Schaubild stellt einzelne Versionen des Linux-Kernels anhand der Erscheinungsdaten auf einer Zeittafel angeordnet dar und soll dem Überblick dienen.
==== Versionsgeschichte bis Version 2.6 ====


{{Zeitleiste Linux (Kernel)}}
{{Vorlage:Version|lv|zeige=11101}}

{|class="wikitable"
=== Versionsgeschichte bis Version 2.6 ===
|-class="hintergrundfarbe5"
{| class="wikitable"
|- class="hintergrundfarbe5"
! Zweig
! Zweig
! Version
! Version
! Veröffentlichung<ref name="kernelArchive">{{Internetquelle|url=http://www.kernel.org/|titel=The Linux Kernel Archives|sprache=englisch|kommentar=Versionsübersicht bei ''kernel.org''|hrsg=kernel.org|zugriff=2010-09-06}}</ref>
! Veröffentlichung<ref name="kernelArchive">{{Internetquelle |url=https://www.kernel.org/ |titel=The Linux Kernel Archives |hrsg=kernel.org |sprache=en |abruf=2010-09-06 |kommentar=Versionsübersicht bei ''kernel.org''}}</ref>
! Dateien{{FN|(a)}}
! Dateien{{FN|(a)}}
! [[Lines of Code|Quellcode-<br />zeilen]]{{FN|(b)}}
! [[Lines of Code|Quellcode-<br />zeilen]]{{FN|(b)}}
Zeile 148: Zeile 231:
! Bemerkungen
! Bemerkungen
|-
|-
|
|
| {{Version|o|0.01}}
| {{Version|o|0.01}}
| 17. September 1991
| 17. September 1991
| {{nts|88}}
| 88
| 8.413
| {{nts|8413}}
| {{nts|230}}
| 230
| erste Veröffentlichung; startete auf Systemen mit [[Floppy-Diskettenlaufwerk]] und [[Intel 80386|386er]]-Prozessor, lud dabei die Treiber für das [[Minix-Dateisystem]] und eine [[Finnische Sprache|finnische]] Tastatur, sowie als einziges Anwendungsprogramm den Kommandozeileninterpreter ''[[Bourne-again shell|bash]]''<ref>[http://www.heise.de/open/meldung/Happy-Birthday-Tux-155501.html Happy Birthday, Tux] Artikel bei ''[[Heise open]]'', vom 25.&nbsp;August 2006</ref>
| erste Veröffentlichung; startete auf Systemen mit [[Floppy-Diskettenlaufwerk]] und [[Intel 80386|386er]]-Prozessor, lud dabei die Treiber für das [[Minix-Dateisystem]] und eine [[Finnische Sprache|finnische]] Tastatur, sowie als einziges Anwendungsprogramm den Kommandozeileninterpreter ''[[Bourne-again shell|bash]]''<ref name="heiseonline_155501">{{Heise online |ID=155501 |Titel=Happy Birthday, Tux |Autor=Oliver Diedrich |Datum=2006-08-25 |Abruf=2014-10-24}}</ref>
|-
|-
| 1.0
| 1.0
| {{Version|o|1.0.0}}
| {{Version|o|1.0.0}}
| 13. März 1994
| 13. März 1994
| {{nts|563}}
| 563
| 170.581
| {{nts|170581}}
| 1.259
| {{nts|1259}}
|erste „kommerziell verwendbare“ Version. Tatsächlich sind jedoch die Buchstaben der letzten Version 0.99z ausgegangen, so führte man verfrüht die Version 1.0 ein.
|
|-
|-
| rowspan="2" | 1.1
|rowspan="2"| 1.1
| {{Version|o|1.1.0}}
| {{Version|o|1.1.0}}
| 6. April 1994
| 6. April 1994
| {{nts|561}}
| 561
| 170.320
| {{nts|170320}}
| 1.256
| {{nts|1256}}
| rowspan="2" | Entwicklungsversion
|rowspan="2"| Entwicklungsversion
|-
|-
| {{Version|o|1.1.95}}
| {{Version|o|1.1.95}}
| 2. März 1995
| 2. März 1995
|
|
|
|
| 2.301
|{{nts|2301}}
|-
|-
| rowspan="2" | 1.2
|rowspan="2"| 1.2
| {{Version|o|1.2.0}}
| {{Version|o|1.2.0}}
| 7. März 1995
| 7. März 1995
| {{nts|909}}
| 909
| 294.623
| {{nts|294623}}
| 2.301
| {{nts|2301}}
| erste Portierungen auf weitere Prozessorarchitekturen, mit [[Alpha-Prozessor|Alpha]], [[MIPS-Architektur|MIPS]] und [[Sun SPARC|SPARC]]<ref name="Heise_2011-06-01">[http://www.heise.de/open/artikel/Die-Woche-Linux-wird-3-0-1254128.html Die Woche: Linux wird 3.0] Artikel bei ''Heise open'', vom 1.&nbsp;Juni 2011</ref>
| erste Portierungen auf weitere Prozessorarchitekturen, mit [[Alpha-Prozessor|Alpha]], [[MIPS-Architektur|MIPS]] und [[Sun SPARC|SPARC]]<ref name="Heise_2011-06-01">{{Heise online |ID=1254128 |Titel=Die Woche: Linux wird 3.0 |Autor=Oliver Diedrich |Datum=2011-06-01 |Abruf=2015-04-26}}</ref>
|-
|-
| {{Version|o|1.2.13}}
| {{Version|o|1.2.13}}
| 2. August 1995
| 2. August 1995
|
|
|
|
| 2.355
| {{nts|2355}}
|
|
|-
|-
| rowspan="2" | 1.3
|rowspan="2"| 1.3
| {{Version|o|1.3.0}}
| {{Version|o|1.3.0}}
| 12. Juni 1995
| 12. Juni 1995
| {{nts|992}}
| 992
| 323.581
| {{nts|323581}}
| 2.558
| {{nts|2558}}
| rowspan="2" | Entwicklungsversion mit erster Unterstützung für [[Mehrprozessorsystem]]e<ref name="Heise_2011-06-01"/>
|rowspan="2"| Entwicklungsversion mit erster Unterstützung für [[Mehrprozessorsystem]]e<ref name="Heise_2011-06-01" />
|-
|-
| {{Version|o|1.3.100}}
| {{Version|o|1.3.100}}
| 10. Mai 1996
| 10. Mai 1996
|
|
|
|
| 5.615
| {{nts|5615}}
|-
|-
| rowspan="2" | 2.0
|rowspan="2"| 2.0
| {{Version|o|2.0.0}}
| {{Version|o|2.0.0}}
| 9. Juni 1996
| 9. Juni 1996
| 2.015
| {{nts|2015}}
| 716.119
| {{nts|716119}}
| 5.844
| {{nts|5844}}
| erste Unterstützung für [[Symmetrisches Mehrprozessorsystem|symmetrische Mehrprozessorsysteme]]<ref name="Heise_2011-06-01"/>
| erste Unterstützung für [[Symmetrisches Mehrprozessorsystem|symmetrische Mehrprozessorsysteme]]<ref name="Heise_2011-06-01" />, Einführung von Kernel-Modulen.
|-
|-
| {{Version|o|2.0.40}}
| {{Version|o|2.0.40}}
| 8. Februar 2004
| 8. Februar 2004
|
|
|
|
| 7.551
| {{nts|7551}}
|
|
|-
|-
| rowspan="2" | 2.1
|rowspan="2"| 2.1
| {{Version|o|2.1.0}}
| {{Version|o|2.1.0}}
| 30. September 1996
| 30. September 1996
| 1.727
| {{nts|1727}}
| 735.736
| {{nts|735736}}
| 6.030
| {{nts|6030}}
| rowspan="2" | Entwicklungsversion
|rowspan="2"| Entwicklungsversion
|-
|-
| {{Version|o|2.2.0-pre9}}
| {{Version|o|2.2.0-pre9}}
| 21. Januar 1999
| 21. Januar 1999
|
|
|
|
| 13.077
| {{nts|13077}}
|-
|-
| rowspan="2" | 2.2
|rowspan="2"| 2.2
| {{Version|o|2.2.0}}
| {{Version|o|2.2.0}}
| 26. Januar 1999
| 26. Januar 1999
| 4.599
| {{nts|4599}}
| 1.676.182
| {{nts|1676182}}
| 13.080
| {{nts|13080}}
| erste Unterstützung für das Netzwerkprotokoll [[IPv6]] sowie Portierung auf die Plattformen [[UltraSPARC]] und [[PA-RISC]]<ref name="Heise_2011-06-01"/>
| erste Unterstützung für das Netzwerkprotokoll [[IPv6]] sowie Portierung auf die Plattformen [[UltraSPARC]] und [[PA-RISC]]<ref name="Heise_2011-06-01" />
|-
|-
| {{Version|o|2.2.26}}
| {{Version|o|2.2.26}}
| 24. Februar 2004
| 24. Februar 2004
|
|
|
|
| 19.530
| {{nts|19530}}
|
|
|-
|-
| rowspan="2" | 2.3
|rowspan="2"| 2.3
| {{Version|o|2.3.0}}
| {{Version|o|2.3.0}}
| 11. Mai 1999
| 11. Mai 1999
| 4.721
| {{nts|4721}}
| 1.763.358
| {{nts|1763358}}
| 13.804
| {{nts|13804}}
| rowspan="2" | Entwicklungsversion
|rowspan="2"| Entwicklungsversion
|-
|-
| {{Version|o|2.3.99-pre9}}
| {{Version|o|2.3.99-pre9}}
| 23. Mai 2000
| 23. Mai 2000
|
|
|
|
| 20.882
| {{nts|20882}}
|-
|-
| rowspan="2" | 2.4
|rowspan="2"| 2.4
| {{Version|o|2.4.0}}
| {{Version|o|2.4.0}}
| 4. Januar 2001
| 4. Januar 2001
| 8.187
| {{nts|8187}}
| 3.158.560
| {{nts|3158560}}
| 24.379
| {{nts|24379}}
| erste Unterstützung für den Energieverwaltungsstandard [[Advanced Configuration and Power Interface|ACPI]] und für den Datenbus [[Universal Serial Bus|USB]];<ref name="Heise_2011-06-01"/> letzter noch gepflegter Zweig vor 2.6; die Unterstützung soll beendet werden wenn ein Jahr lang keine Aktualisierung des Zweiges mehr erforderlich war, momentan wäre dies im Dezember 2011 der Fall<ref>[http://lkml.org/lkml/2010/9/6/15 LKML: Willy Tarreau: Linux 2.4.37.10 + 2.4 EOL plans] (englisch) – Mitteilung bei der ''Linux-Kernel Mailing List'', vom 6.&nbsp;September 2010</ref>
| erste Unterstützung für den Energieverwaltungsstandard ''[[Advanced Configuration and Power Interface|ACPI]]'' und für den Datenbus ''[[Universal Serial Bus|USB]]'',<ref name="Heise_2011-06-01" /> [[Large File Support]]<ref name="lfs">{{Internetquelle |autor=Andreas Jaeger |url=https://users.suse.com/~aj/linux_lfs.html |titel=Large File Support in Linux |hrsg=SUSE GmbH |datum=2015-02-15 |abruf=2022-11-26}}</ref>, Einführung des ''[[Netfilter]]'' und der ''[[iptables]]'';<ref name="heiseonline_1982608">{{Heise online |ID=1982608 |Titel=Neuer Firewall-Code für den Linux-Kernel |Autor=Oliver Diedrich |Datum=2013-10-21 |Abruf=2013-10-28}}</ref> letzter gepflegter Zweig vor 2.6<ref>[https://lkml.org/lkml/2010/9/6/15 LKML: Willy Tarreau: Linux 2.4.37.10 + 2.4 EOL plans] – Mitteilung bei der ''Linux-Kernel Mailing List'', vom 6. September 2010, abgerufen am: 16. September 2012 (englisch)</ref>
|-
|-
| {{Version|co|2.4.37}}
| {{Version|o|2.4.37}}
| 2. Dezember 2008
| 2. Dezember 2008
|
|
|
|
| 38.735
| {{nts|38735}}
| '''Aktuelle Version:''' ''2.4.37.11'' vom 18.&nbsp;Dezember 2010
| Letzte Version war ''2.4.37.11'' am 18. Dezember 2010
|-
|-
| rowspan="2" | 2.5
|rowspan="2"| 2.5
| {{Version|o|2.5.0}}
| {{Version|o|2.5.0}}
| 23. November 2001
| 23. November 2001
| 9.893
| {{nts|9893}}
| 3.833.603
| {{nts|3833603}}
| 29.405
| {{nts|29405}}
| rowspan="2"|Entwicklungsversion
|rowspan="2"|Entwicklungsversion
|-
|-
| {{Version|o|2.5.75}}
| {{Version|o|2.5.75}}
| 10. Juli 2003
| 10. Juli 2003
|
|
|
|
| 40.969
| {{nts|40969}}
|-
|-
| 2.6
| 2.6
| {{Version|o|2.6.0}}
| {{Version|o|2.6.0}}
| 18. Dezember 2003
| 18. Dezember 2003
|
| 21.279
| 8.102.486
|
| 41.614
| {{nts|41614}}
| neues Versionsschema, dabei wurden die bisherigen Entwicklerzweige durch einen stegigen Entwicklungsprozess ersetzt<ref name="Heise_2011-06-01"/>
| neues Versionsschema, dabei wurden die bisherigen Entwicklerzweige durch einen stetigen Entwicklungsprozess ersetzt<ref name="Heise_2011-06-01" />
|-
|-
| colspan="7"|→ für alle nachfolgenden Versionen siehe [[#Versionsgeschichte ab Version 2.6|Abschnitt „Versionsgeschichte ab Version 2.6“]]
|colspan="7"| → für alle nachfolgenden Versionen siehe [[#Versionsgeschichte ab Version 2.6|Abschnitt „Versionsgeschichte ab Version 2.6“]]
|-
|colspan="7"| {{Version|l|zeige=110000}}
|}
|}


==== Versionsgeschichte ab Version 2.6 ====
=== Versionsgeschichte ab Version 2.6 ===
Bei Betrachtung der zuletzt erschienenen Versionen (siehe Tabelle) erfolgt die Entwicklung einer neuen Kernel-Version in durchschnittlich 82&nbsp;Tagen. Der Kernel wird hierbei im Durchschnitt um 768&nbsp;Dateien und 325.892&nbsp;Quelltextzeilen (englisch ''[[Lines of Code]]'') erweitert. Das mit dem Datenkompressionsprogramm ''[[gzip]]'' komprimierte [[tar-Archiv|''tar''-Archiv]] (.tar.gz) wächst im Mittel um rund 2&nbsp;[[Megabyte]] mit jeder veröffentlichten Hauptversion.


Bei Betrachtung der zuletzt erschienenen Versionen (siehe Tabelle) erfolgt die Entwicklung einer neuen Kernel-Version in durchschnittlich 82 Tagen. Der Kernel wird hierbei im Durchschnitt um 768 Dateien und 325.892 [[Lines of Code|Quellcodezeilen]] erweitert. Das mit [[gzip]] komprimierte [[tar]]-Archiv (.tar.gz) wächst im Mittel um 2.084 [[Kilobyte]].
<gallery perrow="4">
Datei:Linux-Kernel-neue-Dateien.png|Neue Dateien{{FN|(a)}}
Datei:Linux-Kernel-neue-Quellcodezeilen.png|Neue Quellcodezeilen{{FN|(b)}}
Datei:Linux-Kernel-Steigerung-der-Archivgröße.png|Steigerung der Archiv-Dateigröße in [[Kilobyte|kB]]{{FN|(c)}}
Datei:Linux-Kernel-Entwicklungszeiträume.png|Entwicklungszeiträume
</gallery>
{| class="wikitable sortable"
{| class="wikitable sortable"
|- class="hintergrundfarbe5"
|- class="hintergrundfarbe5"
! Version
! Version
! Veröffentlichung<ref name="kernelArchive"/>
! Veröffentlichung<ref name="kernelArchive" />
! Dateien{{FN|(a)}}
! Anzahl der Dateien{{FN|(a)}}
! [[Lines of Code|Quellcode-<br />zeilen]]{{FN|(b)}}
! [[Lines of Code|Quelltext-<br />zeilen]]{{FN|(b)}}
! Größe<br />in&nbsp;[[Kilobyte|kB]]{{FN|(c)}}
! Größe<br />in&nbsp;[[Kilobyte|kB]]{{FN|(c)}}
! Entwicklungs-<br />zeitraum{{FN|(d)}}
! Zeitraum<br />in&nbsp;Tagen{{FN|(d)}}
! class="unsortable"|Bemerkungen
! class="unsortable"| Bemerkungen
|- id="2.6.13"
| {{Version|o|2.6.13|sortKey=2,130}}
| {{DatumZelle|2005-08-28}}
| <!-- ? -->
| <!-- ? -->
| <!-- ≈ 31.143 -->
| <!-- ? -->
| u.&nbsp;a. wurde ''[[#Inotify|Inotify]]'' aufgenommen<ref>[https://www.heise.de/newsticker/meldung/Linux-Kernel-2-6-13-veroeffentlicht-126180.html Linux-Kernel 2.6.13 veröffentlicht] – Thorsten Leemhuis, bei ''Heise'', am 29. August 2005</ref>
|-
|-
| {{Version|o|2.6.20|sortKey=2,620}}
| {{Version|o|2.6.20|sortKey=2,620}}
| {{dts|4|2|2007|noFormat=ja}}
| {{DatumZelle|2007-02-04}}
| 21.280
| {{nts|21280}}
| 8.102.486
| {{nts|8102486}}
| 54.548
| {{nts|54548}}
| {{nts|66}} Tage
| 66
| Erste Unterstützung für den Virtualisierer ''[[Kernel-based Virtual Machine|KVM]]''<ref>[http://www.heise.de/open/artikel/Die-Woche-Xen-hat-KVM-vorbeiziehen-lassen-1261765.html Die Woche: Xen hat KVM vorbeiziehen lassen] Artikel bei ''Heise open'', vom 16.&nbsp;Juni 2011</ref>
| erste Unterstützung für die Virtualisierungstechnik ''[[Kernel-based Virtual Machine|KVM]]''<ref name="heiseonline_1261765">{{Heise online |ID=1261765 |Titel=Die Woche: Xen hat KVM vorbeiziehen lassen |Autor=Thorsten Leemhuis |Datum=2011-06-16 |Abruf=2014-10-24}}</ref>
|-
|-
| {{Version|o|2.6.21|sortKey=2,621}}
| {{Version|o|2.6.21|sortKey=2,621}}
| {{DatumZelle|2007-04-26}}
| {{dts|26|4|2007|noFormat=ja}}
| 21.614
| {{nts|21614}}
| 8.246.470
| {{nts|8246470}}
| 55.329
| {{nts|55329}}
| {{nts|80}} Tage
| 80
|
|
|-
|-
| {{Version|o|2.6.22|sortKey=2,622}}
| {{Version|o|2.6.22|sortKey=2,622}}
| {{dts|8|7|2007|noFormat=ja}}
| {{DatumZelle|2007-07-08}}
| 22.411
| {{nts|22411}}
| 8.499.363
| {{nts|8499363}}
| 56.914
| {{nts|56914}}
| {{nts|74}} Tage
| 74
|
|
|-
|-
| {{Version|o|2.6.23|sortKey=2,623}}
| {{Version|o|2.6.23|sortKey=2,623}}
| {{dts|9|10|2007|noFormat=ja}}
| {{DatumZelle|2007-10-09}}
| 22.530
| {{nts|22530}}
| 8.566.554
| {{nts|8566554}}
| 57.404
| {{nts|57404}}
| {{nts|93}} Tage
| 93
|
|
|-
|-
| {{Version|o|2.6.24|sortKey=2,624}}
| {{Version|o|2.6.24|sortKey=2,624}}
| {{DatumZelle|2008-01-24}}
| {{dts|24|1|2008|noFormat=ja}}
| 23.062
| {{nts|23062}}
| 8.859.629
| {{nts|8859629}}
| 59.079
| {{nts|59079}}
| {{nts|107}} Tage
| 107
|
|
|-
|-
| {{Version|o|2.6.25|sortKey=2,625}}
| {{Version|o|2.6.25|sortKey=2,625}}
| {{DatumZelle|2008-04-17}}
| {{dts|17|4|2008|noFormat=ja}}
| 23.810
| {{nts|23810}}
| 9.232.484
| {{nts|9232484}}
| 61.518
| {{nts|61518}}
| {{nts|83}} Tage
| 83
|
|
|-
|-
| {{Version|o|2.6.26|sortKey=2,626}}
| {{Version|o|2.6.26|sortKey=2,626}}
| {{DatumZelle|2008-07-13}}
| {{dts|13|7|2008|noFormat=ja}}
| 24.270
| {{nts|24270}}
| 9.411.724
| {{nts|9411724}}
| 62.550
| {{nts|62550}}
| {{nts|88}} Tage
| 88
|
|
|-
|-
| {{Version|co|2.6.27|sortKey=2,627}}
| {{Version|o|2.6.27|sortKey=2,627}}
| {{dts|9|10|2008|noFormat=ja}}
| {{DatumZelle|2008-10-09}}
| 24.354
| {{nts|24354}}
| 9.709.868
| {{nts|9709868}}
| 63.721
| {{nts|63721}}
| {{nts|88}} Tage
| 88
| Wurde nachträglich mit Unterstützung für neue Hardware (wie [[Serial Attached SCSI|SAS]]) erweitert<ref>[http://www.golem.de/1105/83224.html Linux-Kernel: Updates für Long-Term-Zweige] – Artikel bei ''[[Golem.de]]'', vom 4.&nbsp;Mai 2011</ref><br />'''Aktuelle Version:''' ''2.6.27.59'' vom 30.&nbsp;April 2011
| wurde nachträglich mit Unterstützung für neue Hardware (wie [[Serial Attached SCSI|SAS]]) erweitert;<ref>{{Internetquelle |autor=Jörg Thoma |url=https://www.golem.de/1105/83224.html |titel=Linux-Kernel: Updates für Long-Term-Zweige |hrsg=Golem.de |datum=2011-05-04 |abruf=2014-10-24}}</ref><br />Dieser Zweig hatte ''[[Long Term Support]]'', die letzte Version war ''2.6.27.62'' am 17. März 2012
|-
|-
| {{Version|o|2.6.28|sortKey=2,628}}
| {{Version|o|2.6.28|sortKey=2,628}}
| {{DatumZelle|2008-12-24}}
| {{dts|24|12|2008|noFormat=ja}}
| 25.255
| {{nts|25255}}
| 10.195.507
| {{nts|10195507}}
| 66.766
| {{nts|66766}}
| {{nts|76}} Tage
| 76
|
|
|-
|-
| {{Version|o|2.6.29|sortKey=2,629}}
| {{Version|o|2.6.29|sortKey=2,629}}
| {{DatumZelle|2009-03-23}}
| {{dts|23|3|2009|noFormat=ja}}
| 26.668
| {{nts|26668}}
| 11.010.647
| {{nts|11010647}}
| 71.977
| {{nts|71977}}
| {{nts|89}} Tage
| 89
| Aufnahme des ''[[Btrfs]]''<ref>[http://www.admin-magazin.de/Das-Heft/2009/04/Das-neue-Linux-Dateisystem-Btrfs-im-Detail Clever schachteln: Das neue Linux-Dateisystem Btrfs im Detail] – ''[[Admin-Magazin]]'', Ausgabe 04/2009</ref><ref name="heiseonline_221863">{{Heise online |ID=221863 |Titel=Das Dateisystem Btrfs |Autor=Oliver Diedrich |Datum=2009-07-07 |Abruf=2016-08-14}}</ref>
|
|-
|-
| {{Version|o|2.6.30|sortKey=2,630}}
| {{Version|o|2.6.30|sortKey=2,630}}
| {{DatumZelle|2009-06-10}}
| {{dts|10|6|2009|noFormat=ja}}
| 27.879
| {{nts|27879}}
| 11.637.173
| {{nts|11637173}}
| 75.768
| {{nts|75768}}
| {{nts|78}} Tage
| 78
| USB-3.0-Unterstützung
| [[Universal Serial Bus|USB]]-3.0-Unterstützung
|-
|-
| {{Version|o|2.6.31|sortKey=2,631}}
| {{Version|o|2.6.31|sortKey=2,631}}
| {{dts|9|9|2009|noFormat=ja}}
| {{DatumZelle|2009-09-09}}
| 29.111
| {{nts|29111}}
| 12.046.317
| {{nts|12046317}}
| 78.279
| {{nts|78279}}
| {{nts|92}} Tage
| 92
| Unterstützung für Festplatten mit nativen 4K-Sektoren (auch bekannt als ''[[Festplattenlaufwerk#Advanced Format|Advanced Format]]'')
|
|-
|-
| {{Version|co|2.6.32|sortKey=2,632}}
| {{Version|o|2.6.32|sortKey=2,632}}
| {{dts|3|12|2009|noFormat=ja}}
| {{DatumZelle|2009-12-03}}
| 30.485
| {{nts|30485}}
| 12.610.030
| {{nts|12610030}}
| 81.901
| {{nts|81901}}
| {{nts|84}} Tage
| 84
| Dieser [[Long Term Support|LTS]]-Zweig wurde von Willy Tarreau betreut, die letzte Version war ''2.6.32.71'' am 12. März 2016
| '''Aktuelle Version:''' ''2.6.32.42'' vom 23.&nbsp;Juni 2011
|-
|-
| {{Version|co|2.6.33|sortKey=2,633}}
| {{Version|o|2.6.33|sortKey=2,633}}
| {{DatumZelle|2010-02-24}}
| {{dts|24|2|2010|noFormat=ja}}
| 31.565
| {{nts|31565}}
| 12.990.041
| {{nts|12990041}}
| 84.533
| {{nts|84533}}
| {{nts|83}} Tage
| 83
| bildet die Grundlage für einen [[Echtzeit]]-Zweig;<ref name="heiseonline_1212541">{{Heise online |ID=1212541 |Titel=Kernel-Log: Entwicklung von 2.6.39 angelaufen |Autor=Thorsten Leemhuis |Datum=2011-03-22 |Abruf=2015-04-26}}</ref><br />Letzte Version war ''2.6.33.20'' am 7. November 2011<ref name="Heise, am 8.11.2011">{{Heise online |ID=1374691 |Titel=Hauptentwicklungsphase von Linux 3.2 abgeschlossen |Autor=Thorsten Leemhuis |Datum=2011-11-08 |Abruf=2015-04-26}}</ref>
| Bildet die Basis für einen Echtzeit-Zweig<ref>[http://www.heise.de/open/artikel/Kernel-Log-Entwicklung-von-2-6-39-angelaufen-1212541.html Kernel-Log: 2.6.39er-Entwicklung läuft, 33er-Serie wiederbelebt] – Artikel bei ''Heise open'', vom 22.&nbsp;März 2011</ref><br />'''Aktuelle Version:''' ''2.6.33.15'' vom 23.&nbsp;Juni 2011
|-
|-
| {{Version|co|2.6.34|sortKey=2,634}}
| {{Version|o|2.6.34|sortKey=2,634}}
| {{DatumZelle|2010-05-16}}
| {{dts|16|5|2010|noFormat=ja}}
| 32.297
| {{nts|32297}}
| 13.320.934
| {{nts|13320934}}
| 86.520
| {{nts|86520}}
| {{nts|82}} Tage
| 82
| Grafiktreiber für neuere [[AMD Radeon]]-GPUs und die Grafikkerne von einigen erst Anfang nächsten Jahres erwartete [[Intel]]-Prozessoren, neue Dateisysteme: [[LogFS]] und [[Ceph]];<ref>[http://www.heise.de/open/artikel/Die-Neuerungen-von-Linux-2-6-34-999161.html?artikelseite=3 Linux 2.6.34: Dateisysteme, Netzwerk] – Seite 3 im Artikel bei ''Heise open'', vom 17.&nbsp;Mai 2010</ref> viele Änderungen an den Dateisystemen [[Btrfs]], [[ext4]], [[NILFS2]], [[SquashFS]] und [[XFS (Dateisystem)|XFS]],<ref>[http://www.heise.de/open/artikel/Kernel-Log-Was-2-6-34-bringt-2-Dateisysteme-984551.html Kernel-Log – Was 2.6.34 bringt (2): Dateisysteme] Artikel bei ''Heise open'', vom 23.&nbsp;April 2010</ref> dem [[Small Computer System Interface|SCSI]]-Subsystem und dem Architektur-Code für [[ARM-Architektur|ARM]]-, [[Blackfin]]- und [[MicroBlaze]]-CPUs;<ref>[http://www.heise.de/open/artikel/Kernel-Log-Cluster-Dateisystem-Ceph-in-2-6-34-Kernel-und-KVM-Vortraege-von-den-CLT2010-959928.html Kernel-Log: Ceph-Dateisystem in 2.6.34, Kernel- und KVM-Vorträge von den CLT2010] Artikel bei ''Heise open'', vom 22.&nbsp;März 2010</ref> bessere Unterstützung für neue und ältere [[AMD]]- und Intel-Chips; größere Umbaumaßnahmen am Nouveau-Treiber für [[Nvidia]]-Grafik<ref>[http://www.heise.de/open/artikel/Kernel-Log-Was-2-6-34-bringt-3-Grafik-993746.html Kernel-Log – Was 2.6.34 bringt (3): Grafik] Artikel bei ''Heise open'', vom 5.&nbsp;Mai 2010</ref><br />'''Aktuelle Version:''' ''2.6.34.9'' vom 17.&nbsp;April 2011
| Grafiktreiber für neuere ''[[AMD Radeon|AMD-Radeon]]''-GPUs und die Grafikkerne von einigen erst Anfang nächsten Jahres erwarteten [[Intel]]-Prozessoren, neue Dateisysteme: [[LogFS]] und [[Ceph]];<ref name="heiseonline_999161">{{Heise online |ID=999161 |Titel=Die Neuerungen von Linux 2.6.34 |Autor=Thorsten Leemhuis |Datum=2010-05-17 |Artikelseite=3 |Seitentitel=Linux 2.6.34: Dateisysteme, Netzwerk |SeitenURL=https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-2-6-34-999161.html?seite=3 |Abruf=2015-11-30}}</ref> viele Änderungen an den Dateisystemen ''Btrfs'', ''[[ext4]]'', ''[[NILFS2]]'', ''[[SquashFS]]'' und ''[[XFS (Dateisystem)|XFS]]'',<ref name="heiseonline_984551">{{Heise online |ID=984551 |Titel=Kernel-Log – Was 2.6.34 bringt (2): Dateisysteme |Autor=Thorsten Leemhuis |Datum=2010-04-23 |Abruf=2016-12-09}}</ref> dem [[Small Computer System Interface|SCSI]]-Subsystem und dem Architektur-Code für [[Arm-Architektur|Arm]]-, [[Blackfin]]- und [[MicroBlaze]]-CPUs;<ref name="heiseonline_959928">{{Heise online |ID=959928 |Titel=Kernel-Log: Cluster-Dateisystem Ceph in 2.6.34, Kernel- und KVM-Vorträge von den CLT2010 |Autor=Thorsten Leemhuis |Datum=2010-03-22 |Abruf=2016-12-09}}</ref> bessere Unterstützung für neue und ältere [[AMD]]- und Intel-Chips; größere Umbaumaßnahmen am [[Nouveau]]-Treiber für [[Nvidia]]-Grafik;<ref name="heiseonline_993746">{{Heise online |ID=993746 |Titel=Kernel-Log – Was 2.6.34 bringt (3): Grafik |Autor=Thorsten Leemhuis |Datum=2010-05-05 |Abruf=2016-12-09}}</ref><br />Dieser [[Long Term Support|LTS]]-Zweig wurde von Paul Gortmaker betreut, die letzte Version war ''2.6.34.15'' am 10. Februar 2014
|-
|-
| {{Version|co|2.6.35|sortKey=2,635}}
| {{Version|o|2.6.35|sortKey=2,635}}
| {{dts|1|8|2010|noFormat=ja}}
| {{DatumZelle|2010-08-01}}
| 33.316
| {{nts|33316}}
| 13.545.604
| {{nts|13545604}}
| 88.301
| {{nts|88301}}
| {{nts|77}} Tage
| 77
| Neu sind unter anderem ein verbesserter Netzwerkdurchsatz, [[Defragmentierung|defragmentierbarer]] Arbeitsspeicher und die Unterstützung für die [[Turbo Core Technology|Turbo-Core]]-Funktion moderner AMD-Prozessoren;<ref>[http://www.heise.de/newsticker/meldung/Entwicklung-von-Linux-2-6-35-laeuft-an-1012414.html Entwicklung von Linux 2.6.35 läuft an] Artikel bei ''Heise online'', vom 31.&nbsp;Mai 2010</ref> die Unterstützung für die Stromsparfunktionen von Radeon-Grafikchips wurde verbessert, sowie die neuen [[H264]]-Dekodierfunktionen für den Grafikkern in Intels Ironlake-Prozessoren (Ironlake ist der Codename für die „Core i5“-Plattform<ref>[http://software.intel.com/sites/oss/archives/1209/platform_turboboost_powersharing.htm Spotlight: Platform Technology] (englisch) - Archivseite beim ''Intel Software Network'', vom 2.&nbsp;August 2010</ref>)<ref>[http://www.heise.de/newsticker/meldung/Eine-Flut-neuer-Stable-Kernel-und-ein-Ausblick-auf-Linux-2-6-35-1033772.html Eine Flut neuer Stable-Kernel und ein Ausblick auf Linux 2.6.35] Artikel bei ''Heise online'', vom 6.&nbsp;Juli 2010</ref><br />'''Aktuelle Version:''' ''2.6.35.13'' vom 28.&nbsp;April 2011
| neu sind unter anderem ein verbesserter Netzwerkdurchsatz, [[Defragmentierung|defragmentierbarer]] Arbeitsspeicher und die Unterstützung für die [[Turbo Core Technology|Turbo-Core]]-Funktion moderner AMD-Prozessoren;<ref name="heiseonline_1012414">{{Heise online |ID=1012414 |Titel=Entwicklung von Linux 2.6.35 läuft an |Autor=Oliver Diedrich |Datum=2010-05-31 |Abruf=2016-12-09}}</ref> die Unterstützung für die Stromsparfunktionen von Radeon-Grafikchips wurde verbessert, sowie die neuen [[H.264]]-Dekodierfunktionen für den Grafikkern in Intels ''[[Core i5|Core-i5]]''-Prozessoren (auch ''{{lang|en|Ironlake}}'' genannt);<ref name="heiseonline_1033772">{{Heise online |ID=1033772 |Titel=Eine Flut neuer Stable-Kernel und ein Ausblick auf Linux 2.6.35 |Autor=Thorsten Leemhuis |Datum=2010-07-06 |Abruf=2016-12-09}}</ref><br />Letzte Version war ''2.6.35.14'' am 13. März 2012<ref>{{Internetquelle |autor=Andi Kleen |url=https://lkml.org/lkml/2011/8/1/324 |titel=The longterm Linux 2.6.35.14 kernel is released |hrsg=lkml.org |datum=2011-08-01 |sprache=en |abruf=2012-05-07}}</ref>
|-
|-
| {{Version|co|2.6.36|sortKey=2,636}}
| {{Version|o|2.6.36|sortKey=2,636}}
| {{DatumZelle|2010-10-20}}
| {{dts|20|10|2010|noFormat=ja}}
| 34.301
| {{nts|34301}}
| 13.499.457
| {{nts|13499457}}
| 88.707
| {{nts|88707}}
| {{nts|80}} Tage
| 80
| Neu sind – im auch „Flesh-Eating Bats with Fangs“ (englisch für „Fleischfressende Fledermäuse mit Reißzähnen“) genannten 36er Zweig<ref>[http://www.hkn.de/home/blog/bugs-tipps-tutorials/der-oktober-im-kernelrueckblick.php Der Oktober im Kernelrückblick] – Blog-Artikel bei ''HKN'', von Oktober 2010</ref><ref>[http://www.heise.de/open/artikel/Die-Neuerungen-von-Linux-2-6-36-1102066.html Die Neuerungen von Linux 2.6.36] Artikel bei ''Heise open'', vom 21.&nbsp;Oktober 2010</ref> – unter anderem das Sicherheits-Framework [[AppArmor]], die Schnittstelle „Lirc“ (für das in Version 2.6.35 eingeführte System zur Nutzung von Infrarot-Fernbedienungen) und eine verbesserte Energieverwaltung für [[Grafikprozessor]]en;<ref>[http://www.heise.de/open/artikel/Kernel-Log-2-6-36-neue-Stable-Kernel-frische-Treiber-1053519.html Kernel-Log: 2.6.36, neue Stable-Kernel, frische Treiber] Artikel bei ''Heise open'', vom 11.&nbsp;August 2010</ref> Unterstützung für Echtzeit-Virenscanner<ref>[http://www.heise.de/newsticker/meldung/Hauptentwicklungsphase-des-Linux-Kernels-2-6-36-abgeschlossen-1058700.html Hauptentwicklungsphase des Linux-Kernels 2.6.36 abgeschlossen] Artikel bei ''Heise online'', vom 16.&nbsp;August 2010</ref><br />'''Aktuelle Version:''' ''2.6.36.4'' vom 17.&nbsp;Februar 2011
| neu sind – im auch „Flesh-Eating Bats with Fangs“ (englisch für „Fleischfressende Fledermäuse mit Reißzähnen“) genannten 36er Zweig<ref name="heiseonline_1102066">{{Heise online |ID=1102066 |Titel=Die Neuerungen von Linux 2.6.36 |Autor=Thorsten Leemhuis |Datum=2010-10-21 |Abruf=2015-08-17}}</ref> &nbsp;– unter anderem das Sicherheits-Framework [[AppArmor]], die Schnittstelle „[[LIRC]]“ (für das in Version 2.6.35 eingeführte System zur Nutzung von Infrarot-Fernbedienungen) und eine verbesserte Energieverwaltung für [[Grafikprozessor]]en;<ref name="heiseonline_1053519">{{Heise online |ID=1053519 |Titel=Kernel-Log: 2.6.36, neue Stable-Kernel, frische Treiber |Autor=Thorsten Leemhuis |Datum=2010-08-11 |Abruf=2015-08-17}}</ref> Unterstützung für Echtzeit-Virenscanner;<ref name="heiseonline_1058700">{{Heise online |ID=1058700 |Titel=Hauptentwicklungsphase des Linux-Kernels 2.6.36 abgeschlossen |Autor=Thorsten Leemhuis |Datum=2010-08-16 |Abruf=2015-08-17}}</ref><br />Letzte Version war ''2.6.36.4'' am 17. Februar 2011
|-
|-
| {{Version|co|2.6.37|sortKey=2,637}}
| {{Version|o|2.6.37|sortKey=2,637}}
| {{DatumZelle|2011-01-05}}
| {{dts|05|01|2011|noFormat=ja}}
| 35.186
| {{nts|35191}}
| 13.916.632
| {{nts|13996612}}
| 92.474
| {{nts|92474}}
| {{nts|76}} Tage
| 76
| Neu sind, neben den üblichen zusätzlichen Treibern (u.a. für [[USB 3.0]]), eine verbesserte [[Skalierbarkeit|Skalierung]] und [[Virtualisierung (Informatik)|Virtualisierung]] für [[Mehrkern-Prozessor]]en;<ref>[http://www.heise.de/newsticker/meldung/Hauptentwicklungsphase-des-Linux-Kernel-2-6-37-abgeschlossen-1128535.html Hauptentwicklungsphase des Linux-Kernel 2.6.37 abgeschlossen] Artikel bei ''Heise online'', vom 1.&nbsp;November 2010</ref> [[Xen]]-Unterstützung<ref name="heise_20110105">[http://www.heise.de/newsticker/meldung/Linux-Kernel-2-6-37-freigegeben-1163048.html Linux-Kernel 2.6.37 freigegeben] – Artikel bei ''Heise online'', vom 5.&nbsp;Januar 2011</ref><br />'''Aktuelle Version:''' ''2.6.37.6'' vom 27.&nbsp;März 2011
| neu sind, neben den üblichen zusätzlichen Treibern (u.&nbsp;a. für [[USB 3.0]]), eine verbesserte [[Skalierbarkeit|Skalierung]] und [[Virtualisierung (Informatik)|Virtualisierung]] für [[Mehrkernprozessor]]en;<ref name="heiseonline_1128535">{{Heise online |ID=1128535 |Titel=Hauptentwicklungsphase des Linux-Kernel 2.6.37 abgeschlossen |Autor=Thorsten Leemhuis |Datum=2010-11-01 |Abruf=2015-02-15}}</ref><br />Letzte Version war ''2.6.37.6'' am 27. März 2011
|-
|-
| {{Version|o|2.6.38|sortKey=2,638}}
| {{Version|o|2.6.38|sortKey=2,638}}
| {{DatumZelle|2011-03-15}}
| {{dts|15|03|2011|noFormat=ja}}
| 35.864
| {{nts|35877}}
| 14.208.866
| {{nts|14294439}}
| 94.144
| {{nts|94144}}
| {{nts|69}} Tage
| 69
| Unterstützung für die [[AMD-Radeon-HD-6000-Serie]] und für AMDs [[Accelerated Processing Unit|APUs]],<ref>[http://www.heise.de/open/artikel/Kernel-Log-Wunderpatch-integriert-verbesserte-Grafiktreiber-am-Start-1165324.html Kernel-Log: Wunderpatch integriert, verbesserte Grafiktreiber am Start] Artikel bei ''Heise open'', vom 7.&nbsp;Januar 2011</ref> sowie Verbesserungen für Audio- und Video-Verarbeitung als auch für [[Berührungsempfindlicher Bildschirm|berührungsempfindliche Bildschirme]];<ref>[http://www.heise.de/open/artikel/Kernel-Log-Was-2-6-38-bringt-6-Treiber-1202105.html Kernel-Log – Was 2.6.38 bringt (6): Treiber] Artikel bei ''Heise open'', vom 9.&nbsp;März 2011</ref><br />'''Aktuelle Version:''' ''2.6.38.8'' vom 3.&nbsp;Juni 2011
| Unterstützung für die [[AMD-Radeon-HD-6000-Serie]] und für AMDs [[Accelerated Processing Unit|APUs]],<ref name="heiseonline_1165324">{{Heise online |ID=1165324 |Titel=Kernel-Log: Wunderpatch integriert, verbesserte Grafiktreiber am Start |Autor=Thorsten Leemhuis |Datum=2011-01-07 |Abruf=2015-03-10}}</ref> sowie Verbesserungen für Audio- und Video-Verarbeitung als auch für [[Berührungsempfindlicher Bildschirm|berührungsempfindliche Bildschirme]];<ref name="heiseonline_1202105">{{Heise online |ID=1202105 |Titel=Kernel-Log – Was 2.6.38 bringt (6): Treiber |Autor=Thorsten Leemhuis |Datum=2011-03-09 |Abruf=2015-02-15}}</ref><br />Letzte Version war ''2.6.38.8'' am 3. Juni 2011
|-
| {{Version|o|2.6.39|sortKey=2,639}}
| {{DatumZelle|2011-05-19}}
| 36.705
| 14.533.582
| 95.994
| 65
| Unterstützung für Firewall-''[[IP set]]s'',<ref name="heiseonline_1217118">{{Heise online |ID=1217118 |Titel=Kernel-Log: Erster Release Candidate von Linux 2.6.39 |Autor=Thorsten Leemhuis |Datum=2011-03-30 |Abruf=2015-02-08}}</ref><ref name="heiseonline_1242011">{{Heise online |ID=1242011 |Titel=Die Neuerungen von Linux 2.6.39 |Autor=Thorsten Leemhuis |Datum=2011-05-19 |Abruf=2015-02-08}}</ref> der [[Big Kernel Lock]] wird entfernt;<ref>{{Internetquelle |autor=Arnd Bergmann |url=https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4ba8216cd90560bc402f52076f64d8546e8aefcb |titel=BKL: That’s all, folks |hrsg=git.kernel.org |datum=2011-01-25 |abruf=2017-08-18}}</ref><br />Letzte Version war ''2.6.39.4'' am 3. August 2011
|-
| {{Version|o|3.0|sortKey=3,0}}
| {{DatumZelle|2011-07-22}}
| 36.781
| 14.646.952
| 96.676
| 64
| neues Versionsnummernschema,<ref name="heiseonline_1252084">{{Heise online |ID=1252084 |Titel=Erste Vorabversion von Linux 3.0 erschienen |Autor=Thorsten Leemhuis |Datum=2011-05-30 |Abruf=2015-01-24}}</ref> zudem neue Treiber u.&nbsp;a. für (virtuelle) Netzwerkgeräte und den Fernseh-Standard [[DVB-T2]], sowie allgemein verbesserte Virtualisierung (u.&nbsp;a. durch abschließende Arbeiten an dem Hypervisor ''[[Xen]]'') und viele kleine Verbesserungen (wie z.&nbsp;B. Schreib- und Lösch-Optimierungen für Dateisysteme);<ref>{{Internetquelle |autor=Jörg Thoma |url=https://www.golem.de/1107/85080.html |titel=Kernel: Linux 3.0 ist fertig |hrsg=golem.de |datum=2011-07-22 |abruf=2015-01-06}}</ref><ref name="heiseonline_1279618">{{Heise online |ID=1279618 |Titel=Linux-Kernel 3.0 freigegeben |Autor=Thorsten Leemhuis |Datum=2011-07-22 |Abruf=2015-01-06}}</ref><br />Dieser [[Long Term Support|LTS]]-Zweig wurde von Greg Kroah-Hartman betreut, die letzte Version war ''3.0.101'' am 22. Oktober 2013
|-
| {{Version|o|3.1|sortKey=3,1}}
| {{DatumZelle|2011-10-24}}
| 37.084
| 14.770.469
| 97.334
| 94
| neu ist u.&nbsp;a. die Unterstützung der Prozessor-Plattform ''[[OpenRISC]]'';<ref name="heiseonline_1344563">{{Heise online |ID=1344563 |Titel=Kernel-Log&nbsp;– Was 3.1 bringt (3): Architektur, Infrastruktur, Virtualisierung |Autor=Thorsten Leemhuis |Datum=2011-09-17 |Abruf=2015-01-06}}</ref><br />Letzte Version war ''3.1.10'' am 18. Januar 2012
|-
| {{Version|o|3.2|sortKey=3,2}}
| {{DatumZelle|2012-01-04}}
| 37.617
| 14.998.651
|data-sort-value=62600| ≈&nbsp;62.600
| 73
| neu ist u.&nbsp;a. die Unterstützung für die Prozessor-Architektur ''Hexagon'' des Unternehmens [[Qualcomm]]; zudem wurden u.&nbsp;a. einige Netzwerktreiber in das zugehörige [[Teilsystem|Subsystem]] ausgelagert<ref name="Heise, am 8.11.2011" /><br />Dieser [[Long Term Support|LTS]]-Zweig wurde von Ben Hutchings betreut, die letzte Version war ''3.2.102'' am 31. Mai 2018
|-
| {{Version|o|3.3|sortKey=3,3}}
| {{DatumZelle|2012-03-18}}
| 38.082
| 15.166.074
|data-sort-value=75300| ≈&nbsp;75.300
| 74
| neu ist u.&nbsp;a. die Unterstützung für die ''[[Android (Betriebssystem)|Android]]''-Plattform;<ref name="heiseonline_1400888">{{Heise online |ID=1400888 |Titel=Android-Treiber sollen in Kernel 3.3 einfließen |Autor=Mirko Dölle |Datum=2011-12-23 |Abruf=2014-11-16}}</ref><br />Letzte Version war ''3.3.8'' am 1. Juni 2012
|-
| {{Version|o|3.4|sortKey=3,4}}
| {{DatumZelle|2012-05-20}}
| 38.566
| 15.383.860
|data-sort-value=64100| ≈&nbsp;64.100
| 63
| neunte ''[[Long Term Support|LTS]]''-Freigabe; neu ist u.&nbsp;a. die Unterstützung des [[Ruhezustand]]-Modus ''RC6'';<ref>{{Internetquelle |autor=Jörg Thoma |url=https://www.golem.de/news/sandy-bridge-stromsparoption-rc6-in-linux-kernel-funktionstuechtig-1202-89809.html |titel=Stromsparoption RC6 in Linux-Kernel funktionstüchtig |hrsg=golem.de |datum=2012-02-15 |abruf=2012-05-21}}</ref><ref name="heiseonline_1464001">{{Heise online |ID=1464001 |Titel=Kernel-Log&nbsp;– Was 3.3 bringt (4): Treiber |Autor=Thorsten Leemhuis |Datum=2012-03-08 |Abruf=2012-05-21}}</ref><ref name="heiseonline_1572878">{{Heise online |ID=1572878 |Titel=Die Neuerungen von Linux 3.4 |Autor=Thorsten Leemhuis |Datum=2012-05-21 |Abruf=2012-05-21}}</ref><br />Dieser [[Long Term Support|LTS]]-Zweig wurde zuletzt von Li Zefan betreut, die letzte Version war ''3.4.113'' am 26. Oktober 2016
|-
| {{Version|o|3.5|sortKey=3,5}}
| {{DatumZelle|2012-07-21}}
| 39.096
| 15.596.378
|data-sort-value=77200| ≈&nbsp;77.200
| 62
| die Unterstützung für die veralteten Netzwerk-Standards ''[[Token Ring]]'' und ''[[Econet]]'' wurde entfernt;<ref name="heiseonline_1624233">{{Heise online |ID=1624233 |Titel=Kernel-Log&nbsp;– Was 3.5 bringt (1): Netzwerk |Autor=Thorsten Leemhuis |Datum=2012-06-25 |Abruf=2012-06-27}}</ref><br />Letzte Version war ''3.5.7'' am 12. Oktober 2012
|-
| {{Version|o|3.6|sortKey=3,6}}
| {{DatumZelle|2012-09-30}}
| 39.733
| 15.868.036
|data-sort-value=78500| ≈&nbsp;78.500
| 71
| u.&nbsp;a. wurde die Energiespar- oder Schlaffunktion, für den [[Bereitschaftsbetrieb]] und [[Ruhezustand]] des gesamten Systems, weiterentwickelt;<ref name="heiseonline_1656817">{{Heise online |ID=1656817 |Titel=Kernel-Log: Entwicklung von Linux 3.6 läuft |Autor=Thorsten Leemhuis |Datum=2012-08-02 |Abruf=2014-05-11}}</ref><br />Letzte Version war ''3.6.11'' am 17. Dezember 2012
|-
| {{Version|o|3.7|sortKey=3,7}}
| {{DatumZelle|2012-12-11}}
| 40.905
| 16.191.690
|data-sort-value=79800| ≈&nbsp;79.800
| 71
| u.&nbsp;a. [[Network Address Translation|NAT]] für [[IPv6]], Unterstützung für den [[Arm-Architektur|Arm]]-64-Bit-Befehlssatz und ''[[Ext4]]''-Größenänderungen für Laufwerke die größer sind als 16 Terabyte, größere Veränderungen an den Grafiktreibern für Nvidia-, Intel- und AMD-Grafik und verbesserte Hardware-Unterstützung für Helligkeitsregelung und Stromsparfunktionen von Soundkarten;<ref name="heiseonline_1760312">{{Heise online |ID=1760312 |Titel=Linux-Kernel 3.7 veröffentlicht |Autor=Thorsten Leemhuis |Datum=2012-12-11 |Abruf=2012-12-13}}</ref><br />Letzte Version war ''3.7.10'' am 27. Februar 2013
|-
| {{Version|o|3.8|sortKey=3,8}}
| {{DatumZelle|2013-02-18}}
| 41.520
| 16.416.874
| 84.623
| 70
| u.&nbsp;a. wurde die Unterstützung für das Dateisystem ''[[F2FS]]'' eingefügt<ref name="heiseonline_1788185">{{Heise online |ID=1788185 |Titel=Kernel-Log&nbsp;– Was 3.8 bringt (1): Dateisysteme und Storage |Autor=Thorsten Leemhuis |Datum=2013-01-21 |Abruf=2013-02-16}}</ref> und die Unterstützung für ''[[Intel 80386]]''-Prozessoren entfernt;<ref name="heiseonline_1800418">{{Heise online |ID=1800418 |Titel=Kernel-Log&nbsp;– Was 3.8 bringt (2): Infrastruktur |Autor=Thorsten Leemhuis |Datum=2013-02-08 |Abruf=2013-02-16}}</ref> soll als Basis für die nächste ''Android''-Version dienen;<ref name="Golem-2013-03-06">{{Internetquelle |autor=Jörg Thoma |url=https://www.golem.de/news/linux-kernel-torvalds-schliesst-merge-fenster-fuer-linux-3-9-1303-97966.html |titel=Linux Kernel: Torvalds schließt Merge-Fenster für Linux 3.9 |hrsg=golem.de |datum=2013-03-04 |abruf=2013-03-06}}</ref><br />Letzte Version war ''3.8.13'' am 11. Mai 2013
|-
| {{Version|o|3.9|sortKey=3,9}}
| {{DatumZelle|2013-04-29}}
| 42.423
| 16.686.879
|data-sort-value=82000| ≈&nbsp;82.000
| 69
| u.&nbsp;a. wurde die Unterstützung für 32-Bit-Prozessoren der Baureihe ''HTP'' (von ''Meta'')<ref>{{Webarchiv |url=http://www.imgtec.com/meta/meta.asp |text=Meta SoC Processors |wayback=20130315125508}} – Seite bei ''[[Imagination Technologies]]'', abgerufen am 7. März 2013 (englisch).</ref> sowie ''ARC&nbsp;700'' (von ''[[Synopsys]]'')<ref>[https://www.synopsys.com/designware-ip/processor-solutions/arc-processors/arc-700-family.html DesignWare ARC 700 Processor Core Family] – Seite bei ''[[Synopsys]]'', abgerufen am 7. März 2013 (englisch).</ref> hinzugefügt und die Treiber für das Dateisystem ''Btrfs'' um eine erste Unterstützung für ''[[Redundant Array of Independent Disks|Raid]] 5'' und ''6'' erweitert;<ref name="Golem-2013-03-06" /><ref>{{Internetquelle |autor=Hans-Joachim Baader |url=https://www.pro-linux.de/news/1/19520/linux-kernel-39-tritt-in-die-testphase-ein.html |titel=Linux-Kernel 3.9 tritt in die Testphase ein |hrsg=''[[Pro-Linux]]'' |datum=2013-03-04 |abruf=2013-03-07}}</ref><br />Letzte Version war ''3.9.11'' am 21. Juli 2013
|-
| {{Version|o|3.10|sortKey=3,10}}
| {{DatumZelle|2013-06-30}}
| 43.016
| 16.955.489
|data-sort-value=69900| ≈&nbsp;69.900
| 63
| unter anderem bessere Unterstützung für den [[Unified Video Decoder]] (UVD) von ''AMD-Radeon''-GPUs und bessere Unterstützung von [[Nvidia Tegra]]; Zudem wurden die Echtzeitfähigkeiten verbessert sowie die Nutzung von [[Solid-State-Drive|SSDs]] als [[Cache]] für [[Festplattenlaufwerk|Festplatten]] ermöglicht.<ref name="heiseonline_1897241">{{Heise online |ID=1897241 |Titel=Kernel-Log – Was 3.10 bringt (4): Treiber |Autor=Thorsten Leemhuis |Datum=2013-06-28 |Abruf=2013-07-10}}</ref> Neu ist auch der Treiber für die Hochgeschwindigkeitsübertragungstechnologie ''[[InfiniBand]]'';<ref name="heiseonline_1844759">{{Heise online |ID=1844759 |Titel=Die Neuerungen von Linux 3.9 |Autor=Thorsten Leemhuis |Datum=2013-04-29 |Artikelseite=3 |Seitentitel=Fazit, Trends, Statistik |SeitenURL=https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-3-9-1844759.html?seite=3 |Abruf=2013-07-10}}</ref><br />Dieser [[Long Term Support|LTS]]-Zweig wurde zuletzt von Willy Tarreau betreut, die letzte Version war ''3.10.108'' am 4. November 2017
|-
| {{Version|o|3.11|sortKey=3,11}}
| {{DatumZelle|2013-09-02}}
| 44.002
| 17.403.279
|data-sort-value=71600| ≈&nbsp;71.600
| 63
| neben Optimierungen an den Grafik-Treibern, ist die Aufnahme von verschiedenen neuen [[Wireless Local Area Network|WLAN]]- und [[Local Area Network|LAN]]-Treibern sowie die Verbesserung der [[Kernel-based Virtual Machine|KVM]]- und [[Xen]]-Unterstützung auf [[Arm-Architektur#Armv8-A (2011)|ARM64]] vorgesehen;<ref name="heise3-11">{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-3-10-1898006.html?artikelseite=3 |titel=Die Neuerungen von Linux 3.10 |hrsg=Heise |datum=2013-07-01 |abruf=2013-07-10}}</ref> wird der Arbeitsspeicher knapp kann dieser mit einem ''Zswap'' (siehe auch ''[[ZIP-Dateiformat|Zip]]'' und ''[[Swapping|Swap]]'') komprimiert werden;<ref>{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/ct/artikel/Kernel-Log-Was-3-11-bringt-2-Infrastruktur-1937862.html |titel=Kernel-Log – Was 3.11 bringt (2): Infrastruktur |hrsg=Heise |datum=2013-08-19 |abruf=2013-08-20}}</ref><br />Letzte Version war ''3.11.10'' am 29. November 2013 – Wegen ihrer Versionsnummer auch ''Linux for Workgroups'' genannt, angelehnt an ''Microsoft’s Windows 3.11 for Workgroups''.<ref name="heise-ForWorkgroups3-11">{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/newsticker/meldung/Linux-for-Workgroups-Funktionsumfang-von-Linux-3-11-steht-1917174.html |titel="Linux for Workgroups": Funktionsumfang von Linux 3.11 steht |hrsg=Heise |datum=2013-07-15 |abruf=2018-03-13}}</ref>
|-
| {{Version|o|3.12|sortKey=3,12}}
| {{DatumZelle|2013-11-03}}
| 44.586
| 17.726.872
|data-sort-value=73000| ≈&nbsp;73.000
| 62
| neben Optimierungen an den ''[[Nvidia Optimus|Optimus]]''-Treibern, ist die Unterstützung eines ''SYN-[[Proxy (Rechnernetz)|Proxy]]'' hinzugekommen,<ref name="heise3-12">{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/newsticker/meldung/Linux-3-12-bringt-Optimus-und-SYN-Proxy-Unterstuetzung-1958491.html |titel=Linux 3.12 bringt Optimus- und SYN-Proxy-Unterstützung |hrsg=Heise |datum=2013-09-17 |abruf=2013-09-18}}</ref> der ''[[SYN-Flooding]]''-Angriffe verhindern soll;<ref>{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-3-12-1981573.html?artikelseite=2 |titel=Die Neuerungen von Linux 3.12: Netzwerk |hrsg=Heise |datum=2013-11-04 |abruf=2013-11-06}}</ref> ''[[Multithreading]]'' bei mit [[Mdadm]] angelegten ''Raid-5-Arrays'' und ''Btrfs'' beherrscht [[Deduplikation]];<ref>{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/ct/artikel/Kernel-Log-Was-3-12-bringt-1-Dateisysteme-Storage-1973671.html |titel=Kernel-Log – Was 3.12 bringt (1): Dateisysteme & Storage |hrsg=Heise |datum=2013-10-08 |abruf=2013-11-06}}</ref><br />Dieser [[Long Term Support|LTS]]-Zweig wurde von Jiri Slaby betreut, die letzte Version war ''3.12.74'' am 9. Mai 2017
|-
| {{Version|o|3.13|sortKey=3,13}}
| {{DatumZelle|2014-01-20}}
| 44.970
| 17.930.916
|data-sort-value=73600| ≈&nbsp;73.600
| 77
| enthält die neue Firewall-Infrastruktur ''Nftables'' (welche die mit dem 2.4er eingeführten ''Iptables'' ablösen soll), bessere 3D-Leistung und Aktivierung des ''{{lang|en|Dynamic Power Management}}'' (DPM) bei [[AMD Radeon|AMD-Radeon]]-Grafikkarten.<ref>{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-3-13-2087964.html |titel=Die Neuerungen von Linux 3.13 |hrsg=Heise online |datum=2014-01-20 |abruf=2014-01-20}}</ref><ref>{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/ct/artikel/Kernel-Log-Was-3-13-bringt-5-Grafiktreiber-2074557.html |titel=Kernel-Log – Was 3.13 bringt (5): Grafiktreiber |hrsg=Heise online |datum=2014-01-10 |abruf=2014-01-20}}</ref> Moderneres Multiqueue-Storage-Interface;<ref>{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/ct/artikel/Kernel-Log-Was-3-13-bringt-1-Dateisysteme-und-Storage-2062929.html |titel=Kernel-Log – Was 3.13 bringt (1): Dateisysteme und Storage |hrsg=Heise online |datum=2013-12-10 |abruf=2014-01-20}}</ref><br />Letzte Version war ''3.13.11'' am 22. April 2014
|-
| {{Version|o|3.14|sortKey=3,14}}
| {{DatumZelle|2014-03-31}}
| 45.935
| 18.271.989
|data-sort-value=74900| ≈&nbsp;74.900
| 70
| ein ''[[Prozess-Scheduler|Scheduler]]'', der für [[Echtzeitsystem]]e geeignet ist,<ref name="Golem_2014-03-31">{{Internetquelle |autor=Jörg Thoma |url=https://www.golem.de/news/prozessfristen-linux-3-14-erhaelt-deadline-scheduler-1403-105475.html |titel=Prozessfristen: Linux 3.14 erhält Deadline Scheduler |hrsg=golem.de |datum=2014-03-31 |abruf=2014-03-31}}</ref> hinzugefügt und u.&nbsp;a. ist nun ''Xen'' 4.4 enthalten;<ref>{{Internetquelle |autor=Peter Siering |url=https://www.heise.de/newsticker/meldung/Xen-4-4-virtuelle-Maschinen-fuer-ARM-2139439.html |titel=Xen 4.4: virtuelle Maschinen für ARM |hrsg=heise.de |datum=2014-03-10 |abruf=2014-03-11}}</ref> Unterstützung von neuen Grafikkernen und korrekte Funktion des [[Unified Video Decoder]] (UVD) für AMD Grafikchips ab HD 7000;<ref name="Golem_2014-03-31" /><br />Dieser [[Long Term Support|LTS]]-Zweig wurde von Greg Kroah-Hartman betreut, die letzte Version war ''3.14.79'' am 11. September 2016
|-
| {{Version|o|3.15|sortKey=3,15}}
| {{DatumZelle|2014-06-08}}
| 46.780
| 18.632.574
|data-sort-value=76000| ≈&nbsp;76.000
| 53
| das Aufwachen aus dem [[Bereitschaftsbetrieb|Suspend-to-RAM]]-Modus wurde beschleunigt und ''Open File Description [[Lock]]s'' eingeführt. Z.&nbsp;B. [[Videoschnittsoftware|Videosoftware]] soll nun einfacher Teile einer Datei auslesen können und [[Atomarer Befehl|atomares]] Austauschen von Dateien wird möglich. Die Unterstützung von [[Filesystem in Userspace|FUSE]], [[XFS (Dateisystem)|XFS]] und [[Flash-Speicher]]n mit einem Dateisystem darauf wurde ausgebaut;<ref>{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/ct/artikel/Kernel-Log-Was-3-15-bringt-1-Dateisysteme-und-Storage-2183256.html |titel=Kernel-Log – Was 3.15 bringt (1): Dateisysteme und Storage |hrsg=heise.de |datum=2014-05-06 |abruf=2014-05-06}}</ref><br />Letzte Version war ''3.15.10'' am 14. August 2014
|-
| {{Version|o|3.16|sortKey=3,16}}
| {{DatumZelle|2014-08-03}}
| 47.425
| 18.879.129
|data-sort-value=76900| ≈&nbsp;76.900
| 56
| eingeflossen sind u.&nbsp;a. Robustheitsmaßnahmen beim Dateisystem ''Btrfs'', die Grafiktreiber ''Radeon'' und ''Nouveau'' wurden optimiert;<ref>{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-3-16-2278810.html |titel=Die Neuerungen von Linux 3.16 |hrsg=heise.de |datum=2014-08-04 |abruf=2014-08-17}}</ref><br />Dieser [[Long Term Support|LTS]]-Zweig wurde von Ben Hutchings betreut, die letzte Version war ''3.16.85'' am 11. Juni 2020
|-
| {{Version|o|3.17|sortKey=3,17}}
| {{DatumZelle|2014-10-05}}
| 47.490
| 18.864.388
|data-sort-value=76600| ≈&nbsp;76.600
| 63
| Die Funktion getrandom() und Vorgaben zur Mindest-Entropie sorgen für sicherere Zufallszahlen. Neu sind Grundlagen für [[Kdbus]], ''Fences'' in ''Dma-Buf'', MST (''Multi Stream Transport'', Teil von [[DisplayPort]] 1.2) für [[4K2K|4K-Monitore]], sowie die Unterstützung für den ''[[Xbox One|Xbox-One]]-[[Gamecontroller|Controller]]'' und ''ForcePad-Touchpads''. Optimierungen für [[Thunderbolt (Schnittstelle)|Thunderbolt]] bei [[Apple]]-Geräten;<ref>{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-3-17-2404284.html |titel=Die Neuerungen von Linux 3.17 |hrsg=heise.de |datum=2014-10-06 |abruf=2014-11-10}}</ref><br />Letzte Version war ''3.17.8'' am 8. Januar 2015
|-
| {{Version|o|3.18|sortKey=3,18}}
| {{DatumZelle|2014-12-07}}
| 47.971
| 18.994.096
|data-sort-value=77300| ≈&nbsp;77.300
| 64
| Aufnahme des [[OverlayFS]]; Verbesserungen bei ''Btrfs'' und ''F2FS''; Tunnelung beliebiger Protokolle ist über [[User Datagram Protocol|UDP]] ermöglicht; Audio-Ausgabe mit dem Nouveau-Treiber über DisplayPort; [[Just-in-time-Kompilierung]] des ''Extended Berkeley Packet Filter'' (eBPF) für ARM64; der [[Berkeley Packet Filter|BPF]] ist nun durch den [[Syscall]] <code>bpf()</code> allgemein verfügbar; Modulparameter können als unsicher (englisch ''{{lang|en|unsafe}}'') markiert werden;<ref>{{Internetquelle |autor=Hans-Joachim Baader |url=https://www.pro-linux.de/news/1/21815/linux-kernel-318-freigegeben.html |titel=Linux-Kernel 3.18 freigegeben |hrsg=''Pro-Linux'' |datum=2014-12-08 |abruf=2014-12-08}}</ref><br />Dieser [[Long Term Support|LTS]]-Zweig wurde von Sasha Levin betreut, die letzte Version war ''3.18.140'' am 16. Mai 2019
|-
| {{Version|o|3.19|sortKey=3,19}}
| {{DatumZelle|2015-02-09}}
| 48.424
| 19.130.604
|data-sort-value=77900| ≈&nbsp;77.900
| 63
| u.&nbsp;a. Unterstützung für [[AMD]]s ''[[Heterogeneous System Architecture]]'' (HSA),<ref>{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/newsticker/meldung/Linux-3-19-freigegeben-HSA-Support-fuer-AMD-Chips-2543019.html |titel=Linux 3.19 freigegeben: HSA-Support für AMD-Chips |hrsg=Heise online |datum=2015-02-09 |abruf=2015-02-09}}</ref> zudem wurde das [[Interprozesskommunikation]]s<nowiki />[[framework]] ''[[Binder-Framework|Binder]]'' aufgenommen,<ref>{{Internetquelle |autor=Jörg Thoma |url=https://www.golem.de/1502/112227.html |titel=Linux 3.19: Mehr für die Grafik und für das Netzwerk |hrsg=golem.de |datum=2015-02-09 |abruf=2015-02-09}}</ref> welches ursprünglich für Android entwickelt wurde und auf ''[[OpenBinder]]'' aufbaut;<ref>[http://www.linux-magazin.de/Ausgaben/2015/02/Android-IPC Zeitgemäße Linux-IPC] – ''[[Linux-Magazin]]'', Ausgabe 02/2015</ref><br />Letzte Version war ''3.19.8'' am 11. Mai 2015
|-
| {{Version|o|4.0|sortKey=4,0}}
| {{DatumZelle|2015-04-12}}
| 48.945
| 19.312.370
|data-sort-value=78500| ≈&nbsp;78.500
| 63
| u.&nbsp;a. Unterstützung für ''Updates'' im laufenden Betrieb (''[[Kernel Live Patching]]'');<ref>{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/newsticker/meldung/Linux-Kernel-macht-Versionssprung-auf-4-0-2557302.html |titel=Linux-Kernel macht Versionssprung auf 4.0 |hrsg=heise.de |datum=2015-02-23 |abruf=2015-02-23}}</ref><ref>{{Internetquelle |autor=Jörg Thoma |url=https://www.golem.de/1502/112528.html |titel=Version 4.0 patcht sich selbst im laufenden Betrieb |hrsg=golem.de |datum=2015-02-23 |abruf=2015-02-23}}</ref><br />Letzte Version war ''4.0.9'' am 21. Juli 2015
|-
| {{Version|o|4.1|sortKey=4,1}}
| {{DatumZelle|2015-06-22}}
| 49.457
| 19.512.485
|data-sort-value=79300| ≈&nbsp;79.300
| 70
| u.&nbsp;a. Verschlüsselung für Ext4, Treiber für [[NV-DIMM]]s und Schaffung der Grundlagen zur 3D-Beschleunigung in [[Virtuelle Maschine|virtuellen Maschinen]];<ref>{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/newsticker/meldung/Linux-4-1-freigegeben-Ext4-verschluesselt-jetzt-selbst-2717732.html |titel=Linux 4.1 freigegeben: Ext4 verschlüsselt jetzt selbst |hrsg=heise.de |datum=2015-06-22 |abruf=2015-06-22}}</ref><br />Dieser [[Long Term Support|LTS]]-Zweig wurde von Sasha Levin betreut, die letzte Version war ''4.1.52'' am 28. Mai 2018
|-
| {{Version|o|4.2|sortKey=4,2}}
| {{DatumZelle|2015-08-30}}
| 50.795
| 20.311.717
|data-sort-value=82000| ≈&nbsp;82.000
| 70
| u.&nbsp;a. Update von [[Unified Extensible Firmware Interface|UEFI]] nun aus Linux möglich, Unterstützung der AMD-Grafikkarten der Volcanic-Islands-Generation;<ref>{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/newsticker/meldung/Linux-4-2-rc1-Neuer-Grafiktreiber-von-AMD-integriert-2735351.html |titel=Linux 4.2-rc1: Neuer Grafiktreiber von AMD integriert |hrsg=heise.de |datum=2015-07-06 |abruf=2015-07-19}}</ref><br />Letzte Version war ''4.2.8'' am 15. Dezember 2015
|-
| {{Version|o|4.3|sortKey=4,3}}
| {{DatumZelle|2015-11-02}}
| 51.570
| 20.621.444
|data-sort-value=83000| ≈&nbsp;83.000
| 63
| Unterstützung für [[Intel-Skylake-Mikroarchitektur|Skylake]] und Fiji-GPUs;<ref>{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/newsticker/meldung/Linux-Kernel-4-3-wird-neue-AMD-und-Intel-Grafikprozessoren-unterstuetzen-2806331.html |titel=Linux-Kernel 4.3 wird neue AMD- und Intel-Grafikprozessoren unterstützen |hrsg=heise.de |datum=2015-09-05 |abruf=2015-09-15}}</ref> IPv6 wird Voreinstellung;<ref>{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/newsticker/meldung/Linux-4-3-wird-IPv6-Unterstuetzung-standardmaessig-nutzen-2811927.html |titel=Linux 4.3 wird IPv6-Unterstützung standardmäßig nutzen |hrsg=heise.de |datum=2015-09-14 |abruf=2015-09-15}}</ref><br />Letzte Version war ''4.3.6'' am 19. Februar 2016
|-
| {{Version|o|4.4|sortKey=4,4}}
| {{DatumZelle|2016-01-10}}
| 52.221
| 20.862.115
|data-sort-value=83300| ≈&nbsp;83.300
| 70
| Kernel mit Langzeitunterstützung;<ref>{{Internetquelle |autor=Greg Kroah-Hartman |url=https://plus.google.com/+gregkroahhartman/posts/WMEWz4noxFm |titel=The Linux 4.4 kernel will be the next LTS (long term support) release... |hrsg=Greg Kroah-Hartman |datum=2015-10-28 |sprache=en |abruf=2015-11-02}}</ref> Grafiktreiber für den ''[[Raspberry Pi]]'' und weitere 3D-Grafikbeschleunigungen in ''[[Kernel-based Virtual Machine|KVM]]'' für virtuelle Maschinen, Verbesserungen bei ''[[RAID]]'' und [[Solid-State-Drive|SSDs]], ''[[Berkeley Packet Filter|BPF]]''-Aufrufe sind nun auch im ''[[Userspace]]'' möglich;<ref>{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/newsticker/meldung/Linux-4-4-freigegeben-Neue-Grafiktreiber-und-Optimierungen-fuer-SSDs-3055350.html |titel=Linux 4.4 freigegeben: Neue Grafiktreiber und Optimierungen für SSDs |hrsg=heise.de |datum=2016-01-11 |abruf=2016-08-13}}</ref><ref>{{Internetquelle |autor=Sebastian Grüner |url=https://www.golem.de/news/kernel-linux-4-4-erscheint-mit-grafiktreiber-fuer-raspberry-pi-1601-118449.html |titel=Kernel: Linux 4.4 erscheint mit Grafiktreiber für Raspberry Pi |hrsg=golem.de |datum=2016-01-11 |abruf=2016-08-13}}</ref><br />Letzte Version war ''4.4.302'' am 3. Februar 2022
|-
| {{Version|o|4.5|sortKey=4,5}}
| {{DatumZelle|2016-03-14}}
| 52.916
| 21.154.545
|data-sort-value=84300| ≈&nbsp;84.300
| 63
| weitere Besserungen in den 3D-Treibern, unter anderem durch die Unterstützung für ''[[AMD PowerPlay|PowerPlay]]'', und reibungslose Wechsel der Netzwerkverbindungen;<ref>{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/newsticker/meldung/Linux-4-5-Verbesserte-3D-Treiber-und-reibungslose-Verbindungswechsel-3082334.html |titel=Linux 4.5: Verbesserte 3D-Treiber und reibungslose Verbindungswechsel |hrsg=heise.de |datum=2016-01-25 |abruf=2016-08-13}}</ref><ref>{{Internetquelle |autor=Ferdinand Thommes |url=https://www.golem.de/news/kernel-linux-4-5-rc1-wertet-amdgpu-mit-powerplay-auf-1601-118712.html |titel=Kernel: Linux 4.5-rc1 wertet AMDGPU mit Powerplay auf |hrsg=golem.de |datum=2016-01-11 |abruf=2016-08-13}}</ref> Verbesserungen beim Zugriff auf ''[[Network File System|NFS]]''-Server;<ref>{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-4-5-3132326.html?seite=2 |titel=Die Neuerungen von Linux 4.5 |hrsg=heise.de |datum=2016-03-14 |abruf=2016-05-15}}</ref><br />Letzte Version war ''4.5.7'' am 8. Juni 2016
|-
| {{Version|o|4.6|sortKey=4,6}}
| {{DatumZelle|2016-05-15}}
| 53.660
| 21.422.694
|data-sort-value=85300| ≈&nbsp;85.300
| 63
| u.&nbsp;a. verbesserte Energieverwaltung durch die Möglichkeit der Taktraten-Einstellung bei ''[[Tegra X1|Tegra-X1]]''-GPUs und durch die Freischaltung der ''{{lang|en|Frame Buffer Compression}}'' (FBC) für Prozessoren der ''[[Intel-Haswell-Mikroarchitektur|Haswell]]''-Architektur und ''[[Intel-Broadwell-Mikroarchitektur|Broadwell]]'', des Weiteren wurde das Dateisystem ''[[OrangeFS]]'' freigeschaltet sowie zusätzliche Werkzeuge zur besseren Fehlererkennung (englisch ''{{lang|en|bug hunting}}'');<ref>{{Internetquelle |autor=Ferdinand Thommes |url=https://www.golem.de/news/kernel-linux-4-6-rc1-mit-neuem-dateisystem-orangefs-1603-119995.html |titel=Kernel: Linux 4.6-rc1 mit neuem Dateisystem OrangeFS |hrsg=golem.de |datum=2016-03-28 |abruf=2016-08-13}}</ref><ref>{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/newsticker/meldung/Linux-4-6-wird-3D-Beschleunigung-aktueller-GeForce-Chips-unterstuetzen-3152433.html |titel=Linux 4.6 wird 3D-Beschleunigung aktueller GeForce-Chips unterstützen |hrsg=heise.de |datum=2016-03-29 |abruf=2016-05-15}}</ref><br />Letzte Version war ''4.6.7'' am 16. August 2016
|-
| {{Version|o|4.7|sortKey=4,7}}
| {{DatumZelle|2016-07-24}}
| 54.400
| 21.712.846
|data-sort-value=86200| ≈&nbsp;86.200
| 70
| u.&nbsp;a. erste Unterstützung für neue ''[[AMD Radeon|Radeon]]''-Grafikkarten (unter dem Decknamen ''Polaris''), vier weitere ''ARM''-Treiber und Unterstützung für Spiele-Steuergeräte;<ref>{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/newsticker/meldung/Linux-4-7-soll-AMDs-neue-Radeon-Grafikkarten-unterstuetzen-3221749.html |titel=Linux 4.7 soll AMDs neue Radeon-Grafikkarten unterstützen |hrsg=heise.de |datum=2016-05-30 |abruf=2016-07-02}}</ref><ref>{{Internetquelle |autor=Ferdinand Thommes |url=https://www.golem.de/news/kernel-linux-4-7-rc1-unterstuetzt-amds-polaris-1605-121157.html |titel=LLinux 4.7-rc1 unterstützt AMDs Polaris |hrsg=golem.de |datum=2016-05-30 |abruf=2016-12-12}}</ref> zudem bessere ''[[Shingled Magnetic Recording|SMR]]''-Unterstützung und Beschleunigungen beim [[Tunnel (Rechnernetz)|Tunneln]];<ref>{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/newsticker/meldung/Linux-4-7-vermeidet-Netzwerk-Latenzen-und-unterstuetzt-SMR-Festplatten-besser-3238450.html |titel=Linux 4.7 vermeidet Netzwerk-Latenzen und unterstützt SMR-Festplatten besser |hrsg=heise.de |datum=2016-06-15 |abruf=2016-06-15}}</ref> im Vergleich zum Vorgänger (''4.6'') werden nun rund 500 weitere Hardware-Komponenten unterstützt;<ref>{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/newsticker/meldung/Linux-4-7-freigegeben-RX-480-Treiber-und-verbesserte-Sicherheit-3266704.html |titel=Linux 4.7 freigegeben: RX-480-Treiber und verbesserte Sicherheit |hrsg=heise.de |datum=2016-07-25 |abruf=2016-08-18}}</ref><br />Letzte Version war ''4.7.10'' am 22. Oktober 2016
|-
| {{Version|o|4.8|sortKey=4,8}}
| {{DatumZelle|2016-10-02}}
| 55.503<!-- siehe auch: heise.de/ct/artikel/Die-Neuerungen-von-Linux-4-8-3283402.html, am 3.10.2016 -->
| 22.071.048<!-- siehe auch: heise.de/ct/artikel/Die-Neuerungen-von-Linux-4-8-3283402.html, am 3.10.2016 -->
|data-sort-value=87700| ≈&nbsp;87.700
| 70<!-- siehe auch: heise.de/ct/artikel/Die-Neuerungen-von-Linux-4-8-3283402.html, am 3.10.2016 -->
| neben der Unterstützung neuer Treiber für Haupt- und Grafik-[[Prozessor]]en von ''AMD'', ''ARM'' (''[[Mali (GPU)|Mali]]''), ''Intel'' und ''Nvidia'' wurde u.&nbsp;a. das [[Übertakten]] (oder ''Overclocking'') für AMD-Grafiktreiber und eine neue GPU-Virtualisierungstechnik für Intel-Grafiktreiber eingeführt, des Weiteren wurde das [[XFS (Dateisystem)|XFS]] überarbeitet, so dass es auch Datenintegritäten prüfen sowie [[Datendeduplizierung]] und das ''[[Copy-On-Write]]''-Verfahren beherrscht;<ref>{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/newsticker/meldung/Linux-4-8-bringt-Treiber-fuer-neue-ARM-Intel-und-Nvidia-Grafikprozessoren-3289567.html |titel=Linux 4.8 bringt Treiber für neue ARM-, Intel- und Nvidia-Grafikprozessoren |hrsg=heise.de |datum=2016-08-08 |abruf=2016-08-16}}</ref><ref>{{Internetquelle |autor=Jörg Thoma |url=https://www.golem.de/news/betriebssysteme-linux-4-8-uebertaktet-amd-grafikkarten-1608-122574.html |titel=Betriebssysteme: Linux 4.8 übertaktet AMD-Grafikkarten |hrsg=golem.de |datum=2016-08-08 |abruf=2016-08-16}}</ref><br />Letzte Version war ''4.8.17'' am 9. Januar 2017
|-
| {{Version|o|4.9|sortKey=4,9}}
| {{DatumZelle|2016-12-11}}
| 56.223<!-- siehe auch: heise.de/ct/artikel/Die-Neuerungen-von-Linux-4-9-3351436.html, am 12.12.2016 -->
| 22.348.356<!-- siehe auch: heise.de/ct/artikel/Die-Neuerungen-von-Linux-4-9-3351436.html, am 12.12.2016 -->
|data-sort-value=88900| ≈&nbsp;88.900
| 70
| neben Verbesserungen in der Sicherheit – durch besseren Schutz vor [[Stapelüberlauf|Stapelüberläufen]] – erhalten u.&nbsp;a. die Treiber für das ''XFS'' eine ''{{lang|en|Shared Data Extents}}'' genannte Erweiterung, welche auf die (bereits im 4.8er-Kern eingeführte) ''Reverse-Mapping-Infrastruktur'' aufsetzt und es künftig ermöglichen soll, dass sich mehrere Dateien einen Daten- oder Wert(e)bereich teilen können und dieser auch mehrere Besitzer haben kann; zudem wurden erste Unterstützungen für den sogenannten ''[[Greybus]]'' eingearbeitet, welcher ursprünglich für das ehemals von Google entwickelte modulare Smartphone ''[[Project Ara|Ara]]'' gedacht war und u.&nbsp;a. von [[Motorola]] in einem ihrer Geräte genutzt wird;<ref>{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/newsticker/meldung/Linux-4-9-wird-Sicherheit-verbessern-und-neue-Treiber-bringen-3351310.html |titel=Linux 4.9 wird Sicherheit verbessern und neue Treiber bringen |hrsg=heise.de |datum=2016-10-17 |abruf=2016-10-18}}</ref><ref>{{Internetquelle |autor=Ferdinand Thommes |url=https://www.golem.de/news/kernel-linux-4-9rc1-erscheint-mit-protokoll-fuer-project-ara-module-1610-123853.html |titel=Kernel: Linux 4.9rc1 erscheint mit Protokoll für Project-Ara-Module |hrsg=golem.de |datum=2016-10-17 |abruf=2016-10-18}}</ref><br />Letzte Version war ''4.9.337'' am 7. Januar 2023
|-
| {{Version|o|4.10|sortKey=4,10}}
| {{DatumZelle|2017-02-19}}
| 57.172
| 22.839.541
|data-sort-value=89900| ≈&nbsp;89.900
| 71
| Verbesserungen beim Schreiben auf Datenträger und Einführung einer schnelleren Fehlererkennung in RAID-Systemen, zudem wurden u.&nbsp;a. [[Extensible Firmware Interface|EFI]]-Zugriffe verbessert und der [[Leuchtdiode|LED]]-Treiber ''uleds'' eingearbeitet<ref>{{Internetquelle |autor=Hans-Joachim Baader |url=https://www.pro-linux.de/news/1/24318/erste-vorschau-auf-linux-kernel-410.html |titel=Erste Vorschau auf Linux-Kernel 4.10 |hrsg=pro-linux.de |datum=2016-12-26 |abruf=2017-11-05}}</ref> sowie ein Verfahren zur Grafikbeschleunigung virtueller Maschinen eingeführt;<ref>{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/newsticker/meldung/Linux-4-10-Neue-Wege-zur-Grafikbeschleunigung-in-virtuellen-Maschinen-3597644.html |titel=Linux 4.10 Neue Wege zur Grafikbeschleunigung in virtuellen Maschinen |hrsg=heise.de |datum=2017-01-17 |abruf=2017-11-05}}</ref> bei Intel-Prozessoren kann der Cache zwischen Prozessen aufgeteilt werden, die Funktionen für die ARM64-Architektur wurden ausgebaut, Überarbeitungen beim Routing, das Dateisystem UBIFS wurde um eine optionale Verschlüsselung ergänzt, während logfs entfernt wurde;<ref>{{Internetquelle |autor=Hans-Joachim Baader |url=https://www.pro-linux.de/news/1/24471/linux-kernel-410-freigegeben.html |titel=Linux-Kernel 4.10 freigegeben |werk=pro-linux.de |datum=2017-02-19 |abruf=2017-02-19}}</ref><br />Letzte Version war ''4.10.17'' am 20. Mai 2017
|-
| {{Version|o|4.11|sortKey=4,11}}
| {{DatumZelle|2017-05-01}}
| 57.964
| 23.137.284
|data-sort-value=91000| ≈&nbsp;91.000
| 71
| Verringerung des Stromverbrauches von [[NVM Express|NVMe-SSDs]] durch die Stromspartechnik APST; Unterstützung für selbstverschlüsselnde SSDs; Verbesserungen bei der Abfrage von Metadaten für Verzeichnisse und Dateien; Überarbeitung der in 4.10 eingeführten Funktion [[Intel Turbo Boost|Intel Turbo Boost Max 3.0]]; Verbesserungen bei der Grafikbeschleunigung virtueller Maschinen für AMD-Grafikeinheiten;<ref>[https://www.heise.de/newsticker/meldung/Linux-Kernel-4-11-Laengere-Akkulaufzeit-durch-NVMe-Stromspartechnik-3643585.html Linux-Kernel 4.11: Längere Akkulaufzeit durch NVMe-Stromspartechnik] – ''Heise'', am 6. März 2017</ref> Anpassungen für [[ext4]], um die Nutzung als Wegwerfdateisystem zu verbessern;<ref>{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-4-11-3641334.html |titel=Die Neuerungen von Linux 4.11 |hrsg=heise.de |datum=2017-04-16 |abruf=2017-11-05}}</ref><br />Letzte Version war ''4.11.12'' am 21. Juli 2017
|-
| {{Version|o|4.12|sortKey=4,12}}
| {{DatumZelle|2017-07-02}}
| 59.808
| 24.173.535
|data-sort-value=99000| ≈&nbsp;99.000
| 62
| Einführung des Scheduler „Budget Fair Queueing“ (BFQ) für bessere Performance bei Datenträgerzugriffen, Unterstützung von AMDs Grafikprozessor [[AMD-Radeon-Vega-Serie|Radeon Vega]];<ref>{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-4-12-3712705.html |titel=Die Neuerungen von Linux 4.12 |hrsg=heise.de |datum=2017-07-03 |abruf=2017-07-23}}</ref><br />Letzte Version war ''4.12.14'' am 20. September 2017
|-
| {{Version|o|4.13|sortKey=4,13}}
| {{DatumZelle|2017-09-03}}
| 60.543
| 24.767.008
|data-sort-value=100000| ≈&nbsp;100.000
| 63
| Performancegewinn im Protokoll HTTPS, Verzeichnisse im Ext4-Dateisystemen können nun bis zu 2 Milliarden Einträge enthalten;<ref>{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-4-13-3771362.html |titel=Die Neuerungen von Linux 4.13 |hrsg=heise.de |datum=2017-09-04 |abruf=2017-09-24}}</ref><br />Letzte Version war ''4.13.16'' am 24. November 2017
|-
| {{Version|o|4.14|sortKey=4,14}}
| {{DatumZelle|2017-11-12}}
| 61.258
| 25.041.165
|data-sort-value=97000| ≈&nbsp;97.000
| 70
| LTS-Version;<ref>{{Internetquelle |autor=Greg Kroah-Hartman |url=https://plus.google.com/+gregkroahhartman/posts/DmKQJZMVTXG |titel=As no one seemed to make 4.9 blow up too badly, let’s try this again! |hrsg=plus.google.com |datum=2017-06-17 |sprache=en |abruf=2017-06-17}}</ref> Unterstützung bis zu 4096 Terabyte Arbeitsspeicher;<ref>{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-4-14-3831941.html |titel=Die Neuerungen von Linux 4.14 |hrsg=heise.de |datum=2017-09-17 |abruf=2018-03-18}}</ref><br />Letzte Version war ''4.14.336'' am 10. Januar 2024
|-
| {{Version|o|4.15|sortKey=4,15}}
| {{DatumZelle|2018-01-28}}
| 62.271
| 25.364.680
|data-sort-value=100000| ≈&nbsp;100.000
| 78
| Einbau diverser Schutzmechanismen vor [[Meltdown (Sicherheitslücke)|Meltdown]] und [[Spectre (Sicherheitslücke)|Spectre]], der Treiber Amdgpu unterstützt nun AMDs Vega-Grafikkarten besser;<ref>{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-4-15-3900646.html |titel=Die Neuerungen von Linux 4.15 |hrsg=heise.de |datum=2018-01-28 |abruf=2018-03-18}}</ref><br />Letzte Version war ''4.15.18'' am 19. April 2018
|-
| {{Version|o|4.16|sortKey=4,16}}
| {{DatumZelle|2018-04-01}}
| 62.883
| 25.558.670
| 100.606
| 63
| Letzte Version war ''4.16.18'' am 26. Juni 2018
|-
| {{Version|o|4.17|sortKey=4,17}}
| {{DatumZelle|2018-06-03}}
| 61.332
| 25.379.428
| 99.772
| 63
| [[High-bandwidth Digital Content Protection|HDCP]]-Unterstützung bei [[Intel]]-CPUs mit integriertem Grafikprozessor, erste Gegenmaßnahmen gegen [[Spectre (Sicherheitslücke)#Neue CPU-Designlücken|Spectre v4 (Speculative Store Bypass)]], Entfernung Architektursupport [[Blackfin]], [[ETRAX CRIS|AXIS CRIS]] und 6 weiterer;<ref>{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-4-17-4061166.html |titel=Die Neuerungen von Linux 4.17 |hrsg=heise.de |datum=2018-06-04 |abruf=2018-06-04}}</ref><br />Letzte Version war ''4.17.19'' am 24. August 2018
|-
| {{Version|o|4.18|sortKey=4,18}}
| {{DatumZelle|2018-08-12}}
| 60.973
| 25.280.736
| 101.782
| 70
| Vorarbeiten für leistungsgesteigerte Firewall ''Bpfilter''; Unterstützung für [[Grafikprozessor|GPU]] von [[Intel-Kaby-Lake-Mikroarchitektur#Kaby Lake-G|Kaby Lake-G]] und der angekündigten [[AMD-Radeon-Vega-Serie|Vega20]]; Erster Support für Qualcomms [[Snapdragon (Prozessor)|Snapdragon-845]]-Prozessor;<ref>{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/ct/artikel/Linux-4-18-freigegeben-Raspi-3-Support-und-Vorboten-neuer-Firewall-Technik-4078605.html |titel=Linux 4.18 freigegeben |hrsg=[[Heise online|heise.de]] |datum=2018-08-13 |abruf=2018-08-13}}</ref><br />Letzte Version war ''4.18.20'' am 21. November 2018
|-
| {{Version|o|4.19|sortKey=4,19}}
| {{DatumZelle|2018-10-22}}
| 61.700
| 25.588.319
| 103.117
| 71
| ''LTS-Version''; neuen [[Verhaltenskodex|„Code of Conduct“]] für Entwickler fest in die Kernel-Dokumentation aufgenommen,<ref>{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/ct/ausgabe/2018-22-Linux-4-19-Flackerfrei-starten-und-Strom-sparen-4184869.html |titel=Kernel-Log: Linux 4.19: Flackerfrei starten und Strom sparen |hrsg=[[Heise online|heise.de]] |datum=2018-10-12 |abruf=2018-10-24}}</ref> Unterstützung des neuen Wlan Standards 802.11ax, Performanceverbesserung der SATA-Treiber;<ref>{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/ct/artikel/Linux-4-19-Schoener-starten-und-bereit-fuer-das-WLAN-von-Morgen-4144037.html |titel=Linux 4.19: Schöner starten und bereit für das WLAN von Morgen |hrsg=[[Heise online|heise.de]] |datum=2018-10-22 |abruf=2018-10-24}}</ref><br />Letzte Version war ''4.19.325'' am 5. Dezember 2024
|-
| {{Version|o|4.20|sortKey=4,20}}
| {{DatumZelle|2018-12-23}}
| 62.446
| 25.955.384
| 104.258
| 62
| Amdgpu-Treiber unterstützt neue GPUs von AMD, Behebung der Sicherheitslücke für die zweite Variante von Spectre;<ref>{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/ct/artikel/Linux-4-20-freigegeben-Performance-Optimierungen-und-neue-Treiber-4223066.html |titel=Linux 4.20 freigegeben: Performance-Optimierungen und neue Treiber |hrsg=[[Heise online|heise.de]] |datum=2018-12-12 |abruf=2018-12-24}}</ref><br />Letzte Version war ''4.20.17'' am 19. März 2019
|-
| {{Version|o|5.0|sortKey=5,0}}
| {{DatumZelle|2019-03-03}}
| 63.135
| 26.211.072
| 102.776
| 70
| u.&nbsp;a. neu hinzugekommen ist der Support für Freesync von AMD;<ref>{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/ct/artikel/Linux-5-0-ist-da-Geschwindigkeit-zurueckerobern-und-moderner-speichern-4307315.html |titel=Linux 5.0 ist da: Geschwindigkeit zurückerobern und moderner speichern |hrsg=[[Heise online|heise.de]] |datum=2019-03-04 |abruf=2019-06-24}}</ref><br />Letzte Version war ''5.0.21'' am 4. Juni 2019
|-
| {{Version|o|5.1|sortKey=5,1}}
| {{DatumZelle|2019-05-06}}
| 63.873<!-- siehe auch: www.heise.de/ct/artikel/Linux-5-1-Performance-Verbesserungen-und-neue-Speichertechnik-4411986.html?seite=all -->
| 26.459.776
|data-sort-value=101000| ≈&nbsp;101.000<!-- siehe auch: cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.1.tar.xz -->
| 63
| Datenträger können nun über asynchronem I/O (AIO) angesprochen werden;<ref>{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/ct/artikel/Linux-5-1-Performance-Verbesserungen-und-neue-Speichertechnik-4411986.html |titel=Linux 5.1: Performance-Verbesserungen und neue Speichertechnik |hrsg=[[Heise online|heise.de]] |datum=2019-05-06 |abruf=2019-06-24}}</ref><br />Letzte Version war ''5.1.21'' am 28. Juli 2019
|-
| {{Version|o|5.2|sortKey=5,2}}
| {{DatumZelle|2019-07-07}}
| 64.587<!-- siehe auch: www.heise.de/ct/artikel/Linux-5-2-freigegeben-Aenderungsrekord-und-Geschwindigkeitsverbesserungen-4424484.html?seite=all -->
| 26.552.127
|data-sort-value=102000| ≈&nbsp;102.000<!-- siehe auch: cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.2.tar.xz -->
| 63
| u.&nbsp;a. Verzeichnisse in ''Ext4'' können nun auch [[Case insensitive|case-insensitive]] genutzt werden; die Performance von [[Meltdown (Sicherheitslücke)|Meltdown]]- und [[Spectre (Sicherheitslücke)|Spectre v2]]-[[Patch (Software)|Patches]] wurde optimiert.<ref>[https://www.heise.de/ct/artikel/Linux-5-2-freigegeben-Aenderungsrekord-und-Geschwindigkeitsverbesserungen-4424484.html?seite=all Linux 5.2 freigegeben: Änderungsrekord und Geschwindigkeitsverbesserungen] – ''[[c't Magazin]]'', am 9. Juli 2019</ref><br />Letzte Version war ''5.2.21'' am 11. Oktober 2019
|-
| {{Version|o|5.3|sortKey=5,3}}
| {{DatumZelle|2019-09-15}}
| 65.261<!-- siehe ggf. www.heise.de/ct/artikel/Linux-5-3-freigegeben-… -->
| 27.141.312
| ≈ 108.500
| 70
| u.&nbsp;a. Unterstützung für neue AMD Navi-10-GPUs und Zhaoxin x86-CPUs, einige Neuerungen für Effizienzverbesserungen (Support für ''umwait''-Instruktionen, Intel Speed Select, ''Utilization Clamping'' im Scheduler), 16 Millionen weitere IPv4-Adressen aus dem 0.0.0.0/8-Bereich werden verfügbar gemacht;<ref>{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/ct/artikel/Linux-5-3-freigegeben-Prioritaeten-deckeln-und-Trouble-fuer-Nvidia-4470638.html |titel=Linux 5.3 freigegeben: Prioritäten deckeln und Trouble für Nvidia |abruf=2019-11-26}}</ref><br />Letzte Version war ''5.3.18'' am 18. Dezember 2019
|-
| {{Version|co|5.4|sortKey=5,4}}
| {{DatumZelle|2019-11-24}}
| 65.701
| 27.538.212
| ≈ 109.400
| 70
| LTS-Version; Unterstützung für Microsofts exFAT-Dateisystem, Integration des Kernel Lockdown-Features, Support für weitere AMD GPU/APU-Produkte (Navi 12/14, Arcturus, Renoir), verbesserte Performance für Host-Dateisystemzugriffe aus einer virtuellen Maschine mit ''virtio-fs;''<ref>{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/ct/artikel/Linux-5-4-freigegeben-exFAT-Support-und-Einschraenkungen-fuer-Root-4541639.html |titel=Linux 5.4 freigegeben: exFAT-Support und Einschränkungen für Root |abruf=2019-11-26}}</ref><br />'''Aktuelle Version:''' ''5.4.293'' am 2. Mai 2025
|-
| {{Version|o|5.5|sortKey=5,5}}
| {{DatumZelle|2020-01-27}}
| 66.493
| 27.854.754
| ≈ 108.100
| 63
| u.&nbsp;a. Grundlagen für den zukünftigen Support der [[Virtual Private Network|VPN-Technik]] [[WireGuard]] gelegt, anfängliche Unterstützung des Raspberry Pi&nbsp;4, modernisierter Code für die [[Lastverteilung (Informatik)|Lastverteilung]] des Schedulers, mit KUnit wurde ein Framework für [[Modultest]]s integriert, Btrfs erhält neue RAID-1 und Hash-Algorithmen, verbesserte Performance und/oder Stabilität dank Mulitchannel-Support für [[Server Message Block|CIFS/SMB]], die Temperatur von NVMe-Laufwerken kann vom Kernel ausgelesen und bereitgestellt werden;<ref>{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/ct/artikel/Linux-5-5-freigegeben-Wireguard-Fundament-und-Performance-Verbesserungen-4605827.html |titel=Linux 5.5 freigegeben: Wireguard-Fundament und Performance-Verbesserungen |abruf=2020-01-27}}</ref>
Letzte Version war ''5.5.19'' am 21. April 2020
|-
| {{Version|o|5.6|sortKey=5,6}}
| {{DatumZelle|2020-03-29}}
| 67.337
| 28.169.797
| ≈ 109.200
| 63
| u.&nbsp;a. WireGuard wird vollständig unterstützt, weiter ausgebaut wurde der Support des Raspberry Pi 4 (PCIe-Controller), erste Bausteine für die [[USB4]]-Unterstützung aufgenommen, der k10temp-Treiber übermittelt nun Temperatur-, Stromstärke- und Spannungswerte für Zen-CPUs, ''/dev/random'' liefert Zufallszahlen auch bei leeren Entropiequellen, wenn der [[Kryptographisch sicherer Zufallszahlengenerator|Cryptographic Random Number Generator (CRNG)]] einmalig initialisiert wurde (Programme, die Zufallszahlen auf diese Weise anfordern, werden so nicht mehr blockiert), Linux als Gastsystem einer VirtualBox-VM erlaubt dank des eingepflegten VirtualBox-Shared-Folder-Treibers (vboxsf) eine effiziente Einbindung von Verzeichnissen des Hostsystems, erstmals sind alle Voraussetzungen zur Bewältigung des [[Jahr-2038-Problem]]s für 32-Bit-Betriebssysteme erfüllt;<ref>{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/ct/artikel/Linux-5-6-freigegeben-Wireguard-und-USB4-Support-4655269.html |titel=Linux 5.6 freigegeben: Wireguard- und USB4-Support |abruf=2020-04-06}}</ref><ref>{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/ct/artikel/Linux-5-6-unterstuetzt-Wireguard-und-USB4-4679177.html |titel=Linux 5.6 unterstützt Wireguard und USB4 |abruf=2020-04-06}}</ref>
Letzte Version war ''5.6.19'' am 17. Juni 2020
|-
| {{Version|o|5.7|sortKey=5,7}}
| {{DatumZelle|2020-05-31}}
| 67.939
| 28.442.333
| ≈ 110.038
| 63
| Letzte Version war ''5.7.19'' am 27. August 2020
|-
| {{Version|o|5.8|sortKey=5,8}}
| {{DatumZelle|2020-08-02}}
| 69.327
| 28.994.351
| ≈ 111.776
| 63
| Letzte Version war ''5.8.18'' am 1. November 2020
|-
| {{Version|o|5.9|sortKey=5,9}}
| {{DatumZelle|2020-10-11}}
| 69.972
| 29.461.217
| ≈ 112.796
| 70
| Letzte Version war ''5.9.16'' am 21. Dezember 2020
|-
| {{Version|co|5.10|sortKey=5,10}}
| {{DatumZelle|2020-12-13}}
| 70.602
| 29.733.599
| ≈ 113.869
| 63
| LTS-Version; '''Aktuelle Version:''' ''5.10.237'' am 2. Mai 2025
|-
| {{Version|o|5.11|sortKey=5,11}}
| {{DatumZelle|2021-02-14}}
| 71.238
| 30.340.055
| ≈ 114.857
| 63
| Letzte Version war ''5.11.22'' am 19. Mai 2021
|-
| {{Version|o|5.12|sortKey=5,12}}
| {{DatumZelle|2021-04-25}}
| 71.463
| 30.545.205
| ≈ 115.339
| 70
| Letzte Version war ''5.12.19'' am 20. Juli 2021
|-
| {{Version|o|5.13|sortKey=5,13}}
| {{DatumZelle|2021-06-28}}
| 72.184
| 30.940.247
| ≈ 119.538
| 63
| Letzte Version war ''5.13.19'' am 18. September 2021
|-
| {{Version|o|5.14|sortKey=5,14}}
| {{DatumZelle|2021-08-29}}
| 72.828
| 31.479.754
| ≈ 117.845
| 63
| Unterstützung für Raspberry Pi 400; bessere Unterstützung für USB&nbsp;4; Grundlagen für [[Intel-Alder-Lake-Mikroarchitektur|Intel-Alder-Lake-Prozessoren]]<br />Letzte Version war ''5.14.21'' am 21. November 2021
|-
| {{Version|co|5.15|sortKey=5,15}}
| {{DatumZelle|2021-10-31}}
| 73.575
| 31.812.242
| ≈ 119.045
| 63
| LTS-Version; bessere Unterstützung für [[NTFS]]; '''Aktuelle Version:''' ''5.15.181'' am 2. Mai 2025
|-
| {{Version|o|5.16|sortKey=5,16}}
| {{DatumZelle|2022-01-09}}
| 74.265
| 32.233.528
| ≈ 124.527
| 70
| Letzte Version war ''5.16.20'' am 13. April 2022
|-
| {{Version|o|5.17|sortKey=5,17}}
| {{DatumZelle|2022-03-20}}
| 74.993
| 32.488.489
| ≈ 125.377
| 70
| Letzte Version war ''5.17.15'' am 14. Juni 2022
|-
| {{Version|o|5.18|sortKey=5,18}}
| {{DatumZelle|2022-05-22}}
| 75.837
| 33.235.430
| ≈ 126.753
| 63
| Mit dieser Version wechselt der Kernel erstmals in der Geschichte die C-Sprachfassung: statt bisher [[Varianten der Programmiersprache C#C89|C89]] basiert Linux ab Version 5.18 auf dem C-Standard [[Varianten der Programmiersprache C#C11|C11]] (von 2011).<ref name="heiseonline_7121451">{{Heise online |ID=7121451 |Titel=Linux 5.18 kommt als „kleine Revolution“ |Autor=Oliver Müller |Datum=2022-05-24 |Abruf=2022-05-27 |Artikelseite=3 |Seitentitel=Probleme mit altem C |SeitenURL=https://www.heise.de/news/Linux-5-18-kommt-als-kleine-Revolution-7121451.html?seite=3 |Zitat=Der neue Linux-Kernel … wechselt erstmalig zu einem neueren C-Standard. … Bislang war das Programmieren nach dem C89-Standard in Kernel-Kreisen Pflicht. … [Jakob] Koschel hatte eine Unsicherheit identifiziert, die auf ein in C89 nicht lösbares Problem zurückzuführen war. … Erstmalig in der Geschichte des Kernel wechselt der C-Standard weg von C89 zu C11. Damit ist fortan der Sprachstandard aus dem Jahr 2011 die Grundlage für die Programmierung des Kernels. Was nach einer Formalie aussieht, ist ein kontrolliertes Wagnis.}}</ref><br />Letzte Version war ''5.18.19'' am 21. August 2022
|-
| {{Version|o|5.19|sortKey=5,19}}
| {{DatumZelle|2022-07-31}}
| 76.916
| 34.035.647
| ≈ 128.498
| 70
| Letzte Version war ''5.19.17'' am 24. Oktober 2022
|-
| {{Version|o|6.0|sortKey=6,0}}
| {{DatumZelle|2022-10-02}}
| 77.968
| 35.137.016
| ≈ 130.752
| 63
| Letzte Version war ''6.0.19'' am 12. Januar 2023
|-
| {{Version|co|6.1|sortKey=6,1}}
| {{DatumZelle|2022-12-11}}
| 78.644
| 35.548.350
| ≈ 131.584
| 70
| LTS-Version; '''Aktuelle Version:''' ''6.1.136'' am 2. Mai 2025
|-
| {{Version|o|6.2|sortKey=6,2}}
| {{DatumZelle|2023-02-19}}
| 79.455
| 35.868.349
| ≈ 133.234
| 70
| Letzte Version war ''6.2.16'' am 17. Mai 2023
|-
| {{Version|o|6.3|sortKey=6,3}}
| {{DatumZelle|2023-04-23}}
| 79.561
| 36.007.945
| ≈ 133.735
| 63
| Letzte Version war ''6.3.13'' am 11. Juli 2023
|-
| {{Version|o|6.4|sortKey=6,4}}
| {{DatumZelle|2023-06-25}}
| 80.282
| 36.416.957
| ≈ 134.566
| 63
| Letzte Version war ''6.4.16'' am 13. September 2023
|-
| {{Version|o|6.5|sortKey=6,5}}
| {{DatumZelle|2023-08-27}}
| 86.048
| 37.336.785
| ≈ 138.412
| 63
| Letzte Version war ''6.5.13'' am 28. November 2023
|-
| {{Version|co|6.6|sortKey=6,6}}
| {{DatumZelle|2023-10-30}}
| <!-- ? -->
| <!-- ? -->
| ≈ 140.509
| 64
| LTS-Version; '''Aktuelle Version:''' ''6.6.89'' am 2. Mai 2025
|-
| {{Version|o|6.7|sortKey=6,7}}
| {{DatumZelle|2024-01-07}}
| <!-- ? -->
| <!-- ? -->
| ≈ 141.558
| 69
| Letzte Version war ''6.7.12'' am 3. April 2024
|-
| {{Version|o|6.8|sortKey=6,8}}
| {{DatumZelle|2024-03-10}}
| <!-- ? -->
| <!-- ? -->
| ≈ 142.606
| 63
| Erste Version mit [[Rust (Programmiersprache)|Rust]]-Gerätetreiber. Letzte Version war ''6.8.12'' am 30. Mai 2024
|-
| {{Version|o|6.9|sortKey=6,9}}
| {{DatumZelle|2024-05-12}}
| <!-- ? -->
| <!-- ? -->
| ≈ 143.655
| 63
| Letzte Version war ''6.9.12'' am 27. Juli 2024
|-
|-
| {{Version|c|2.6.39|sortKey=2,639}}
| {{Version|o|6.10|sortKey=6,10}}
| {{DatumZelle|2024-07-14}}
| {{dts|19|5|2011|noFormat=ja}}
| <!-- ? -->
| {{nts|36706}}
| <!-- ? -->
| {{nts|14533582}}
| ≈ 144.703
| {{nts|96819}}
| 63
| {{nts|65}} Tage
| Letzte Version war ''6.10.14'' am 10. Oktober 2024
| Unterstützung für das Optimierungs-Werkzeug ''[[IP set]]'';<ref>[http://www.heise.de/open/artikel/Kernel-Log-Erster-Release-Candidate-von-Linux-2-6-39-1217118.html Kernel-Log: Erster Release Candidate von Linux 2.6.39] – Artikel bei ''Heise open'', vom 30.&nbsp;März 2011</ref><ref>[http://www.heise.de/open/artikel/Die-Neuerungen-von-Linux-2-6-39-1242011.html Die Neuerungen von Linux 2.6.39] – Artikel bei ''Heise open'', vom 19.&nbsp;Mai 2011</ref><br />'''Aktuelle Version:''' ''2.6.39.2'' vom 23.&nbsp;Juni 2011
|-
|-
| {{Version|p|3.0|sortKey=3,0}}
| {{Version|o|6.11|sortKey=6,11}}
| {{DatumZelle|2024-09-15}}
| Juli 2011
| <!-- ? -->
| <!-- ? -->
|
|
|
|
| Letzte Version war ''6.11.11'' am 5. Dezember 2024
|-
| {{Version|co|6.12|sortKey=6,12}}
| {{DatumZelle|2024-11-18}}
| <!-- ? -->
| <!-- ? -->
|
|
|
|
| LTS-Version; '''Aktuelle Version:''' ''6.12.26'' am 2. Mai 2025
| Neues Versionsnummernschema,<ref>[http://www.heise.de/newsticker/meldung/Erste-Vorabversion-von-Linux-3-0-erschienen-1252084.html Erste Vorabversion von Linux 3.0 erschienen] – Artikel bei ''[[Heise online]]'', vom 30.&nbsp;Mai 2011</ref> zudem neue Treiber für Netzwerkgeräte<ref>[http://www.heise.de/open/artikel/Kernel-Log-Was-3-0-bringt-1-Netzwerk-1257064.html Kernel-Log – Was 3.0 bringt (1): Netzwerk] – Artikel bei ''Heise open'', vom 8.&nbsp;Juni 2011</ref> und viele kleine Verbesserungen (wie z.B. Schreib- und Lösch-Optimierungen für Dateisysteme)<ref>[http://www.heise.de/open/artikel/Kernel-Log-Was-3-0-bringt-2-Dateisysteme-1263114.html Kernel-Log – Was 3.0 bringt (2): Dateisysteme] – Artikel bei ''Heise open'', vom 21.&nbsp;Juni 2011</ref><br/>aktuelle Version: ''3.0 [[Release Candidate|RC]] 4'' vom 21.&nbsp;Juni 2011
|}
|-
| {{Version|o|6.13|sortKey=6,13}}
| {{DatumZelle|2025-01-19}}
| <!-- ? -->
| <!-- ? -->
|
|
| Letzte Version war ''6.13.12'' am 20. April 2025
|-
| {{Version|c|6.14|sortKey=6,14}}
| {{DatumZelle|2025-03-24}}
| <!-- ? -->
| <!-- ? -->
|
|
| '''Aktuelle Version:''' ''6.14.5'' am 2. Mai 2025
|-
| {{Version|p|6.15|sortKey=6,15}}
| {{DatumZelle|2025-05}}
| <!-- ? -->
| <!-- ? -->
|
|
| '''Aktuelle Version:''' ''6.15RC4'' am 27. April 2025
|-
|colspan=7 class="unsortable"| {{Version|l|zeige=111101}}

'''Anmerkungen'''<ref>{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/ct/artikel/Verbesserungen-allerorten-Die-Neuerungen-von-Linux-2-6-25-221493.html |titel=Die Neuerungen von Linux 2.6.25 |titelerg=Daten und Zahlen zu den jüngsten Versionen des Linux-Kernels |hrsg=Heise online |datum=2008-04-17 |seiten=6 |abruf=2010-09-28}}</ref><ref>{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-2-6-31-763959.html |titel=Die Neuerungen von Linux 2.6.31 |titelerg=Daten und Zahlen zu den jüngsten Versionen des Linux-Kernels |hrsg=Heise online |datum=2009-09-10 |seiten=6 |abruf=2010-09-28}}</ref><ref>{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-2-6-38-1203073.html |titel=Die Neuerungen von Linux 2.6.38 |titelerg=Daten und Zahlen zu den jüngsten Versionen des Linux-Kernels |hrsg=Heise online |datum=2011-03-15 |seiten=8 |abruf=2011-03-15}}</ref><ref>{{Internetquelle |autor=Thorsten Leemhuis |url=https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-3-0-1279228.html |titel=Die Neuerungen von Linux 3.0 |titelerg=Daten und Zahlen zu den jüngsten Versionen des Linux-Kernels |hrsg=Heise online |datum=2011-07-22 |seiten=4 |abruf=2011-07-25}}</ref>


'''Anmerkungen'''<ref>{{Internetquelle|url=http://www.heise.de/open/artikel/Verbesserungen-allerorten-Die-Neuerungen-von-Linux-2-6-25-221493.html|titel=Die Neuerungen von Linux 2.6.25|titelerg=Daten und Zahlen zu den jüngsten Versionen des Linux-Kernels|seiten=6|datum=2008-04-17|hrsg=[[Heise online]]|autor=Thorsten Leemhuis|zugriff=2010-09-28}}</ref><ref>{{Internetquelle|url=http://www.heise.de/open/artikel/Die-Neuerungen-von-Linux-2-6-31-763959.html|titel=Die Neuerungen von Linux 2.6.31|titelerg=Daten und Zahlen zu den jüngsten Versionen des Linux-Kernels|seiten=6|datum=2009-09-10|hrsg=[[Heise online]]|autor=Thorsten Leemhuis|zugriff=2010-09-28}}</ref><ref>{{Internetquelle|url=http://www.heise.de/open/artikel/Die-Neuerungen-von-Linux-2-6-38-1203073.html|titel=Die Neuerungen von Linux 2.6.38|titelerg=Daten und Zahlen zu den jüngsten Versionen des Linux-Kernels|seiten=8|datum=2011-03-15|hrsg=[[Heise online]]|autor=Thorsten Leemhuis|zugriff=2011-03-15}}</ref><!-- zusätzlicher Einzelnachweis ab 2.6.39 --><br />
{{FNZ|(a)|Dateien gezählt mit: <code><nowiki>find . -type f -not -regex '\./\.git/.*'|wc -l</nowiki></code>}}
{{FNZ|(a)|Dateien gezählt mit: <code><nowiki>find . -type f -not -regex '\./\.git/.*'|wc -l</nowiki></code>}}
{{FNZ|(b)|[[Lines of Code|Quellcodezeilen]] gezählt mit: <code><nowiki>find . -type f -not -regex '\./\.git.*'|xargs cat|wc -l</nowiki></code>}}
{{FNZ|(b)|[[Lines of Code|Quelltextzeilen]] gezählt mit: <code><nowiki>find . -type f -not -regex '\./\.git.*'|xargs cat|wc -l</nowiki></code>}}
{{FNZ|(c)|Größe in [[Kilobyte|kB]] bezogen auf ein mit [[gzip]] komprimiertes [[tar]]-Archiv (.tar.gz)<ref name="kernelArchive"/>}}
{{FNZ|(c)|Größe in [[Kilobyte|kB]] bezogen auf ein mit [[gzip]] komprimiertes [[tar-Archiv]] (.tar.gz); ab Version 3.2 im Format tar.xz<ref name="kernelArchive" />||gruppe=}}
{{FNZ|(d)|Der genannte Entwicklungszeitraum bezieht sich lediglich auf die Zusammenführung bereits entwickelter Programmteile, welche selbst teilweise mehrere Jahre zuvor bis zur Zusammenführung entwickelt wurden.}}
{{FNZ|(d)|Der genannte Entwicklungszeitraum bezieht sich lediglich auf die Zusammenführung bereits entwickelter Programmteile, welche selbst teilweise mehrere Jahre zuvor bis zur Zusammenführung entwickelt wurden.}}
|}


== Neuerungen im Kernel 2.6 ==
=== Neuerungen im Kernel 2.6 ===
Die Kernel-Reihe 2.6 wurde ab Dezember 2001 auf Basis der damaligen 2.4er-Reihe entwickelt und wies umfangreiche Neuerungen auf. Für die Entwicklung war der neue Quelltext übersichtlicher und leichter zu pflegen, während Anwender durch die Überarbeitung des ''[[Prozess-Scheduler]]s'' sowie des [[Eingabe und Ausgabe|I/O]]-Bereiches und von geringeren Latenzzeiten profitierten.<ref>Dr. Oliver Diedrich: [https://www.heise.de/ct/artikel/The-Next-Generation-289090.html ''The Next Generation – Linux 2.6: Fit für die Zukunft''.] in der c't 24/2003 (am 17. November 2003), Seite 194</ref>


==== Neue Prozess-Scheduler ====
Die Kernel-Reihe 2.6 wurde ab Dezember 2001 auf Basis des damaligen 2.4er Kernels entwickelt und wies umfangreiche Neuerungen auf. Für die Entwicklung war der neue Kernel-Code übersichtlicher und leichter zu pflegen, während Anwender durch die Überarbeitung der Scheduler und des I/O-Bereichs und von geringeren Latenzzeiten profitierten.<ref name="heise_kernel26">Dr. Oliver Diedrich: ''[http://www.heise.de/ct/03/24/194/ The Next Generation - Linux 2.6: Fit für die Zukunft]'' in der c't 24/2003, Seite 194</ref> Dies wurde durch eine Reihe von Maßnahmen erreicht, die im Folgenden aufgezeigt werden:
In einem Multitasking-fähigen Betriebssystem muss es eine Instanz geben, die den Prozessen, die laufen wollen, Rechenzeit zuteilt. Diese Instanz bildet der [[Prozess-Scheduler]]. Seit dem Erscheinen von Linux 2.6 wurde mehrfach grundlegend am Scheduler gearbeitet.


Für die ersten Kernel 2.6 war von [[Ingo Molnár]] ein gegenüber Linux 2.4 ganz neuer Scheduler konzipiert und implementiert worden, der ''O(1)-Scheduler''. Dieser erhielt seinen Namen, weil die relevanten [[Algorithmus|Algorithmen]], auf denen der Scheduler basierte, die [[Zeitkomplexität]] <math>O(1)</math> haben. Dies bedeutet, dass die vom Scheduler für eigene Aufgaben benötigte Prozessorzeit unabhängig von der Anzahl der verwalteten Prozesse bzw. Threads ist. Insbesondere wurde etwa auf das Durchsuchen aller Prozesse nach dem momentan wichtigsten Prozess verzichtet.
=== Neue Scheduler ===


Der O(1)-Scheduler arbeitete auch bei vielen Prozessen effizient und benötigte selbst nur wenig Rechenzeit. Er verwendete zwei verkettete Listen. Eine für Prozesse, die noch laufen müssen und eine zweite für Prozesse die bereits gelaufen sind. Wenn alle Prozesse in der zweiten Liste standen, wurden die [[Feld (Datentyp)|Datenfelder]] getauscht, und das Spiel begann von neuem.
In einem Multitasking-fähigen Betriebssystem muss es eine Instanz geben, die den Prozessen, die laufen wollen, Rechenzeit zuteilt und sie nach Ablauf der zugeteilten Zeitspanne (''Timeslice'') wieder „schlafen legt“. Diese Instanz bildet der sog. ''[[Prozess-Scheduler|Scheduler]]''. Seit dem Erscheinen von Linux 2.6 wurde mehrfach grundlegend am Scheduler gearbeitet.


Interaktive Prozesse benötigen in der Regel nur wenig Rechenzeit. Allerdings sollte zum Beispiel die [[grafische Benutzeroberfläche]] verlässlich innerhalb weniger Millisekunden reagieren. Der O(1)-Scheduler besaß [[Heuristik]]en, um festzustellen, ob ein Prozess interaktiv ist oder die CPU eher lange belegt. Der Scheduler stellte dann Aufgaben, die viel Rechenzeit in Anspruch nehmen, zu Gunsten von interaktiven Prozessen zurück.
Für die ersten Kernel 2.6 war von [[Ingo Molnár]] ein gegenüber Linux 2.4 komplett neuer Scheduler konzipiert und implementiert worden, der so genannte ''O(1)-Scheduler''<!-- Lemma fett für Redir [[O(1)-Scheduler]] -->. Dieser erhielt seinen Namen, weil die relevanten [[Algorithmus|Algorithmen]], auf denen der Scheduler basierte, die [[Zeitkomplexität]] <math>O(1)</math> haben. Dies bedeutet, dass die vom Scheduler für eigene Aufgaben benötigte Prozessorzeit unabhängig von der Anzahl der verwalteten Prozesse bzw. Threads ist. Insbesondere wurde etwa auf Durchsuchen aller Prozesse nach dem „besten“ etc. verzichtet.


Der interne Takt des Kernels wurde ab dem Kernel 2.6 von 100&nbsp;[[Hertz (Einheit)|Hz]] auf 1000&nbsp;Hz erhöht, das heißt, die kürzeste Länge einer [[Zeitscheibe]] betrug nun eine Millisekunde. Hiervon profitierten besonders die interaktiven Prozesse, da sie früher wieder an der Reihe sind. Da dies zu einer erhöhten CPU-Last und somit zu einem größeren Stromverbrauch führt, wurde der Takt ab dem Kernel 2.6.13 auf 250&nbsp;Hz eingestellt. Bei der Konfiguration des Kernels sind jedoch auch noch die Werte 100&nbsp;Hz, 300&nbsp;Hz und 1000&nbsp;Hz wählbar.
Der O(1)-Scheduler arbeitete auch bei sehr vielen Prozessen überaus effizient und benötigte selbst sehr wenig Rechenzeit. Er verwendete prinzipiell zwei verkettete Listen, in denen die Prozesse eingetragen waren, die noch laufen wollten, und diejenigen, die bereits gelaufen sind. Wenn alle Prozesse in der zweiten Liste standen, wurden die [[Feld (Datentyp)|Arrays]] getauscht, und das Spiel begann von neuem. Der Scheduler war darüber hinaus so ausgelegt, dass Prozesse, die große Mengen Rechenzeit in Anspruch nehmen wollen, gegenüber interaktiven Prozessen benachteiligt werden, wenn beide zur gleichen Zeit laufen wollen.


Mit der Kernelversion 2.6.23 wurde im Oktober 2007 der O(1)-Scheduler durch einen [[Completely Fair Scheduler]] (CFS) ersetzt, der ebenfalls von Ingo Molnár entwickelt wurde. Am CFS wurde von manchen Kernel-Entwicklern kritisiert, dass er seinen Schwerpunkt auf Skalierbarkeit auch bei Servern mit vielen Prozessorkernen legt. Entwickler wie [[Con Kolivas]] waren der Meinung, dass unter dieser Schwerpunktsetzung sowie einigen Designentscheidungen im CFS die Leistung auf typischen Desktop-Systemen leide.<ref>{{Internetquelle |autor=Marcel Hilzinger |url=http://www.linux-magazin.de/NEWS/Con-Kolivas-meldet-sich-mit-neuem-Scheduler-zurueck |titel=Con Kolivas meldet sich mit neuem Scheduler zurück |hrsg=''Linux-Magazin'' |datum=2009-09-02 |abruf=2014-04-27}}</ref>
Interaktive Prozesse benötigen in der Regel nur sehr wenig Rechenzeit, sind dafür aber sehr zeitkritisch (so will der Benutzer beispielsweise nicht lange auf eine Reaktion der grafischen Oberfläche warten). Der O(1)-Scheduler besaß [[Heuristik]]en, um festzustellen, ob ein Prozess interaktiv ist oder die CPU eher lange belegt.


==== {{Anker|Präemptiver Kernel}} Präemptibles Multitasking ====
Der interne „Takt“ des Kernels wurde ab dem Kernel 2.6 von 100&nbsp;Hz auf 1000&nbsp;Hz erhöht, das heißt, die kürzestmögliche Länge einer Zeitscheibe beträgt nun eine Millisekunde. Auch hiervon profitieren besonders die interaktiven Prozesse, da sie früher „wieder an der Reihe sind“. Da dies aber zu einer erhöhten CPU-Last und somit zu einem größeren Stromverbrauch führt, entschied man sich, den Takt ab dem Kernel 2.6.13 auf 250&nbsp;Hz voreinzustellen. Bei der Konfiguration des Kernels sind jedoch auch noch die Werte 100&nbsp;Hz, 300&nbsp;Hz und 1000&nbsp;Hz wählbar.
Der Kernel ist ab Version 2.6 in den meisten Funktionen [[Multitasking#Präemptibles Multitasking|präemptibel]] („zuvorkommend, vorbeugend“). Selbst wenn das System gerade im [[Ring (CPU)|Kernel-Modus]] Aufgaben ausführt, kann dieser Vorgang durch einen Prozess aus dem [[Ring (CPU)|User-Modus]] unterbrochen werden. Der Kernel macht dann weiter, wenn der Usermodus-Prozess seine [[Zeitscheibe]] aufgebraucht hat oder selbst eine neue Zeitplanung (englisch ''{{lang|en|Re-[[Prozess-Scheduler|Schedule]]}}'') anfordert, also dem Zeitplaner (englisch ''{{lang|en|[[Prozess-Scheduler|Scheduler]]}}'') mitteilt, dass er einen anderen Task ausführen kann. Bis auf einige Kernel-Funktionen, die [[Atomare Operation|atomar]] („nicht unterbrechbar“) ablaufen müssen, kommt dies der Interaktivität zugute und erweitert das davor übliche [[Multitasking#Präemptives Multitasking|präemptive]] Multitasking („entziehbar“), das aber weiterhin zur Auswahl steht.


==== Zugriffskontrolllisten ====
Mit der Kernelversion 2.6.23 wurde im Oktober 2007 der O(1)-Scheduler durch einen sog. [[Completely Fair Scheduler]] (CFS) ersetzt, der ebenfalls von Ingo Molnár entwickelt wurde. Der CFS als gegenwärtig einziger im Hauptentwicklungszweig verfügbarer Scheduler ist unter den Kernel-Entwicklern teilweise umstritten, da er seinen Schwerpunkt auf Skalierbarkeit auch bei Servern mit vielen Prozessorkernen legt. Entwickler wie [[Con Kolivas]] sind der Meinung, dass unter dieser Schwerpunktsetzung sowie einigen Designentscheidungen im CFS die Leistung auf typischen Desktop-Systemen leidet.<ref>[http://www.linux-magazin.de/NEWS/Con-Kolivas-meldet-sich-mit-neuem-Scheduler-zurueck Artikel im Linux-Magazin zu Problemen des Completely Fair Schedulers]</ref>
Mit dem Kernel 2.6 werden für Linux erstmals [[Zugriffskontrollliste]]n (englisch ''{{lang|en|access control lists}}'') nativ eingeführt. Diese sehr feinkörnige Rechteverwaltung ermöglicht es vor allem Systemadministratoren, die Rechte auf einem Dateisystem unabhängig vom Gruppen- und Nutzermodell zu gestalten und dabei faktisch beliebig viele spezielle Rechte pro Datei zu setzen. Die mangelnde Unterstützung von Zugriffskontrolllisten von Linux wurde vorher als massive Schwäche des Systems im Rahmen der Rechteverwaltung und der Möglichkeiten zur sicheren Konfiguration gesehen.

=== Präemptibler Kernel ===

Der Kernel ist ab Version 2.6 in den meisten Funktionen [[Multitasking#Präemptibles Multitasking|präemptibel]], d.&nbsp;h., selbst wenn das System gerade im [[Ring (CPU)|Kernel-Modus]] Aufgaben ausführt, kann dieser Vorgang durch einen Prozess aus dem [[Ring (CPU)|User-Modus]] unterbrochen werden. Der Kernel macht dann weiter, wenn der Usermodus-Prozess seine Timeslice aufgebraucht hat oder selbst einen Re-Schedule anfordert, also dem Scheduler mitteilt, dass er einen anderen Task ausführen kann. Dies funktioniert, bis auf einige Kernel-Funktionen, die [[Atomare Operation|atomar]] (nicht unterbrechbar) ablaufen müssen, sehr gut und kommt ebenfalls der Interaktivität zugute.

=== Zugriffskontrolllisten ===

Mit dem Kernel 2.6 werden für Linux erstmals [[Zugriffskontrollliste]]n (''access control lists'') nativ eingeführt. Diese sehr feinkörnige Rechteverwaltung ermöglicht es vor allem Systemadministratoren, die Rechte auf einem Dateisystem unabhängig vom Gruppen- und Nutzermodell zu gestalten und dabei faktisch beliebig viele spezielle Rechte pro Datei zu setzen. Die mangelnde Unterstützung von Zugriffskontrolllisten von Linux wurde vorher als massive Schwäche des Systems im Rahmen der Rechteverwaltung und der Möglichkeiten zur sicheren Konfiguration gesehen.


Die Unterstützung von Zugriffskontrolllisten funktioniert dabei mit den Dateisystemen [[ext2]], [[ext3]], [[Journaled File System|jfs]] und [[XFS (Dateisystem)|XFS]] nativ.
Die Unterstützung von Zugriffskontrolllisten funktioniert dabei mit den Dateisystemen [[ext2]], [[ext3]], [[Journaled File System|jfs]] und [[XFS (Dateisystem)|XFS]] nativ.


=== Inotify ===
==== Inotify ====
Mit dem Kernel [[#2.6.13|2.6.13]] hielt erstmals eine ''Inotify'' genannte Funktion Einzug in den Kernel. Diese ermöglicht eine andauernde Überwachung von Dateien und Verzeichnissen – wird eines der überwachten Objekte geändert oder ein neues Objekt im Überwachungsraum erschaffen, gibt ''Inotify'' eine Meldung aus, die wiederum andere Programme zu definierten Tätigkeiten veranlassen kann. Dies ist insbesondere für Such- und Indexierungsfunktionen der Datenbestände von entscheidender Bedeutung und ermöglicht erst den sinnvollen Einsatz von Desktop-Suchmaschinen wie [[Strigi]] oder [[Meta Tracker]]. Ohne eine solche Benachrichtigungsfunktion des Kernels müsste ein Prozess die zu überwachende Datei oder das zu überwachende Verzeichnis in bestimmten Zeitintervallen auf Änderungen überprüfen, was im Gegensatz zu Inotify zusätzliche Performance-Einbußen mit sich bringen würde.

Mit dem Kernel 2.6.13 hielt erstmals ein ''Inotify'' genannter Mechanismus Einzug in den Kernel. Dieser ermöglicht das permanente Überwachen von Dateien und Ordnern: Wird eines der überwachten Objekte geändert oder ein neues Objekt im Überwachungsraum erschaffen, gibt Inotify eine Meldung aus, die wiederum andere Programme zu definierten Tätigkeiten veranlassen kann. Dies ist insbesondere für Such- und Indexierungsmechanismen der Datenbestände von entscheidender Bedeutung, und ermöglicht erst den sinnvollen Einsatz von Desktop-Suchmaschinen wie [[Strigi]] oder [[Beagle (GNOME)|Beagle]]. Ohne eine solche Benachrichtigungsfunktion des Kernels müsste ein Prozess die zu überwachende Datei bzw. den zu überwachenden Ordner in bestimmten Zeitintervallen auf Änderungen überprüfen, was im Gegensatz zu Inotify zusätzliche Performance-Einbußen mit sich brächte.

=== Weitere wichtige Änderungen ===


==== Weitere wichtige Änderungen ====
Soweit es möglich ist, wurde in Linux 2.6 die Maximalzahl für bestimmte Ressourcen angehoben. Die Anzahl von möglichen Benutzern und Gruppen erhöhte sich von 65.000 auf über 4 Milliarden, ebenso wie die Anzahl der Prozess-IDs (von 32.000 auf 1 Milliarde) und die Anzahl der Geräte (Major/Minor-Nummern). Weitere leistungssteigernde Maßnahmen betrafen die I/O-Scheduler, das Threading mit der neuen [[Native POSIX Thread Library]] und den Netzwerk-Stack, der nun ebenfalls in den meisten Tests O(1) skaliert ist. Außerdem wurde für die Verwaltung der I/O-Gerätedateien das früher genutzte [[devfs]] durch das neuere [[udev]] ersetzt, was viele Unzulänglichkeiten, wie zum Beispiel ein zu großes ''/dev/''-Verzeichnis, beseitigt. Außerdem kann so eine einheitliche und konsistente Gerätebenennung erfolgen, die beständig bleibt, was vorher nicht der Fall war.
Soweit es möglich ist, wurde in Linux 2.6 die Maximalzahl für bestimmte Ressourcen angehoben. Die Anzahl von möglichen Benutzern und Gruppen erhöhte sich von 65.000 auf über 4 Milliarden, ebenso wie die Anzahl der Prozess-IDs (von 32.000 auf 1 Milliarde) und die Anzahl der Geräte (Major/Minor-Nummern). Weitere leistungssteigernde Maßnahmen betrafen die I/O-Scheduler, das Threading mit der neuen [[Native POSIX Thread Library]] und den Netzwerk-Stack, der nun ebenfalls in den meisten Tests O(1) skaliert ist. Außerdem wurde für die Verwaltung der I/O-Gerätedateien das früher genutzte [[devfs]] durch das neuere [[udev]] ersetzt, was viele Unzulänglichkeiten, wie zum Beispiel ein zu großes ''/dev/''-Verzeichnis, beseitigt. Außerdem kann so eine einheitliche und konsistente Gerätebenennung erfolgen, die beständig bleibt, was vorher nicht der Fall war.

== Entwicklungsprozess ==

[[Datei:Linus_Torvalds.jpeg|miniatur|Linus Torvalds 2002]]

Die Entwicklung von Linux liegt durch die [[GNU General Public License]] und durch ein sehr offenes Entwicklungsmodell nicht in der Hand von Einzelpersonen, Konzernen oder Ländern, sondern in der Hand einer weltweiten Gemeinschaft vieler Programmierer, die sich hauptsächlich über das Internet austauschen. In vielen [[Mailingliste]]n, aber auch in Foren und im Usenet besteht für jedermann die Möglichkeit, die Diskussionen über den Kernel zu verfolgen, sich daran zu beteiligen und auch aktive Beiträge zur Entwicklung zu leisten. Durch diese unkomplizierte Vorgehensweise ist eine schnelle und stetige Entwicklung gewährleistet, die auch die Möglichkeit mit sich bringt, dass jeder dem Kernel Fähigkeiten zukommen lassen kann, die er benötigt.

Eingegrenzt wird dies nur durch die Kontrolle von [[Linus Torvalds]] und einigen besonders verdienten Programmierern, die das letzte Wort über die Aufnahme von Verbesserungen und [[Patch (Software)|Patches]] in die offizielle Version haben. Manche Linux-Distributoren bauen auch eigene Funktionen in den Kernel ein, die im offiziellen Kernel (noch) nicht vorhanden sind.

=== Änderungen der Herkunftskontrolle ===

Der Entwicklungsprozess des Kernels ist wie der Kernel selbst ebenfalls immer weiterentwickelt worden. So führte der Rechtsprozess der [[SCO Group]] um angeblich illegal übertragenen Code in Linux zur Einführung eines „Linux Developer's Certificate of Origin“, das von Linus Torvalds und [[Andrew Morton (Programmierer)|Andrew Morton]] bekanntgegeben wurde.<ref>Pressemitteilung OSDL: ''[http://www.osdl.org/newsroom/press_releases/2004/2004_05_24_dco.html Developer's Certificate of Origin]'', 2004</ref> Diese Änderung griff das Problem auf, dass nach dem bis dahin gültigen Modell des Linux-Entwicklungsprozesses die Herkunft einer Erweiterung oder Verbesserung des Kernels nicht nachvollzogen werden konnte.

{{Zitat-en|These days, most of the patches in the kernel don't actually get sent directly to me. That not just wouldn't scale, but the fact is, there's a lot of subsystems I have no clue about, and thus no way of judging how good the patch is. So I end up seeing mostly the maintainers of the subsystem, and when a bug happens, what I want to see is the maintainer name, not a random developer who I don't even know if he is active any more. So at least for me, the _chain_ is actually mostly more important than the actual originator.

There is also another issue, namely the fact than when I (or anybody else, for that matter) get an emailed patch, the only thing I can see directly is the sender information, and that's the part I trust. When Andrew sends me a patch, I trust it because it comes from him - even if the original author may be somebody I don't know. So the _path_ the patch came in through actually documents that chain of trust - we all tend to know the "next hop", but we do _not_ necessarily have direct knowledge of the full chain.

So what I'm suggesting is that we start "signing off" on patches, to show the path it has come through, and to document that chain of trust. It also allows middle parties to edit the patch without somehow "losing" their names - quite often the patch that reaches the final kernel is not exactly the same as the original one, as it has gone through a few layers of people.|Linus Torvalds|Linux-Kernel Archive,<ref>Linux-Kernel Archive: ''[http://lkml.org/lkml/2004/05/23/10 <nowiki>[RFD]</nowiki> Explicitly documenting patch submission]'', 23. Mai 2004</ref> 23. Mai 2004
|Übersetzung=Zurzeit werden die meisten Patches für den Kernel nicht direkt an mich gesandt. Das wäre einfach nicht machbar. Tatsache ist, dass es eine Menge Untersysteme gibt, mit denen ich überhaupt nicht vertraut bin und ich somit keine Möglichkeit habe zu entscheiden, wie gut der Patch ist. Deshalb läuft es meist darauf hinaus, die Pfleger (Maintainer) des Untersystemes zu treffen. Falls ein Fehler auftritt, will ich den Namen eines Pflegers und nicht irgendeines Entwicklers sehen, von dem ich nicht einmal weiß, ob er noch aktiv ist. Daher ist für mich auf jeden Fall die _Kette_ wichtiger als der tatsächliche Urheber. Auch gibt es ein anderes Problem, nämlich dass ich, falls man mir (oder irgendjemand anderem) einen Patch über E-Mail schickt, einzig die Senderinformation direkt sehen kann, und das ist der Teil, dem ich traue. Wenn Andrew mir einen Patch schickt, vertraue ich dem Patch, weil er von Andrew kommt – auch wenn der eigentliche Urheber jemand ist, den ich nicht kenne. Also belegt tatsächlich der _Weg_, den der Patch zu mir nahm, diese Kette des Vertrauens – wir alle neigen dazu, das jeweils nächste „Glied“ zu kennen, aber _nicht_ unbedingt unmittelbares Wissen über die gesamte Kette zu haben. Was ich also vorschlage ist, dass wir anfangen, Patches „abzuzeichnen“, um den Weg, den sie genommen haben, aufzuzeigen und diese Kette des Vertrauens zu dokumentieren. Das erlaubt es darüber hinaus vermittelnden Gruppen, den Patch zu verändern, ohne dass dabei der Name von jemanden „auf der Strecke bleibt“ – ziemlich oft ist die Patchversion, die letztendlich in den Kernel aufgenommen wird, nicht genau die ursprüngliche, ist sie doch durch einige Entwicklerschichten gegangen.}}

=== Das Versionskontrollsystem Git ===

Die Versionskontrolle des Kernels unterliegt dem Programm [[Git]]. Dies wurde speziell für den Kernel entwickelt und auf dessen Bedürfnisse hin optimiert. Es wurde im April 2005 eingeführt, nachdem sich abgezeichnet hatte, dass das alte Versionskontrollsystem [[BitKeeper]] nicht mehr lange für die Kernelentwicklung genutzt werden konnte.


== Lizenzbesonderheiten ==
== Lizenzbesonderheiten ==

=== Proprietärer Code und Freiheitsbegriff ===
=== Proprietärer Code und Freiheitsbegriff ===
Die heute von Linus Torvalds herausgegebene Fassung des Kernels enthält proprietäre Objekte in [[Maschinensprache]] ([[Binary Large Object|BLOBs]]) und ist daher nicht mehr ausschließlich [[Freie Software]]. [[Richard Stallman]] bezweifelt sogar, dass sie legal kopiert werden darf, da diese BLOBs im Widerspruch zur GPL stünden und die Rechte aus der GPL daher erlöschen würden.<ref>{{Internetquelle |autor=Richard M. Stallman |url=https://www.gnu.org/philosophy/linux-gnu-freedom.html |titel=Linux, GNU, and freedom |hrsg=gnu.org |datum=2014-07-10 |sprache=en |abruf=2015-02-12}}</ref> Resultierend daraus rät die [[Free Software Foundation]] deshalb dazu, nur BLOB-freie Versionen von Linux einzusetzen, bei denen diese Bestandteile entfernt wurden. Linux-Distributionen mit dem Kernel [[Linux-libre]] erfüllen diesen Anspruch.

Die heute von Linus Torvalds herausgegebene Fassung des Kernels enthält proprietäre Objekte in [[Maschinensprache]] ([[Binary Large Object|BLOBs]]) und ist daher nicht mehr komplett [[Freie Software|frei]]. [[Richard Stallman]] bezweifelt sogar, dass sie legal kopiert werden darf, da diese BLOBs im Widerspruch zur GPL stünden und die Rechte aus der GPL daher erlöschen würden.<ref>[http://www.gnu.org/philosophy/linux-gnu-freedom.html Linux, GNU, and freedom] (englisch) – Seite beim ''GNU-Projekt''; Stand: 12.&nbsp;April 2009</ref> Resultierend daraus rät die [[Free Software Foundation]] deshalb dazu, nur BLOB-freie Versionen von Linux einzusetzen, bei denen diese Bestandteile entfernt wurden.


=== Der Kernel unter der GPL 2 ===
=== Der Kernel unter der GPL 2 ===
Die bei [[GNU General Public License|GPL]]-Software übliche Klausel, dass statt der Version 2 der GPL auch eine neuere Version verwendet werden kann, fehlt beim Linux-Kernel.<ref>{{Internetquelle |autor=Linus Torvalds |url=http://article.gmane.org/gmane.linux.kernel/371935 |titel=GPL V3 and Linux – Dead Copyright Holders |datum=2006-01-25 |sprache=en |abruf=2009-03-24 |kommentar=Nachricht auf der Linux-Kernel-Mailingliste}}</ref> Die Entscheidung, ob die im Juni 2007 erschienene Version 3 der Lizenz für Linux verwendet wird, ist damit nur mit Zustimmung aller Entwickler möglich. In einer Umfrage haben sich Torvalds und die meisten anderen Entwickler für die Beibehaltung der Version 2 der Lizenz ausgesprochen.

Die bei GPL-Software übliche Klausel, dass statt der Version 2 der GPL auch eine neuere Version verwendet werden kann, fehlt beim Linux-Kernel.<ref>{{Internetquelle|url=http://article.gmane.org/gmane.linux.kernel/371935|titel=GPL V3 and Linux - Dead Copyright Holders|autor=Linus Torvalds|datum=25. Januar 2006|zugriff=24. März 2009|kommentar=Nachricht auf der Linux-Kernel-Mailingliste}}</ref> Die Entscheidung, ob die im Juni 2007 erschienene Version 3 der Lizenz für Linux verwendet wird, ist damit prinzipiell nur mit Zustimmung aller Entwickler möglich. In einer Umfrage haben sich Torvalds und die meisten anderen Entwickler für die Beibehaltung der Version 2 der Lizenz ausgesprochen.


== Literatur ==
== Literatur ==
* Wolfgang Mauerer: ''Linux-Kernelarchitektur. Konzepte, Strukturen und Algorithmen von Kernel 2.6.'' Hanser Fachbuchverlag, München u.&nbsp;a. 2003, ISBN 3-446-22566-8.

* Robert Love: ''Linux-Kernel-Handbuch. Leitfaden zu Design und Implementierung von Kernel 2.6.'' Addison-Wesley, München u.&nbsp;a. 2005, ISBN 3-8273-2204-9.
* Wolfgang Mauerer: ''Linux Kernelarchitektur''. Hanser Fachbuchverlag, November 2003, ISBN 3-446-22566-8
* Robert Love: ''Linux-Kernel-Handbuch''. Addison-Wesley, Juli 2005, ISBN 3-8273-2204-9
* Jonathan Corbet, Alessandro Rubini, und [[Greg Kroah-Hartman]]: ''Linux Device Drivers.'' 3. Auflage, O’Reilly. 2005, ISBN 0-596-00590-3.


== Weblinks ==
== Weblinks ==
{{Commons|Linux kernel|Linux (Kernel)}}


'''Englisch:'''
* [http://www.kernel.org/ kernel.org] – Das Linux-Kernel-Archiv (englisch)
* [https://www.kernel.org/ The Linux Kernel Archives] – offizielle Website
* [http://kerneltrap.org/ kerneltrap.org] – Informationen über aktuelle Entwicklungen im Kernel (englisch)
* [https://elixir.bootlin.com/linux/latest/source Elixir Cross Referencer]
* [http://kernelnewbies.org/ kernelnewbies.org] – Infos für angehende Kernel-Programmierer (englisch)
* [http://www.makelinux.net/kernel_map/ Interactive Linux Kernel Map]
* [http://kernelplanet.org/ kernelplanet.org] – Der offizielle Kernel-Entwicklerblog (englisch)
* [https://kernelnewbies.org/ Linux Kernel Newbies] – Infos für angehende Kernel-Programmierer
* [http://www.ibm.com/developerworks/linux/library/l-linux-kernel/ Anatomy of the Linux kernel]
* [http://www.oldlinux.org/ oldlinux.org] - eine Sammlung Historischer Kernel
* [http://www.oldlinux.org/ Oldlinux.org] eine Sammlung historischer Kernel
* [http://draconux.free.fr/os_dev/linux0.01_news.html Linux 0.01] - Weiterentwicklungen des 0.01 kernels für neuere GCC Versionen
* [http://draconux.free.fr/os_dev/linux0.01_news.html Linux 0.01 News] – Seite zu Weiterentwicklungen des 0.01-Kernels für neuere GCC-Versionen
* [https://developer.ibm.com/articles/l-linux-kernel/ Anatomy of the Linux kernel] – ''[[IBM]]'', am 6. Juni 2007

'''Deutsch:'''
* [https://www.golem.de/specials/linux-kernel/ Linux-Kernel] – ''[[Golem.de|Golem]]''
* [https://www.heise.de/thema/Linux_Kernel ''Linux Kernel''] – ''[[Heise online|Heise]]''
* [https://www.computerbase.de/downloads/system/linux-kernel/ ''Linux Kernel Download''] – ''[[ComputerBase]]''


== Einzelnachweise ==
== Einzelnachweise ==
<references responsive />


{{Lesenswert|23.10.2005|10220923}}
<references/>

{{Lesenswert}}


[[Kategorie:Linux-Betriebssystemkomponente]]
[[Kategorie:Linux-Betriebssystemkomponente]]

[[ar:نواة لينكس]]
[[bg:Линукс (ядро)]]
[[ca:Linux (nucli)]]
[[cs:Linux (jádro)]]
[[csb:Linux (jądro)]]
[[el:Πυρήνας Linux]]
[[en:Linux kernel]]
[[es:Núcleo Linux]]
[[fa:هسته لینوکس]]
[[fi:Linux (ydin)]]
[[fr:Noyau Linux]]
[[he:לינוקס (ליבה)]]
[[hu:Linux (rendszermag)]]
[[id:Linux (kernel)]]
[[ilo:Linux (kernel)]]
[[is:Linux]]
[[it:Linux (kernel)]]
[[ja:Linuxカーネル]]
[[ko:리눅스 커널]]
[[lt:Linux (branduolys)]]
[[ml:ലിനക്സ് കെര്‍ണല്‍]]
[[ms:Linux (inti)]]
[[nl:Linuxkernel]]
[[nn:Linux-kjernen]]
[[no:Linux (kjerne)]]
[[oc:Nuclèu Linux]]
[[pl:Linux (jądro)]]
[[pt:Linux (núcleo)]]
[[ro:Linux (nucleul)]]
[[ru:Linux (ядро)]]
[[scn:Linux (nùcliu)]]
[[si:ලිනක්ස් ක'නලය]]
[[sk:Linux (jadro)]]
[[sv:Linux (kärna)]]
[[ta:லினக்ஸ் கருனி]]
[[th:ลินุกซ์ เคอร์เนล]]
[[tr:Linux çekirdeği]]
[[uk:Ядро Linux]]
[[vi:Hạt nhân Linux]]
[[zh:Linux内核]]

Aktuelle Version vom 3. Mai 2025, 07:59 Uhr

Linux
Startender Systemkern (Version 3.0.0) in Debian
Entwickler Linus Torvalds
Lizenz(en) GNU General Public License, Version 2[1][2][3], proprietäre Lizenz[2]
Erstveröff. 17. September 1991
Akt. Version 6.14.6[4] vom 9. Mai 2025
Architektur(en) IA-32 (inkl. x64), Alpha AXP, SPARC, Motorola 68k, PowerPC, POWER, Arm, Hitachi SuperH, z Systems, MIPS, PA-RISC und weitere
Sprache(n) Englisch
kernel.org

Linux (deutsch [ˈliːnʊks]) ist ein Betriebssystem-Kernel, der im Jahr 1991 von Linus Torvalds ursprünglich für die 32-Bit-x86-Architekturi386“, retronymIA-32“, entwickelt und ab Version 0.12 unter der freien GNU General Public License (GPL) veröffentlicht wird.[5] Er ist heute Teil einer Vielzahl von Betriebssystemen.

Der Name Linux setzt sich zusammen aus dem Namen Linus und einem X für das als Vorbild dienende Unix. Er bezeichnet im weiteren Sinne mittlerweile nicht mehr nur den Kernel selbst, sondern übertragen davon ganze Linux-basierte Systeme und Distributionen. Dies führte zum GNU/Linux-Namensstreit.

Grundlegende Technologie

[Bearbeiten | Quelltext bearbeiten]
Grob-Struktur des Linux-Kernels

Aufgaben des Kernels

[Bearbeiten | Quelltext bearbeiten]

Der Kernel eines Betriebssystems bildet die hardwareabstrahierende Schicht, das heißt, er stellt der auf dieser Basis aufsetzenden Software eine einheitliche Schnittstelle (API) zur Verfügung, die unabhängig von der Rechnerarchitektur ist. Die Software kann so immer auf die Schnittstelle zugreifen und braucht die Hardware selbst, die sie nutzt, nicht genauer zu kennen. Linux ist dabei ein modularer monolithischer Kernel und zuständig für Speicherverwaltung, Prozessverwaltung, Multitasking, Lastverteilung, Sicherheitserzwingung und Eingabe/Ausgabe-Operationen auf verschiedenen Geräten.

Programmiersprache

[Bearbeiten | Quelltext bearbeiten]

Linux ist fast ausschließlich in der Programmiersprache C geschrieben, wobei einige GNU-C-Erweiterungen benutzt werden. Ausnahmen bilden die architekturabhängigen Teile des Codes (im Verzeichnis arch innerhalb der Linux-Sourcen), wie zum Beispiel der Beginn des Systemstarts (Bootvorgang), der in Assemblersprache geschrieben ist, sowie die Programmiersprache Rust, die seit der Version 6.1 erstmals unterstützt[6] und seit 6.8 erstmals für einzelne Gerätetreiber genutzt wird.[7]

Bei einem strikt monolithischen Kernel wird der gesamte Quellcode inklusive aller Treiber in das Kernel-Image (den ausführbaren Kernel) kompiliert. Im Gegensatz dazu kann Linux Module benutzen, die während des Betriebs geladen und wieder entfernt werden können. Damit wird die Flexibilität erreicht, um unterschiedlichste Hardware ansprechen zu können, ohne sämtliche (auch nicht benötigte) Treiber und andere Systemteile im Arbeitsspeicher halten zu müssen.

Sind Teile der Hardwarespezifikationen nicht genügend offengelegt, so stützt sich Linux notfalls über spezielle VM86-Modi auch auf das BIOS des Systems, u. a. auf die Erweiterungen gemäß den Standards APM, ACPI und VESA. Um unter diesen Voraussetzungen x86-kompatible Hardware z. B. auf der DEC-Alpha-Plattform zu betreiben, werden teilweise sogar Emulatoren zur Ausführung entsprechenden ROM-Codes verwendet. Linux selbst übernimmt das System beim Bootprozess typischerweise in dem Moment, in dem der Bootloader der Systemfirmware („BIOS“) erfolgreich war und daher alle Systeminitialisierungen des BIOS abgeschlossen sind.

Der Kernel ist ein Betriebssystemkern und darf nicht als das eigentliche Betriebssystem verstanden werden. Dieses setzt sich aus dem Kernel und weiteren grundlegenden Bibliotheken und Programmen (die den Computer erst bedienbar machen) zusammen.

Siehe auch: Gerätedatei, Network Block Device, Netfilter, Netzwerk-Scheduler, Prozess-Scheduler, Linux (Betriebssystem)

Linux Standard Base

Man kann zwischen vier Schnittstellen unterscheiden, die das Zusammenwirken von entweder kernelinternen Komponenten untereinander oder von Kernel und externer Software ermöglichen. Die Stabilität der externen Programmierschnittstelle wird garantiert, das heißt, dass Quellcode grundsätzlich ohne jegliche Veränderungen portierbar ist. Die Stabilität der internen Programmierschnittstellen wird nicht garantiert, diese können zehn Jahre oder wenige Monate stabil bleiben. Da der Linux-Kernel von einigen tausend Entwicklern vorangetrieben wird, ist der eventuell entstehende Aufwand zu verschmerzen.

Die Binärschnittstelle des Kernels ist unerheblich, auf das komplette Betriebssystem kommt es an. Die Linux Standard Base (LSB) soll es ermöglichen, kommerzielle Programme unverändert zwischen Linux Betriebssystemen zu portieren. Die interne Binärschnittstelle ist nicht stabil, und es gibt keinerlei Bestrebungen, dies zu ändern; dies hat zur Folge, dass ein internes Modul, welches z. B. für Linux 3.0 kompiliert worden ist, höchstwahrscheinlich nicht mit Linux-Kernel 3.1 zusammenarbeiten wird. Dies ist eine ganz bewusste Entscheidung.[8]

Anwenderprogramme (z.B. Textverarbeitung, Tabellenkalkulation oder Browser) User Mode
Complex Libraries (GLib, GTK+, Qt, SDL, EFL)
Simple Libraries sin, opendbm
C-Standard-Bibliothek: glibc open, exec, sbrk, socket, fopen, calloc
Systemaufrufe TRAP, CALL, BRK, INT (je nach Hardware) Kernel Mode
Kernel (Gerätetreiber, Prozesse, Netzwerk, Dateisystem)
Hardware (Prozessor(en), Speicher, Geräte)

Linux ist ein monolithischer Kernel. Die Treiber im Kernel und die Kernel-Module laufen im privilegierten Modus (x86: Ring 0), haben also unbeschränkten Zugriff auf die Hardware. Einige wenige Module des Kernels laufen im eingeschränkten Benutzermodus (x86: Ring 3). Die Level 1 und 2 der x86-Architektur werden von Linux nicht genutzt, da sie auf vielen anderen Architekturen nicht existieren und der Kernel auf allen unterstützten Architekturen im Wesentlichen gleich funktionieren soll.

Nahezu jeder Treiber kann auch als Modul zur Verfügung stehen und vom System dann dynamisch nachgeladen werden. Ausgenommen davon sind Treiber, die für das Starten des Systems verantwortlich sind, bevor auf das Dateisystem zugegriffen werden kann. Man kann allerdings den Kernel so konfigurieren, dass ein CramFS- oder Initramfs-Dateisystem vor dem tatsächlichen Root-Dateisystem geladen wird, welches die weiteren für den Startprozess notwendigen Module enthält. Dadurch kann die Kernelgröße verringert und die Flexibilität drastisch erhöht werden.

Im System laufende Programme bekommen wiederum vom Kernel Prozessorzeit zugewiesen. Jeder dieser Prozesse erhält einen eigenen, geschützten Speicherbereich und kann nur über Systemaufrufe auf die Gerätetreiber und das Betriebssystem zugreifen. Die Prozesse laufen dabei im Benutzermodus (user mode), während der Kernel im Kernel-Modus (kernel mode) arbeitet. Die Privilegien im Benutzermodus sind sehr eingeschränkt. Abstraktion und Speicherschutz sind nahezu vollkommen, ein direkter Zugriff wird nur sehr selten und unter genau kontrollierten Bedingungen gestattet. Dies hat den Vorteil, dass kein Programm z. B. durch einen Fehler das System zum Absturz bringen kann.

Linux stellt wie sein Vorbild Unix eine vollständige Abstraktion und Virtualisierung für nahezu alle Betriebsmittel bereit (z. B. virtueller Speicher, Illusion eines eigenen Prozessors usw.).

Die Tatsache, dass Linux nicht auf einem Microkernel basiert, war Thema eines berühmten Flame Wars zwischen Linus Torvalds und Andrew S. Tanenbaum. Anfang der 1990er Jahre, als Linux entwickelt wurde, galten monolithische Kernels als obsolet (Linux war zu diesem Zeitpunkt noch rein monolithisch). Die Diskussion und Zusammenfassungen sind im Artikel Geschichte von Linux näher beschrieben.

Durch Erweiterungen wie FUSE und durch die zunehmende Verwendung von Kernel-Prozessen fließen mittlerweile auch zahlreiche Microkernel-Konzepte in Linux ein.

Obwohl Linus Torvalds eigentlich nicht beabsichtigt hatte, einen portierbaren Kernel zu schreiben, hat sich Linux dank des GNU Compilers GCC weitreichend in diese Richtung entwickelt. Es ist inzwischen eines der am häufigsten portierten Systeme (nur noch NetBSD läuft auf etwa gleich vielen Architekturen). Das Repertoire reicht dabei von eher selten anzutreffenden Betriebsumgebungen wie dem iPAQ-Handheld-Computer, Digitalkameras oder Großrechnern wie IBMs System z bis hin zu normalen PCs.

Obwohl die Portierung auf die S/390 ursprünglich ein vom IBM-Management nicht genehmigtes Unterfangen war (siehe auch: Skunk works), plante IBM auch die IBM-Supercomputergeneration Blue Gene mit einem eigenen Linux-Port auszustatten.

Ursprünglich hatte Torvalds eine ganz andere Art von Portierbarkeit für sein System angestrebt, nämlich die Möglichkeit, freie GPL- und andere quelloffene Software leicht unter Linux kompilieren zu können. Dieses Ziel wurde bereits sehr früh erreicht und macht sicherlich einen guten Teil des Erfolges von Linux aus, da es jedem eine einfache Möglichkeit bietet, auf einem freien System freie Software laufen zu lassen.

Die ersten Architekturen, auf denen Linux lief, waren die von Linus Torvalds verwendeten Computer:[9]

  • IA-32 (x86 ab dem i386) – Linus hatte ab 1991 einen PC mit Intel-386DX-33-MHz-Prozessor, 4 MB RAM und einer 40-MB-Festplatte.
  • Alpha – Torvalds arbeitete von 1994 bis 1995 an der Portierung auf die 64-Bit-Alpha-Architektur (auf einem DEC-Alpha-Rechner, den er als Leihgabe erhalten hatte).

Damit war Linux sehr früh 64-Bit-fähig (Linux 1.2 erschien 1995) und durch die Portierung auf Alpha war der Weg für weitere Portierungen frei. Zeitgleich arbeitete der Student Dave Miller ab 1993 an der Portierung auf SPARC von Sun Microsystems, einer damals weit verbreiteten Architektur. Doch lief Linux 2.0 von Mitte 1996 offiziell auf IA-32 und Alpha, konnte aber bereits SMP.

Mit Linux 2.2 vom Januar 1999 kamen folgende Ports hinzu:[9]

Mit Linux 2.4 vom Januar 2001 kamen schließlich folgende Architekturen hinzu:[9]

Trotz der unterstützten Befehlssatzarchitekturen (englisch Instruction Set Architecture, kurz ISA) ist für die Lauffähigkeit mehr nötig, sodass Linux gegenwärtig auf u. a. folgenden Plattformen und Architekturen läuft:

Binärschnittstellen der Arm-Architektur

[Bearbeiten | Quelltext bearbeiten]

Linux unterstützt zwei verschiedene Binärschnittstellen für Arm-Prozessoren. Die ältere Binärschnittstelle wird mit dem Akronym OABI (old application binary interface) bezeichnet und unterstützt die Prozessorarchitekturen bis einschließlich ARMv4, während die neuere Binärschnittstelle, die mit EABI (embedded application binary interface) bezeichnet wird, die Prozessorarchitekturen ab einschließlich ARMv4 unterstützt. Der bedeutendste Unterschied der Binärschnittstellen in Bezug auf Systemleistung ist die sehr viel bessere Unterstützung von Software-emulierten Gleitkommarechnungen durch EABI.[12]

User Mode Linux

[Bearbeiten | Quelltext bearbeiten]

Ein besonderer Port ist das User Mode Linux. Prinzipiell handelt es sich dabei um einen Port von Linux auf sein eigenes Systemcall-Interface. Dies ermöglicht es, einen Linux-Kernel als normalen Prozess auf einem laufenden Linux-System zu starten. Der User-Mode-Kernel greift dann nicht selbst auf die Hardware zu, sondern reicht entsprechende Anforderungen an den echten Kernel durch. Durch diese Konstellation werden „Sandkästen“ ähnlich den virtuellen Maschinen von Java oder den jails von FreeBSD möglich, in denen ein normaler Benutzer Root-Rechte haben kann, ohne dem tatsächlichen System schaden zu können.

µClinux ist eine Linux-Variante für Computer ohne Memory Management Unit (MMU) und kommt vorwiegend auf Mikrocontrollern und eingebetteten Systemen zum Einsatz. Seit Linux-Version 2.6 ist µClinux Teil des Linux-Projektes.

Entwicklungsprozess

[Bearbeiten | Quelltext bearbeiten]
Linus Torvalds (2014)

Die Entwicklung von Linux liegt durch die GNU General Public License und durch ein sehr offenes Entwicklungsmodell nicht in der Hand von Einzelpersonen, Konzernen oder Ländern, sondern in der Hand einer weltweiten Gemeinschaft vieler Programmierer, die sich hauptsächlich über das Internet austauschen. Bei der Entwicklung kommunizieren die Entwickler fast ausschließlich über E-Mail, da Linus Torvalds behauptet, dass so die Meinungen nicht direkt aufeinander prallen. In vielen Mailinglisten, aber auch in Foren und im Usenet besteht für jedermann die Möglichkeit, die Diskussionen über den Kernel zu verfolgen, sich daran zu beteiligen und auch aktive Beiträge zur Entwicklung zu leisten. Durch diese unkomplizierte Vorgehensweise ist eine schnelle und stetige Entwicklung gewährleistet, die auch die Möglichkeit mit sich bringt, dass jeder dem Kernel Fähigkeiten zukommen lassen kann, die er benötigt.

Eingegrenzt wird dies nur durch die Kontrolle von Linus Torvalds und einigen besonders verdienten Programmierern, die das letzte Wort über die Aufnahme von Verbesserungen und Patches in die offizielle Version haben. Manche Linux-Distributoren bauen auch eigene Funktionen in den Kernel ein, die im offiziellen Kernel (noch) nicht vorhanden sind.

Änderungen der Herkunftskontrolle

[Bearbeiten | Quelltext bearbeiten]

Der Entwicklungsprozess des Kernels ist wie der Kernel selbst ebenfalls immer weiterentwickelt worden. So führte der Rechtsprozess der SCO Group um angeblich illegal übertragenen Code in Linux zur Einführung eines „Linux Developer’s Certificate of Origin“, das von Linus Torvalds und Andrew Morton bekanntgegeben wurde.[13] Diese Änderung griff das Problem auf, dass nach dem bis dahin gültigen Modell des Linux-Entwicklungsprozesses die Herkunft einer Erweiterung oder Verbesserung des Kernels nicht nachvollzogen werden konnte.

“These days, most of the patches in the kernel don't actually get sent directly to me. That not just wouldn't scale, but the fact is, there's a lot of subsystems I have no clue about, and thus no way of judging how good the patch is. So I end up seeing mostly the maintainers of the subsystem, and when a bug happens, what I want to see is the maintainer name, not a random developer who I don't even know if he is active any more. So at least for me, the _chain_ is actually mostly more important than the actual originator.

There is also another issue, namely the fact than when I (or anybody else, for that matter) get an emailed patch, the only thing I can see directly is the sender information, and that's the part I trust. When Andrew sends me a patch, I trust it because it comes from him – even if the original author may be somebody I don't know. So the _path_ the patch came in through actually documents that chain of trust – we all tend to know the „next hop“, but we do _not_ necessarily have direct knowledge of the full chain.

So what I’m suggesting is that we start „signing off“ on patches, to show the path it has come through, and to document that chain of trust. It also allows middle parties to edit the patch without somehow „losing“ their names – quite often the patch that reaches the final kernel is not exactly the same as the original one, as it has gone through a few layers of people.”

„Zurzeit werden die meisten Patches für den Kernel nicht direkt an mich gesandt. Das wäre einfach nicht machbar. Tatsache ist, dass es eine Menge Untersysteme gibt, mit denen ich überhaupt nicht vertraut bin und ich somit keine Möglichkeit habe zu entscheiden, wie gut der Patch ist. Deshalb läuft es meist darauf hinaus, die Pfleger (Maintainer) des Untersystemes zu treffen. Falls ein Fehler auftritt, will ich den Namen eines Pflegers und nicht irgendeines Entwicklers sehen, von dem ich nicht einmal weiß, ob er noch aktiv ist. Daher ist für mich auf jeden Fall die _Kette_ wichtiger als der tatsächliche Urheber. Auch gibt es ein anderes Problem, nämlich dass ich, falls man mir (oder irgendjemand anderem) einen Patch über E-Mail schickt, einzig die Senderinformation direkt sehen kann, und das ist der Teil, dem ich traue. Wenn Andrew mir einen Patch schickt, vertraue ich dem Patch, weil er von Andrew kommt – auch wenn der eigentliche Urheber jemand ist, den ich nicht kenne. Also belegt tatsächlich der _Weg_, den der Patch zu mir nahm, diese Kette des Vertrauens – wir alle neigen dazu, das jeweils nächste „Glied“ zu kennen, aber _nicht_ unbedingt unmittelbares Wissen über die gesamte Kette zu haben. Was ich also vorschlage ist, dass wir anfangen, Patches „abzuzeichnen“, um den Weg, den sie genommen haben, aufzuzeigen und diese Kette des Vertrauens zu dokumentieren. Das erlaubt es darüber hinaus vermittelnden Gruppen, den Patch zu verändern, ohne dass dabei der Name von jemanden „auf der Strecke bleibt“ – ziemlich oft ist die Patchversion, die letztendlich in den Kernel aufgenommen wird, nicht genau die ursprüngliche, ist sie doch durch einige Entwicklerschichten gegangen.“

Linus Torvalds: Linux-Kernel Archive, 23. Mai 2004[14]

Das Versionskontrollsystem Git

[Bearbeiten | Quelltext bearbeiten]

Die Versionskontrolle des Kernels unterliegt dem Programm Git. Dies wurde speziell für den Kernel entwickelt und auf dessen Bedürfnisse hin optimiert. Es wurde im April 2005 eingeführt, nachdem sich abgezeichnet hatte, dass das alte Versionskontrollsystem BitKeeper nicht mehr lange für die Kernelentwicklung genutzt werden konnte.

Kernel-Versionen

[Bearbeiten | Quelltext bearbeiten]

Auf der Website kernel.org werden alle alten und neuen Kernel-Versionen archiviert. Die dort befindlichen Referenzkernel werden auch als Vanilla-Kernel bezeichnet (von umgangssprachlich engl. vanilla für Standard bzw. ohne Extras im Vergleich zu Distributionskernels). Auf diesem bauen die Distributionskernel auf, die von den einzelnen Linux-Distributionen um weitere Funktionen ergänzt werden. Die Kernel-Version des geladenen Betriebssystems kann mit dem Syscall uname abgefragt werden.

Versionsnummern-Schema

[Bearbeiten | Quelltext bearbeiten]

Die frühen Kernelversionen (0.01 bis 0.99) hatten noch kein klares Nummerierungsschema. Version 1.0 sollte die erste „stabile“ Linux-Version werden.

Beginnend mit Version 1.0 folgten die Versionsnummern von Linux einem bestimmten Schema:

Die erste Ziffer wurde nur bei grundlegenden Änderungen in der Systemarchitektur angehoben. Während der Entwicklung des 2.5er-Kernels kam wegen der relativ grundlegenden Änderungen, verglichen mit dem 2.4er-Kernel, die Diskussion unter den Kernel-Programmierern auf, den nächsten Produktionskernel als 3.0 zu deklarieren. Torvalds war aber aus verschiedenen Gründen dagegen, sodass der resultierende Kernel als 2.6 bezeichnet wurde.

Die zweite Ziffer gab das jeweilige „Majorrelease“ an. Stabile Versionen (Produktivkernel) wurden von den Entwicklern durch gerade Ziffern wie 2.2, 2.4 und 2.6 gekennzeichnet, während die Testversionen (Entwicklerkernel) immer ungerade Ziffern trugen, wie zum Beispiel 2.3 und 2.5; diese Trennung ist aber seit Juli 2004 ausgesetzt, es gab keinen Entwicklerkernel mit der Nummer 2.7, stattdessen wurden die Änderungen laufend in die 2.6er-Serie eingearbeitet.

Zusätzlich bezeichnet eine dritte Zahl das „Minorrelease“, die eigentliche Version. Werden neue Funktionen hinzugefügt, steigt die dritte Zahl an. Der Kernel wird damit zum Beispiel mit einer Versionsnummer wie 2.6.7 bestimmt.

Um die Korrektur eines schwerwiegenden NFS-Fehlers schneller verbreiten zu können, wurde mit der Version 2.6.8.1 erstmals eine vierte Ziffer eingeführt. Seit März 2005 (Kernel 2.6.11) wird diese Nummerierung offiziell verwendet.[15] So ist es möglich, die Stabilität des Kernels trotz teilweise sehr kurzer Veröffentlichungszyklen zu gewährleisten und Korrekturen von kritischen Fehlern innerhalb weniger Stunden in den offiziellen Kernel zu übernehmen – wobei sich die vierte Ziffer erhöht (z. B. von 2.6.11.1 auf 2.6.11.2). Die Minorreleasenummer, also die dritte Ziffer, wird hingegen nur bei Einführung neuer Funktionen hochgezählt.

Im Mai 2011 erklärte Linus Torvalds, die nach der Version 2.6.39 kommende Version nicht 2.6.40, sondern 3.0 zu benennen.[16] Als Grund dafür führte er an, dass die Versionsnummern seiner Meinung nach zu hoch wurden. Die Versionsnummer 3 stehe gleichzeitig für das dritte Jahrzehnt, welches für den Linux-Kernel mit seinem 20. Geburtstag anfange.

Bei neuen Versionen wird seitdem die zweite Ziffer erhöht und die dritte steht – anstelle der vierten – für Bugfixreleases.

Im Februar 2015 erhöhte Torvalds auf Version 4.0 statt Version 3.20,[17] nachdem er auf Google+ Meinungen hierzu eingeholt hatte.[18] Seit März 2019 ist Linux 5.0 freigegeben. Dabei hat der Sprung von der letzten Versionsnummer 4.20 auf 5.0 keine tiefergehende Bedeutung. Auch den Sprung von 5.19 auf 6.0 begründete Linus lakonisch damit, dass er sich wieder vor großen Zahlen zu fürchten beginne.[19]

Entwicklerversion

[Bearbeiten | Quelltext bearbeiten]

Neue Funktionen finden sich im „-mm“-Kernel des Kernelentwicklers Andrew Morton und werden anschließend in den Hauptzweig von Torvalds übernommen. Somit werden große Unterschiede zwischen Entwicklungs- und Produktionskernel und damit verbundene Portierungsprobleme zwischen den beiden Serien vermieden. Durch dieses Verfahren gibt es auch weniger Differenzen zwischen dem offiziellen Kernel und den Distributionskernel (früher wurden Features des Entwicklungszweiges von den Distributoren häufig in ihre eigenen Kernels rückintegriert). Allerdings litt 2004/2005 die Stabilität des 2.6er-Kernels unter den häufig zu schnell übernommenen Änderungen. Ende Juli 2005 wurde deshalb ein neues Entwicklungsmodell beschlossen, das nach dem Erscheinen der Version 2.6.13 erstmals zur Anwendung kam: Neuerungen werden nur noch in den ersten zwei Wochen der Kernelentwicklung angenommen, wobei anschließend eine Qualitätssicherung bis zum endgültigen Erscheinen der neuen Version erfolgt.

Pflege der Kernel-Versionen

[Bearbeiten | Quelltext bearbeiten]

Während Torvalds die neuesten Entwicklungsversionen veröffentlicht, wurde die Pflege der älteren stabilen Versionen an andere Programmierer abgegeben. Gegenwärtig ist dafür Greg Kroah-Hartman verantwortlich – mit Ausnahme des von Ben Hutchings betreuten 3.16-Zweigs. Zusätzlich zu diesen offiziellen und über Kernel.org oder einen seiner Mirrors zu beziehenden Kernel-Quellcodes kann man auch alternative „Kernel-Trees“ aus anderen Quellen benutzen. Distributoren von Linux-basierten Betriebssystemen pflegen meistens ihre eigenen Versionen des Kernels und beschäftigen zu diesem Zwecke fest angestellte Kernel-Hacker, die ihre Änderungen meist auch in die offiziellen Kernels einfließen lassen.

Distributions-Kernel sind häufig intensiv gepatcht, um auch Treiber zu enthalten, die noch nicht im offiziellen Kernel enthalten sind, von denen der Distributor aber glaubt, dass seine Kundschaft sie benötigen könnte und die notwendige Stabilität respektive Fehlerfreiheit dennoch gewährleistet ist.

Versionen mit Langzeitunterstützung

[Bearbeiten | Quelltext bearbeiten]

Folgende Versionen werden besonders lange mit Support (Long Term Support) versorgt:[20]

Version Veröffentlichung Support-Ende (EOL)
5.4 24. Nov. 2019 Dezember 2025
5.10 13. Dez. 2020 Dezember 2026
5.15 31. Okt. 2021 Dezember 2026
6.1 11. Dez. 2022 Dezember 2027
6.6 29. Okt. 2023 Dezember 2026
6.12 18. Nov. 2024 Dezember 2026

Versionsgeschichte

[Bearbeiten | Quelltext bearbeiten]
Entwicklung der Anzahl Quelltextzeilen

Das folgende Schaubild stellt einzelne Versionen des Linux-Kernels anhand der Erscheinungsdaten auf einer Zeittafel angeordnet dar und soll dem Überblick dienen.

Versionsgeschichte bis Version 2.6

[Bearbeiten | Quelltext bearbeiten]
Zweig Version Veröffentlichung[21] Dateien (a) Quellcode-
zeilen
 (b)
Größe
in kB (c)
Bemerkungen
Ältere Version; nicht mehr unterstützt: 0.01 17. September 1991 88 8.413 230 erste Veröffentlichung; startete auf Systemen mit Floppy-Diskettenlaufwerk und 386er-Prozessor, lud dabei die Treiber für das Minix-Dateisystem und eine finnische Tastatur, sowie als einziges Anwendungsprogramm den Kommandozeileninterpreter bash[22]
1.0 Ältere Version; nicht mehr unterstützt: 1.0.0 13. März 1994 563 170.581 1.259 erste „kommerziell verwendbare“ Version. Tatsächlich sind jedoch die Buchstaben der letzten Version 0.99z ausgegangen, so führte man verfrüht die Version 1.0 ein.
1.1 Ältere Version; nicht mehr unterstützt: 1.1.0 6. April 1994 561 170.320 1.256 Entwicklungsversion
Ältere Version; nicht mehr unterstützt: 1.1.95 2. März 1995 2.301
1.2 Ältere Version; nicht mehr unterstützt: 1.2.0 7. März 1995 909 294.623 2.301 erste Portierungen auf weitere Prozessorarchitekturen, mit Alpha, MIPS und SPARC[23]
Ältere Version; nicht mehr unterstützt: 1.2.13 2. August 1995 2.355
1.3 Ältere Version; nicht mehr unterstützt: 1.3.0 12. Juni 1995 992 323.581 2.558 Entwicklungsversion mit erster Unterstützung für Mehrprozessorsysteme[23]
Ältere Version; nicht mehr unterstützt: 1.3.100 10. Mai 1996 5.615
2.0 Ältere Version; nicht mehr unterstützt: 2.0.0 9. Juni 1996 2.015 716.119 5.844 erste Unterstützung für symmetrische Mehrprozessorsysteme[23], Einführung von Kernel-Modulen.
Ältere Version; nicht mehr unterstützt: 2.0.40 8. Februar 2004 7.551
2.1 Ältere Version; nicht mehr unterstützt: 2.1.0 30. September 1996 1.727 735.736 6.030 Entwicklungsversion
Ältere Version; nicht mehr unterstützt: 2.2.0-pre9 21. Januar 1999 13.077
2.2 Ältere Version; nicht mehr unterstützt: 2.2.0 26. Januar 1999 4.599 1.676.182 13.080 erste Unterstützung für das Netzwerkprotokoll IPv6 sowie Portierung auf die Plattformen UltraSPARC und PA-RISC[23]
Ältere Version; nicht mehr unterstützt: 2.2.26 24. Februar 2004 19.530
2.3 Ältere Version; nicht mehr unterstützt: 2.3.0 11. Mai 1999 4.721 1.763.358 13.804 Entwicklungsversion
Ältere Version; nicht mehr unterstützt: 2.3.99-pre9 23. Mai 2000 20.882
2.4 Ältere Version; nicht mehr unterstützt: 2.4.0 4. Januar 2001 8.187 3.158.560 24.379 erste Unterstützung für den Energieverwaltungsstandard ACPI und für den Datenbus USB,[23] Large File Support[24], Einführung des Netfilter und der iptables;[25] letzter gepflegter Zweig vor 2.6[26]
Ältere Version; nicht mehr unterstützt: 2.4.37 2. Dezember 2008 38.735 Letzte Version war 2.4.37.11 am 18. Dezember 2010
2.5 Ältere Version; nicht mehr unterstützt: 2.5.0 23. November 2001 9.893 3.833.603 29.405 Entwicklungsversion
Ältere Version; nicht mehr unterstützt: 2.5.75 10. Juli 2003 40.969
2.6 Ältere Version; nicht mehr unterstützt: 2.6.0 18. Dezember 2003 21.279 8.102.486 41.614 neues Versionsschema, dabei wurden die bisherigen Entwicklerzweige durch einen stetigen Entwicklungsprozess ersetzt[23]
→ für alle nachfolgenden Versionen siehe Abschnitt „Versionsgeschichte ab Version 2.6“
Legende:
Alte Version
Ältere Version; noch unterstützt
Aktuelle Version
Aktuelle Vorabversion
Zukünftige Version

Versionsgeschichte ab Version 2.6

[Bearbeiten | Quelltext bearbeiten]

Bei Betrachtung der zuletzt erschienenen Versionen (siehe Tabelle) erfolgt die Entwicklung einer neuen Kernel-Version in durchschnittlich 82 Tagen. Der Kernel wird hierbei im Durchschnitt um 768 Dateien und 325.892 Quelltextzeilen (englisch Lines of Code) erweitert. Das mit dem Datenkompressionsprogramm gzip komprimierte tar-Archiv (.tar.gz) wächst im Mittel um rund 2 Megabyte mit jeder veröffentlichten Hauptversion.

Version Veröffentlichung[21] Anzahl der Dateien (a) Quelltext-
zeilen
 (b)
Größe
in kB (c)
Zeitraum
in Tagen (d)
Bemerkungen
Ältere Version; nicht mehr unterstützt: 2.6.13 28. Aug. 2005 u. a. wurde Inotify aufgenommen[27]
Ältere Version; nicht mehr unterstützt: 2.6.20 4. Feb. 2007 21.280 8.102.486 54.548 66 erste Unterstützung für die Virtualisierungstechnik KVM[28]
Ältere Version; nicht mehr unterstützt: 2.6.21 26. Apr. 2007 21.614 8.246.470 55.329 80
Ältere Version; nicht mehr unterstützt: 2.6.22 8. Juli 2007 22.411 8.499.363 56.914 74
Ältere Version; nicht mehr unterstützt: 2.6.23 9. Okt. 2007 22.530 8.566.554 57.404 93
Ältere Version; nicht mehr unterstützt: 2.6.24 24. Jan. 2008 23.062 8.859.629 59.079 107
Ältere Version; nicht mehr unterstützt: 2.6.25 17. Apr. 2008 23.810 9.232.484 61.518 83
Ältere Version; nicht mehr unterstützt: 2.6.26 13. Juli 2008 24.270 9.411.724 62.550 88
Ältere Version; nicht mehr unterstützt: 2.6.27 9. Okt. 2008 24.354 9.709.868 63.721 88 wurde nachträglich mit Unterstützung für neue Hardware (wie SAS) erweitert;[29]
Dieser Zweig hatte Long Term Support, die letzte Version war 2.6.27.62 am 17. März 2012
Ältere Version; nicht mehr unterstützt: 2.6.28 24. Dez. 2008 25.255 10.195.507 66.766 76
Ältere Version; nicht mehr unterstützt: 2.6.29 23. März 2009 26.668 11.010.647 71.977 89 Aufnahme des Btrfs[30][31]
Ältere Version; nicht mehr unterstützt: 2.6.30 10. Juni 2009 27.879 11.637.173 75.768 78 USB-3.0-Unterstützung
Ältere Version; nicht mehr unterstützt: 2.6.31 9. Sep. 2009 29.111 12.046.317 78.279 92 Unterstützung für Festplatten mit nativen 4K-Sektoren (auch bekannt als Advanced Format)
Ältere Version; nicht mehr unterstützt: 2.6.32 3. Dez. 2009 30.485 12.610.030 81.901 84 Dieser LTS-Zweig wurde von Willy Tarreau betreut, die letzte Version war 2.6.32.71 am 12. März 2016
Ältere Version; nicht mehr unterstützt: 2.6.33 24. Feb. 2010 31.565 12.990.041 84.533 83 bildet die Grundlage für einen Echtzeit-Zweig;[32]
Letzte Version war 2.6.33.20 am 7. November 2011[33]
Ältere Version; nicht mehr unterstützt: 2.6.34 16. Mai 2010 32.297 13.320.934 86.520 82 Grafiktreiber für neuere AMD-Radeon-GPUs und die Grafikkerne von einigen erst Anfang nächsten Jahres erwarteten Intel-Prozessoren, neue Dateisysteme: LogFS und Ceph;[34] viele Änderungen an den Dateisystemen Btrfs, ext4, NILFS2, SquashFS und XFS,[35] dem SCSI-Subsystem und dem Architektur-Code für Arm-, Blackfin- und MicroBlaze-CPUs;[36] bessere Unterstützung für neue und ältere AMD- und Intel-Chips; größere Umbaumaßnahmen am Nouveau-Treiber für Nvidia-Grafik;[37]
Dieser LTS-Zweig wurde von Paul Gortmaker betreut, die letzte Version war 2.6.34.15 am 10. Februar 2014
Ältere Version; nicht mehr unterstützt: 2.6.35 1. Aug. 2010 33.316 13.545.604 88.301 77 neu sind unter anderem ein verbesserter Netzwerkdurchsatz, defragmentierbarer Arbeitsspeicher und die Unterstützung für die Turbo-Core-Funktion moderner AMD-Prozessoren;[38] die Unterstützung für die Stromsparfunktionen von Radeon-Grafikchips wurde verbessert, sowie die neuen H.264-Dekodierfunktionen für den Grafikkern in Intels Core-i5-Prozessoren (auch Ironlake genannt);[39]
Letzte Version war 2.6.35.14 am 13. März 2012[40]
Ältere Version; nicht mehr unterstützt: 2.6.36 20. Okt. 2010 34.301 13.499.457 88.707 80 neu sind – im auch „Flesh-Eating Bats with Fangs“ (englisch für „Fleischfressende Fledermäuse mit Reißzähnen“) genannten 36er Zweig[41]  – unter anderem das Sicherheits-Framework AppArmor, die Schnittstelle „LIRC“ (für das in Version 2.6.35 eingeführte System zur Nutzung von Infrarot-Fernbedienungen) und eine verbesserte Energieverwaltung für Grafikprozessoren;[42] Unterstützung für Echtzeit-Virenscanner;[43]
Letzte Version war 2.6.36.4 am 17. Februar 2011
Ältere Version; nicht mehr unterstützt: 2.6.37 5. Jan. 2011 35.186 13.916.632 92.474 76 neu sind, neben den üblichen zusätzlichen Treibern (u. a. für USB 3.0), eine verbesserte Skalierung und Virtualisierung für Mehrkernprozessoren;[44]
Letzte Version war 2.6.37.6 am 27. März 2011
Ältere Version; nicht mehr unterstützt: 2.6.38 15. März 2011 35.864 14.208.866 94.144 69 Unterstützung für die AMD-Radeon-HD-6000-Serie und für AMDs APUs,[45] sowie Verbesserungen für Audio- und Video-Verarbeitung als auch für berührungsempfindliche Bildschirme;[46]
Letzte Version war 2.6.38.8 am 3. Juni 2011
Ältere Version; nicht mehr unterstützt: 2.6.39 19. Mai 2011 36.705 14.533.582 95.994 65 Unterstützung für Firewall-IP sets,[47][48] der Big Kernel Lock wird entfernt;[49]
Letzte Version war 2.6.39.4 am 3. August 2011
Ältere Version; nicht mehr unterstützt: 3.0 22. Juli 2011 36.781 14.646.952 96.676 64 neues Versionsnummernschema,[50] zudem neue Treiber u. a. für (virtuelle) Netzwerkgeräte und den Fernseh-Standard DVB-T2, sowie allgemein verbesserte Virtualisierung (u. a. durch abschließende Arbeiten an dem Hypervisor Xen) und viele kleine Verbesserungen (wie z. B. Schreib- und Lösch-Optimierungen für Dateisysteme);[51][52]
Dieser LTS-Zweig wurde von Greg Kroah-Hartman betreut, die letzte Version war 3.0.101 am 22. Oktober 2013
Ältere Version; nicht mehr unterstützt: 3.1 24. Okt. 2011 37.084 14.770.469 97.334 94 neu ist u. a. die Unterstützung der Prozessor-Plattform OpenRISC;[53]
Letzte Version war 3.1.10 am 18. Januar 2012
Ältere Version; nicht mehr unterstützt: 3.2 4. Jan. 2012 37.617 14.998.651 ≈ 62.600 73 neu ist u. a. die Unterstützung für die Prozessor-Architektur Hexagon des Unternehmens Qualcomm; zudem wurden u. a. einige Netzwerktreiber in das zugehörige Subsystem ausgelagert[33]
Dieser LTS-Zweig wurde von Ben Hutchings betreut, die letzte Version war 3.2.102 am 31. Mai 2018
Ältere Version; nicht mehr unterstützt: 3.3 18. März 2012 38.082 15.166.074 ≈ 75.300 74 neu ist u. a. die Unterstützung für die Android-Plattform;[54]
Letzte Version war 3.3.8 am 1. Juni 2012
Ältere Version; nicht mehr unterstützt: 3.4 20. Mai 2012 38.566 15.383.860 ≈ 64.100 63 neunte LTS-Freigabe; neu ist u. a. die Unterstützung des Ruhezustand-Modus RC6;[55][56][57]
Dieser LTS-Zweig wurde zuletzt von Li Zefan betreut, die letzte Version war 3.4.113 am 26. Oktober 2016
Ältere Version; nicht mehr unterstützt: 3.5 21. Juli 2012 39.096 15.596.378 ≈ 77.200 62 die Unterstützung für die veralteten Netzwerk-Standards Token Ring und Econet wurde entfernt;[58]
Letzte Version war 3.5.7 am 12. Oktober 2012
Ältere Version; nicht mehr unterstützt: 3.6 30. Sep. 2012 39.733 15.868.036 ≈ 78.500 71 u. a. wurde die Energiespar- oder Schlaffunktion, für den Bereitschaftsbetrieb und Ruhezustand des gesamten Systems, weiterentwickelt;[59]
Letzte Version war 3.6.11 am 17. Dezember 2012
Ältere Version; nicht mehr unterstützt: 3.7 11. Dez. 2012 40.905 16.191.690 ≈ 79.800 71 u. a. NAT für IPv6, Unterstützung für den Arm-64-Bit-Befehlssatz und Ext4-Größenänderungen für Laufwerke die größer sind als 16 Terabyte, größere Veränderungen an den Grafiktreibern für Nvidia-, Intel- und AMD-Grafik und verbesserte Hardware-Unterstützung für Helligkeitsregelung und Stromsparfunktionen von Soundkarten;[60]
Letzte Version war 3.7.10 am 27. Februar 2013
Ältere Version; nicht mehr unterstützt: 3.8 18. Feb. 2013 41.520 16.416.874 84.623 70 u. a. wurde die Unterstützung für das Dateisystem F2FS eingefügt[61] und die Unterstützung für Intel 80386-Prozessoren entfernt;[62] soll als Basis für die nächste Android-Version dienen;[63]
Letzte Version war 3.8.13 am 11. Mai 2013
Ältere Version; nicht mehr unterstützt: 3.9 29. Apr. 2013 42.423 16.686.879 ≈ 82.000 69 u. a. wurde die Unterstützung für 32-Bit-Prozessoren der Baureihe HTP (von Meta)[64] sowie ARC 700 (von Synopsys)[65] hinzugefügt und die Treiber für das Dateisystem Btrfs um eine erste Unterstützung für Raid 5 und 6 erweitert;[63][66]
Letzte Version war 3.9.11 am 21. Juli 2013
Ältere Version; nicht mehr unterstützt: 3.10 30. Juni 2013 43.016 16.955.489 ≈ 69.900 63 unter anderem bessere Unterstützung für den Unified Video Decoder (UVD) von AMD-Radeon-GPUs und bessere Unterstützung von Nvidia Tegra; Zudem wurden die Echtzeitfähigkeiten verbessert sowie die Nutzung von SSDs als Cache für Festplatten ermöglicht.[67] Neu ist auch der Treiber für die Hochgeschwindigkeitsübertragungstechnologie InfiniBand;[68]
Dieser LTS-Zweig wurde zuletzt von Willy Tarreau betreut, die letzte Version war 3.10.108 am 4. November 2017
Ältere Version; nicht mehr unterstützt: 3.11 2. Sep. 2013 44.002 17.403.279 ≈ 71.600 63 neben Optimierungen an den Grafik-Treibern, ist die Aufnahme von verschiedenen neuen WLAN- und LAN-Treibern sowie die Verbesserung der KVM- und Xen-Unterstützung auf ARM64 vorgesehen;[69] wird der Arbeitsspeicher knapp kann dieser mit einem Zswap (siehe auch Zip und Swap) komprimiert werden;[70]
Letzte Version war 3.11.10 am 29. November 2013 – Wegen ihrer Versionsnummer auch Linux for Workgroups genannt, angelehnt an Microsoft’s Windows 3.11 for Workgroups.[71]
Ältere Version; nicht mehr unterstützt: 3.12 3. Nov. 2013 44.586 17.726.872 ≈ 73.000 62 neben Optimierungen an den Optimus-Treibern, ist die Unterstützung eines SYN-Proxy hinzugekommen,[72] der SYN-Flooding-Angriffe verhindern soll;[73] Multithreading bei mit Mdadm angelegten Raid-5-Arrays und Btrfs beherrscht Deduplikation;[74]
Dieser LTS-Zweig wurde von Jiri Slaby betreut, die letzte Version war 3.12.74 am 9. Mai 2017
Ältere Version; nicht mehr unterstützt: 3.13 20. Jan. 2014 44.970 17.930.916 ≈ 73.600 77 enthält die neue Firewall-Infrastruktur Nftables (welche die mit dem 2.4er eingeführten Iptables ablösen soll), bessere 3D-Leistung und Aktivierung des Dynamic Power Management (DPM) bei AMD-Radeon-Grafikkarten.[75][76] Moderneres Multiqueue-Storage-Interface;[77]
Letzte Version war 3.13.11 am 22. April 2014
Ältere Version; nicht mehr unterstützt: 3.14 31. März 2014 45.935 18.271.989 ≈ 74.900 70 ein Scheduler, der für Echtzeitsysteme geeignet ist,[78] hinzugefügt und u. a. ist nun Xen 4.4 enthalten;[79] Unterstützung von neuen Grafikkernen und korrekte Funktion des Unified Video Decoder (UVD) für AMD Grafikchips ab HD 7000;[78]
Dieser LTS-Zweig wurde von Greg Kroah-Hartman betreut, die letzte Version war 3.14.79 am 11. September 2016
Ältere Version; nicht mehr unterstützt: 3.15 8. Juni 2014 46.780 18.632.574 ≈ 76.000 53 das Aufwachen aus dem Suspend-to-RAM-Modus wurde beschleunigt und Open File Description Locks eingeführt. Z. B. Videosoftware soll nun einfacher Teile einer Datei auslesen können und atomares Austauschen von Dateien wird möglich. Die Unterstützung von FUSE, XFS und Flash-Speichern mit einem Dateisystem darauf wurde ausgebaut;[80]
Letzte Version war 3.15.10 am 14. August 2014
Ältere Version; nicht mehr unterstützt: 3.16 3. Aug. 2014 47.425 18.879.129 ≈ 76.900 56 eingeflossen sind u. a. Robustheitsmaßnahmen beim Dateisystem Btrfs, die Grafiktreiber Radeon und Nouveau wurden optimiert;[81]
Dieser LTS-Zweig wurde von Ben Hutchings betreut, die letzte Version war 3.16.85 am 11. Juni 2020
Ältere Version; nicht mehr unterstützt: 3.17 5. Okt. 2014 47.490 18.864.388 ≈ 76.600 63 Die Funktion getrandom() und Vorgaben zur Mindest-Entropie sorgen für sicherere Zufallszahlen. Neu sind Grundlagen für Kdbus, Fences in Dma-Buf, MST (Multi Stream Transport, Teil von DisplayPort 1.2) für 4K-Monitore, sowie die Unterstützung für den Xbox-One-Controller und ForcePad-Touchpads. Optimierungen für Thunderbolt bei Apple-Geräten;[82]
Letzte Version war 3.17.8 am 8. Januar 2015
Ältere Version; nicht mehr unterstützt: 3.18 7. Dez. 2014 47.971 18.994.096 ≈ 77.300 64 Aufnahme des OverlayFS; Verbesserungen bei Btrfs und F2FS; Tunnelung beliebiger Protokolle ist über UDP ermöglicht; Audio-Ausgabe mit dem Nouveau-Treiber über DisplayPort; Just-in-time-Kompilierung des Extended Berkeley Packet Filter (eBPF) für ARM64; der BPF ist nun durch den Syscall bpf() allgemein verfügbar; Modulparameter können als unsicher (englisch unsafe) markiert werden;[83]
Dieser LTS-Zweig wurde von Sasha Levin betreut, die letzte Version war 3.18.140 am 16. Mai 2019
Ältere Version; nicht mehr unterstützt: 3.19 9. Feb. 2015 48.424 19.130.604 ≈ 77.900 63 u. a. Unterstützung für AMDs Heterogeneous System Architecture (HSA),[84] zudem wurde das Interprozesskommunikationsframework Binder aufgenommen,[85] welches ursprünglich für Android entwickelt wurde und auf OpenBinder aufbaut;[86]
Letzte Version war 3.19.8 am 11. Mai 2015
Ältere Version; nicht mehr unterstützt: 4.0 12. Apr. 2015 48.945 19.312.370 ≈ 78.500 63 u. a. Unterstützung für Updates im laufenden Betrieb (Kernel Live Patching);[87][88]
Letzte Version war 4.0.9 am 21. Juli 2015
Ältere Version; nicht mehr unterstützt: 4.1 22. Juni 2015 49.457 19.512.485 ≈ 79.300 70 u. a. Verschlüsselung für Ext4, Treiber für NV-DIMMs und Schaffung der Grundlagen zur 3D-Beschleunigung in virtuellen Maschinen;[89]
Dieser LTS-Zweig wurde von Sasha Levin betreut, die letzte Version war 4.1.52 am 28. Mai 2018
Ältere Version; nicht mehr unterstützt: 4.2 30. Aug. 2015 50.795 20.311.717 ≈ 82.000 70 u. a. Update von UEFI nun aus Linux möglich, Unterstützung der AMD-Grafikkarten der Volcanic-Islands-Generation;[90]
Letzte Version war 4.2.8 am 15. Dezember 2015
Ältere Version; nicht mehr unterstützt: 4.3 2. Nov. 2015 51.570 20.621.444 ≈ 83.000 63 Unterstützung für Skylake und Fiji-GPUs;[91] IPv6 wird Voreinstellung;[92]
Letzte Version war 4.3.6 am 19. Februar 2016
Ältere Version; nicht mehr unterstützt: 4.4 10. Jan. 2016 52.221 20.862.115 ≈ 83.300 70 Kernel mit Langzeitunterstützung;[93] Grafiktreiber für den Raspberry Pi und weitere 3D-Grafikbeschleunigungen in KVM für virtuelle Maschinen, Verbesserungen bei RAID und SSDs, BPF-Aufrufe sind nun auch im Userspace möglich;[94][95]
Letzte Version war 4.4.302 am 3. Februar 2022
Ältere Version; nicht mehr unterstützt: 4.5 14. März 2016 52.916 21.154.545 ≈ 84.300 63 weitere Besserungen in den 3D-Treibern, unter anderem durch die Unterstützung für PowerPlay, und reibungslose Wechsel der Netzwerkverbindungen;[96][97] Verbesserungen beim Zugriff auf NFS-Server;[98]
Letzte Version war 4.5.7 am 8. Juni 2016
Ältere Version; nicht mehr unterstützt: 4.6 15. Mai 2016 53.660 21.422.694 ≈ 85.300 63 u. a. verbesserte Energieverwaltung durch die Möglichkeit der Taktraten-Einstellung bei Tegra-X1-GPUs und durch die Freischaltung der Frame Buffer Compression (FBC) für Prozessoren der Haswell-Architektur und Broadwell, des Weiteren wurde das Dateisystem OrangeFS freigeschaltet sowie zusätzliche Werkzeuge zur besseren Fehlererkennung (englisch bug hunting);[99][100]
Letzte Version war 4.6.7 am 16. August 2016
Ältere Version; nicht mehr unterstützt: 4.7 24. Juli 2016 54.400 21.712.846 ≈ 86.200 70 u. a. erste Unterstützung für neue Radeon-Grafikkarten (unter dem Decknamen Polaris), vier weitere ARM-Treiber und Unterstützung für Spiele-Steuergeräte;[101][102] zudem bessere SMR-Unterstützung und Beschleunigungen beim Tunneln;[103] im Vergleich zum Vorgänger (4.6) werden nun rund 500 weitere Hardware-Komponenten unterstützt;[104]
Letzte Version war 4.7.10 am 22. Oktober 2016
Ältere Version; nicht mehr unterstützt: 4.8 2. Okt. 2016 55.503 22.071.048 ≈ 87.700 70 neben der Unterstützung neuer Treiber für Haupt- und Grafik-Prozessoren von AMD, ARM (Mali), Intel und Nvidia wurde u. a. das Übertakten (oder Overclocking) für AMD-Grafiktreiber und eine neue GPU-Virtualisierungstechnik für Intel-Grafiktreiber eingeführt, des Weiteren wurde das XFS überarbeitet, so dass es auch Datenintegritäten prüfen sowie Datendeduplizierung und das Copy-On-Write-Verfahren beherrscht;[105][106]
Letzte Version war 4.8.17 am 9. Januar 2017
Ältere Version; nicht mehr unterstützt: 4.9 11. Dez. 2016 56.223 22.348.356 ≈ 88.900 70 neben Verbesserungen in der Sicherheit – durch besseren Schutz vor Stapelüberläufen – erhalten u. a. die Treiber für das XFS eine Shared Data Extents genannte Erweiterung, welche auf die (bereits im 4.8er-Kern eingeführte) Reverse-Mapping-Infrastruktur aufsetzt und es künftig ermöglichen soll, dass sich mehrere Dateien einen Daten- oder Wert(e)bereich teilen können und dieser auch mehrere Besitzer haben kann; zudem wurden erste Unterstützungen für den sogenannten Greybus eingearbeitet, welcher ursprünglich für das ehemals von Google entwickelte modulare Smartphone Ara gedacht war und u. a. von Motorola in einem ihrer Geräte genutzt wird;[107][108]
Letzte Version war 4.9.337 am 7. Januar 2023
Ältere Version; nicht mehr unterstützt: 4.10 19. Feb. 2017 57.172 22.839.541 ≈ 89.900 71 Verbesserungen beim Schreiben auf Datenträger und Einführung einer schnelleren Fehlererkennung in RAID-Systemen, zudem wurden u. a. EFI-Zugriffe verbessert und der LED-Treiber uleds eingearbeitet[109] sowie ein Verfahren zur Grafikbeschleunigung virtueller Maschinen eingeführt;[110] bei Intel-Prozessoren kann der Cache zwischen Prozessen aufgeteilt werden, die Funktionen für die ARM64-Architektur wurden ausgebaut, Überarbeitungen beim Routing, das Dateisystem UBIFS wurde um eine optionale Verschlüsselung ergänzt, während logfs entfernt wurde;[111]
Letzte Version war 4.10.17 am 20. Mai 2017
Ältere Version; nicht mehr unterstützt: 4.11 1. Mai 2017 57.964 23.137.284 ≈ 91.000 71 Verringerung des Stromverbrauches von NVMe-SSDs durch die Stromspartechnik APST; Unterstützung für selbstverschlüsselnde SSDs; Verbesserungen bei der Abfrage von Metadaten für Verzeichnisse und Dateien; Überarbeitung der in 4.10 eingeführten Funktion Intel Turbo Boost Max 3.0; Verbesserungen bei der Grafikbeschleunigung virtueller Maschinen für AMD-Grafikeinheiten;[112] Anpassungen für ext4, um die Nutzung als Wegwerfdateisystem zu verbessern;[113]
Letzte Version war 4.11.12 am 21. Juli 2017
Ältere Version; nicht mehr unterstützt: 4.12 2. Juli 2017 59.808 24.173.535 ≈ 99.000 62 Einführung des Scheduler „Budget Fair Queueing“ (BFQ) für bessere Performance bei Datenträgerzugriffen, Unterstützung von AMDs Grafikprozessor Radeon Vega;[114]
Letzte Version war 4.12.14 am 20. September 2017
Ältere Version; nicht mehr unterstützt: 4.13 3. Sep. 2017 60.543 24.767.008 ≈ 100.000 63 Performancegewinn im Protokoll HTTPS, Verzeichnisse im Ext4-Dateisystemen können nun bis zu 2 Milliarden Einträge enthalten;[115]
Letzte Version war 4.13.16 am 24. November 2017
Ältere Version; nicht mehr unterstützt: 4.14 12. Nov. 2017 61.258 25.041.165 ≈ 97.000 70 LTS-Version;[116] Unterstützung bis zu 4096 Terabyte Arbeitsspeicher;[117]
Letzte Version war 4.14.336 am 10. Januar 2024
Ältere Version; nicht mehr unterstützt: 4.15 28. Jan. 2018 62.271 25.364.680 ≈ 100.000 78 Einbau diverser Schutzmechanismen vor Meltdown und Spectre, der Treiber Amdgpu unterstützt nun AMDs Vega-Grafikkarten besser;[118]
Letzte Version war 4.15.18 am 19. April 2018
Ältere Version; nicht mehr unterstützt: 4.16 1. Apr. 2018 62.883 25.558.670 100.606 63 Letzte Version war 4.16.18 am 26. Juni 2018
Ältere Version; nicht mehr unterstützt: 4.17 3. Juni 2018 61.332 25.379.428 99.772 63 HDCP-Unterstützung bei Intel-CPUs mit integriertem Grafikprozessor, erste Gegenmaßnahmen gegen Spectre v4 (Speculative Store Bypass), Entfernung Architektursupport Blackfin, AXIS CRIS und 6 weiterer;[119]
Letzte Version war 4.17.19 am 24. August 2018
Ältere Version; nicht mehr unterstützt: 4.18 12. Aug. 2018 60.973 25.280.736 101.782 70 Vorarbeiten für leistungsgesteigerte Firewall Bpfilter; Unterstützung für GPU von Kaby Lake-G und der angekündigten Vega20; Erster Support für Qualcomms Snapdragon-845-Prozessor;[120]
Letzte Version war 4.18.20 am 21. November 2018
Ältere Version; nicht mehr unterstützt: 4.19 22. Okt. 2018 61.700 25.588.319 103.117 71 LTS-Version; neuen „Code of Conduct“ für Entwickler fest in die Kernel-Dokumentation aufgenommen,[121] Unterstützung des neuen Wlan Standards 802.11ax, Performanceverbesserung der SATA-Treiber;[122]
Letzte Version war 4.19.325 am 5. Dezember 2024
Ältere Version; nicht mehr unterstützt: 4.20 23. Dez. 2018 62.446 25.955.384 104.258 62 Amdgpu-Treiber unterstützt neue GPUs von AMD, Behebung der Sicherheitslücke für die zweite Variante von Spectre;[123]
Letzte Version war 4.20.17 am 19. März 2019
Ältere Version; nicht mehr unterstützt: 5.0 3. März 2019 63.135 26.211.072 102.776 70 u. a. neu hinzugekommen ist der Support für Freesync von AMD;[124]
Letzte Version war 5.0.21 am 4. Juni 2019
Ältere Version; nicht mehr unterstützt: 5.1 6. Mai 2019 63.873 26.459.776 ≈ 101.000 63 Datenträger können nun über asynchronem I/O (AIO) angesprochen werden;[125]
Letzte Version war 5.1.21 am 28. Juli 2019
Ältere Version; nicht mehr unterstützt: 5.2 7. Juli 2019 64.587 26.552.127 ≈ 102.000 63 u. a. Verzeichnisse in Ext4 können nun auch case-insensitive genutzt werden; die Performance von Meltdown- und Spectre v2-Patches wurde optimiert.[126]
Letzte Version war 5.2.21 am 11. Oktober 2019
Ältere Version; nicht mehr unterstützt: 5.3 15. Sep. 2019 65.261 27.141.312 ≈ 108.500 70 u. a. Unterstützung für neue AMD Navi-10-GPUs und Zhaoxin x86-CPUs, einige Neuerungen für Effizienzverbesserungen (Support für umwait-Instruktionen, Intel Speed Select, Utilization Clamping im Scheduler), 16 Millionen weitere IPv4-Adressen aus dem 0.0.0.0/8-Bereich werden verfügbar gemacht;[127]
Letzte Version war 5.3.18 am 18. Dezember 2019
Ältere Version; noch unterstützt: 5.4 24. Nov. 2019 65.701 27.538.212 ≈ 109.400 70 LTS-Version; Unterstützung für Microsofts exFAT-Dateisystem, Integration des Kernel Lockdown-Features, Support für weitere AMD GPU/APU-Produkte (Navi 12/14, Arcturus, Renoir), verbesserte Performance für Host-Dateisystemzugriffe aus einer virtuellen Maschine mit virtio-fs;[128]
Aktuelle Version: 5.4.293 am 2. Mai 2025
Ältere Version; nicht mehr unterstützt: 5.5 27. Jan. 2020 66.493 27.854.754 ≈ 108.100 63 u. a. Grundlagen für den zukünftigen Support der VPN-Technik WireGuard gelegt, anfängliche Unterstützung des Raspberry Pi 4, modernisierter Code für die Lastverteilung des Schedulers, mit KUnit wurde ein Framework für Modultests integriert, Btrfs erhält neue RAID-1 und Hash-Algorithmen, verbesserte Performance und/oder Stabilität dank Mulitchannel-Support für CIFS/SMB, die Temperatur von NVMe-Laufwerken kann vom Kernel ausgelesen und bereitgestellt werden;[129]

Letzte Version war 5.5.19 am 21. April 2020

Ältere Version; nicht mehr unterstützt: 5.6 29. März 2020 67.337 28.169.797 ≈ 109.200 63 u. a. WireGuard wird vollständig unterstützt, weiter ausgebaut wurde der Support des Raspberry Pi 4 (PCIe-Controller), erste Bausteine für die USB4-Unterstützung aufgenommen, der k10temp-Treiber übermittelt nun Temperatur-, Stromstärke- und Spannungswerte für Zen-CPUs, /dev/random liefert Zufallszahlen auch bei leeren Entropiequellen, wenn der Cryptographic Random Number Generator (CRNG) einmalig initialisiert wurde (Programme, die Zufallszahlen auf diese Weise anfordern, werden so nicht mehr blockiert), Linux als Gastsystem einer VirtualBox-VM erlaubt dank des eingepflegten VirtualBox-Shared-Folder-Treibers (vboxsf) eine effiziente Einbindung von Verzeichnissen des Hostsystems, erstmals sind alle Voraussetzungen zur Bewältigung des Jahr-2038-Problems für 32-Bit-Betriebssysteme erfüllt;[130][131]

Letzte Version war 5.6.19 am 17. Juni 2020

Ältere Version; nicht mehr unterstützt: 5.7 31. Mai 2020 67.939 28.442.333 ≈ 110.038 63 Letzte Version war 5.7.19 am 27. August 2020
Ältere Version; nicht mehr unterstützt: 5.8 2. Aug. 2020 69.327 28.994.351 ≈ 111.776 63 Letzte Version war 5.8.18 am 1. November 2020
Ältere Version; nicht mehr unterstützt: 5.9 11. Okt. 2020 69.972 29.461.217 ≈ 112.796 70 Letzte Version war 5.9.16 am 21. Dezember 2020
Ältere Version; noch unterstützt: 5.10 13. Dez. 2020 70.602 29.733.599 ≈ 113.869 63 LTS-Version; Aktuelle Version: 5.10.237 am 2. Mai 2025
Ältere Version; nicht mehr unterstützt: 5.11 14. Feb. 2021 71.238 30.340.055 ≈ 114.857 63 Letzte Version war 5.11.22 am 19. Mai 2021
Ältere Version; nicht mehr unterstützt: 5.12 25. Apr. 2021 71.463 30.545.205 ≈ 115.339 70 Letzte Version war 5.12.19 am 20. Juli 2021
Ältere Version; nicht mehr unterstützt: 5.13 28. Juni 2021 72.184 30.940.247 ≈ 119.538 63 Letzte Version war 5.13.19 am 18. September 2021
Ältere Version; nicht mehr unterstützt: 5.14 29. Aug. 2021 72.828 31.479.754 ≈ 117.845 63 Unterstützung für Raspberry Pi 400; bessere Unterstützung für USB 4; Grundlagen für Intel-Alder-Lake-Prozessoren
Letzte Version war 5.14.21 am 21. November 2021
Ältere Version; noch unterstützt: 5.15 31. Okt. 2021 73.575 31.812.242 ≈ 119.045 63 LTS-Version; bessere Unterstützung für NTFS; Aktuelle Version: 5.15.181 am 2. Mai 2025
Ältere Version; nicht mehr unterstützt: 5.16 9. Jan. 2022 74.265 32.233.528 ≈ 124.527 70 Letzte Version war 5.16.20 am 13. April 2022
Ältere Version; nicht mehr unterstützt: 5.17 20. März 2022 74.993 32.488.489 ≈ 125.377 70 Letzte Version war 5.17.15 am 14. Juni 2022
Ältere Version; nicht mehr unterstützt: 5.18 22. Mai 2022 75.837 33.235.430 ≈ 126.753 63 Mit dieser Version wechselt der Kernel erstmals in der Geschichte die C-Sprachfassung: statt bisher C89 basiert Linux ab Version 5.18 auf dem C-Standard C11 (von 2011).[132]
Letzte Version war 5.18.19 am 21. August 2022
Ältere Version; nicht mehr unterstützt: 5.19 31. Juli 2022 76.916 34.035.647 ≈ 128.498 70 Letzte Version war 5.19.17 am 24. Oktober 2022
Ältere Version; nicht mehr unterstützt: 6.0 2. Okt. 2022 77.968 35.137.016 ≈ 130.752 63 Letzte Version war 6.0.19 am 12. Januar 2023
Ältere Version; noch unterstützt: 6.1 11. Dez. 2022 78.644 35.548.350 ≈ 131.584 70 LTS-Version; Aktuelle Version: 6.1.136 am 2. Mai 2025
Ältere Version; nicht mehr unterstützt: 6.2 19. Feb. 2023 79.455 35.868.349 ≈ 133.234 70 Letzte Version war 6.2.16 am 17. Mai 2023
Ältere Version; nicht mehr unterstützt: 6.3 23. Apr. 2023 79.561 36.007.945 ≈ 133.735 63 Letzte Version war 6.3.13 am 11. Juli 2023
Ältere Version; nicht mehr unterstützt: 6.4 25. Juni 2023 80.282 36.416.957 ≈ 134.566 63 Letzte Version war 6.4.16 am 13. September 2023
Ältere Version; nicht mehr unterstützt: 6.5 27. Aug. 2023 86.048 37.336.785 ≈ 138.412 63 Letzte Version war 6.5.13 am 28. November 2023
Ältere Version; noch unterstützt: 6.6 30. Okt. 2023 ≈ 140.509 64 LTS-Version; Aktuelle Version: 6.6.89 am 2. Mai 2025
Ältere Version; nicht mehr unterstützt: 6.7 7. Jan. 2024 ≈ 141.558 69 Letzte Version war 6.7.12 am 3. April 2024
Ältere Version; nicht mehr unterstützt: 6.8 10. März 2024 ≈ 142.606 63 Erste Version mit Rust-Gerätetreiber. Letzte Version war 6.8.12 am 30. Mai 2024
Ältere Version; nicht mehr unterstützt: 6.9 12. Mai 2024 ≈ 143.655 63 Letzte Version war 6.9.12 am 27. Juli 2024
Ältere Version; nicht mehr unterstützt: 6.10 14. Juli 2024 ≈ 144.703 63 Letzte Version war 6.10.14 am 10. Oktober 2024
Ältere Version; nicht mehr unterstützt: 6.11 15. Sep. 2024 Letzte Version war 6.11.11 am 5. Dezember 2024
Ältere Version; noch unterstützt: 6.12 18. Nov. 2024 LTS-Version; Aktuelle Version: 6.12.26 am 2. Mai 2025
Ältere Version; nicht mehr unterstützt: 6.13 19. Jan. 2025 Letzte Version war 6.13.12 am 20. April 2025
Aktuelle Version: 6.14 24. März 2025 Aktuelle Version: 6.14.5 am 2. Mai 2025
Zukünftige Version: 6.15 Mai 2025 Aktuelle Version: 6.15RC4 am 27. April 2025
Legende:
Ältere Version; nicht mehr unterstützt
Ältere Version; noch unterstützt
Aktuelle Version
Aktuelle Vorabversion
Zukünftige Version

Anmerkungen[133][134][135][136]

(a) 
Dateien gezählt mit: find . -type f -not -regex '\./\.git/.*'|wc -l
(b) 
Quelltextzeilen gezählt mit: find . -type f -not -regex '\./\.git.*'|xargs cat|wc -l
(c) 
Größe in kB bezogen auf ein mit gzip komprimiertes tar-Archiv (.tar.gz); ab Version 3.2 im Format tar.xz[21]
(d) 
Der genannte Entwicklungszeitraum bezieht sich lediglich auf die Zusammenführung bereits entwickelter Programmteile, welche selbst teilweise mehrere Jahre zuvor bis zur Zusammenführung entwickelt wurden.

Neuerungen im Kernel 2.6

[Bearbeiten | Quelltext bearbeiten]

Die Kernel-Reihe 2.6 wurde ab Dezember 2001 auf Basis der damaligen 2.4er-Reihe entwickelt und wies umfangreiche Neuerungen auf. Für die Entwicklung war der neue Quelltext übersichtlicher und leichter zu pflegen, während Anwender durch die Überarbeitung des Prozess-Schedulers sowie des I/O-Bereiches und von geringeren Latenzzeiten profitierten.[137]

Neue Prozess-Scheduler

[Bearbeiten | Quelltext bearbeiten]

In einem Multitasking-fähigen Betriebssystem muss es eine Instanz geben, die den Prozessen, die laufen wollen, Rechenzeit zuteilt. Diese Instanz bildet der Prozess-Scheduler. Seit dem Erscheinen von Linux 2.6 wurde mehrfach grundlegend am Scheduler gearbeitet.

Für die ersten Kernel 2.6 war von Ingo Molnár ein gegenüber Linux 2.4 ganz neuer Scheduler konzipiert und implementiert worden, der O(1)-Scheduler. Dieser erhielt seinen Namen, weil die relevanten Algorithmen, auf denen der Scheduler basierte, die Zeitkomplexität haben. Dies bedeutet, dass die vom Scheduler für eigene Aufgaben benötigte Prozessorzeit unabhängig von der Anzahl der verwalteten Prozesse bzw. Threads ist. Insbesondere wurde etwa auf das Durchsuchen aller Prozesse nach dem momentan wichtigsten Prozess verzichtet.

Der O(1)-Scheduler arbeitete auch bei vielen Prozessen effizient und benötigte selbst nur wenig Rechenzeit. Er verwendete zwei verkettete Listen. Eine für Prozesse, die noch laufen müssen und eine zweite für Prozesse die bereits gelaufen sind. Wenn alle Prozesse in der zweiten Liste standen, wurden die Datenfelder getauscht, und das Spiel begann von neuem.

Interaktive Prozesse benötigen in der Regel nur wenig Rechenzeit. Allerdings sollte zum Beispiel die grafische Benutzeroberfläche verlässlich innerhalb weniger Millisekunden reagieren. Der O(1)-Scheduler besaß Heuristiken, um festzustellen, ob ein Prozess interaktiv ist oder die CPU eher lange belegt. Der Scheduler stellte dann Aufgaben, die viel Rechenzeit in Anspruch nehmen, zu Gunsten von interaktiven Prozessen zurück.

Der interne Takt des Kernels wurde ab dem Kernel 2.6 von 100 Hz auf 1000 Hz erhöht, das heißt, die kürzeste Länge einer Zeitscheibe betrug nun eine Millisekunde. Hiervon profitierten besonders die interaktiven Prozesse, da sie früher wieder an der Reihe sind. Da dies zu einer erhöhten CPU-Last und somit zu einem größeren Stromverbrauch führt, wurde der Takt ab dem Kernel 2.6.13 auf 250 Hz eingestellt. Bei der Konfiguration des Kernels sind jedoch auch noch die Werte 100 Hz, 300 Hz und 1000 Hz wählbar.

Mit der Kernelversion 2.6.23 wurde im Oktober 2007 der O(1)-Scheduler durch einen Completely Fair Scheduler (CFS) ersetzt, der ebenfalls von Ingo Molnár entwickelt wurde. Am CFS wurde von manchen Kernel-Entwicklern kritisiert, dass er seinen Schwerpunkt auf Skalierbarkeit auch bei Servern mit vielen Prozessorkernen legt. Entwickler wie Con Kolivas waren der Meinung, dass unter dieser Schwerpunktsetzung sowie einigen Designentscheidungen im CFS die Leistung auf typischen Desktop-Systemen leide.[138]

Präemptibles Multitasking

[Bearbeiten | Quelltext bearbeiten]

Der Kernel ist ab Version 2.6 in den meisten Funktionen präemptibel („zuvorkommend, vorbeugend“). Selbst wenn das System gerade im Kernel-Modus Aufgaben ausführt, kann dieser Vorgang durch einen Prozess aus dem User-Modus unterbrochen werden. Der Kernel macht dann weiter, wenn der Usermodus-Prozess seine Zeitscheibe aufgebraucht hat oder selbst eine neue Zeitplanung (englisch Re-Schedule) anfordert, also dem Zeitplaner (englisch Scheduler) mitteilt, dass er einen anderen Task ausführen kann. Bis auf einige Kernel-Funktionen, die atomar („nicht unterbrechbar“) ablaufen müssen, kommt dies der Interaktivität zugute und erweitert das davor übliche präemptive Multitasking („entziehbar“), das aber weiterhin zur Auswahl steht.

Zugriffskontrolllisten

[Bearbeiten | Quelltext bearbeiten]

Mit dem Kernel 2.6 werden für Linux erstmals Zugriffskontrolllisten (englisch access control lists) nativ eingeführt. Diese sehr feinkörnige Rechteverwaltung ermöglicht es vor allem Systemadministratoren, die Rechte auf einem Dateisystem unabhängig vom Gruppen- und Nutzermodell zu gestalten und dabei faktisch beliebig viele spezielle Rechte pro Datei zu setzen. Die mangelnde Unterstützung von Zugriffskontrolllisten von Linux wurde vorher als massive Schwäche des Systems im Rahmen der Rechteverwaltung und der Möglichkeiten zur sicheren Konfiguration gesehen.

Die Unterstützung von Zugriffskontrolllisten funktioniert dabei mit den Dateisystemen ext2, ext3, jfs und XFS nativ.

Mit dem Kernel 2.6.13 hielt erstmals eine Inotify genannte Funktion Einzug in den Kernel. Diese ermöglicht eine andauernde Überwachung von Dateien und Verzeichnissen – wird eines der überwachten Objekte geändert oder ein neues Objekt im Überwachungsraum erschaffen, gibt Inotify eine Meldung aus, die wiederum andere Programme zu definierten Tätigkeiten veranlassen kann. Dies ist insbesondere für Such- und Indexierungsfunktionen der Datenbestände von entscheidender Bedeutung und ermöglicht erst den sinnvollen Einsatz von Desktop-Suchmaschinen wie Strigi oder Meta Tracker. Ohne eine solche Benachrichtigungsfunktion des Kernels müsste ein Prozess die zu überwachende Datei oder das zu überwachende Verzeichnis in bestimmten Zeitintervallen auf Änderungen überprüfen, was im Gegensatz zu Inotify zusätzliche Performance-Einbußen mit sich bringen würde.

Weitere wichtige Änderungen

[Bearbeiten | Quelltext bearbeiten]

Soweit es möglich ist, wurde in Linux 2.6 die Maximalzahl für bestimmte Ressourcen angehoben. Die Anzahl von möglichen Benutzern und Gruppen erhöhte sich von 65.000 auf über 4 Milliarden, ebenso wie die Anzahl der Prozess-IDs (von 32.000 auf 1 Milliarde) und die Anzahl der Geräte (Major/Minor-Nummern). Weitere leistungssteigernde Maßnahmen betrafen die I/O-Scheduler, das Threading mit der neuen Native POSIX Thread Library und den Netzwerk-Stack, der nun ebenfalls in den meisten Tests O(1) skaliert ist. Außerdem wurde für die Verwaltung der I/O-Gerätedateien das früher genutzte devfs durch das neuere udev ersetzt, was viele Unzulänglichkeiten, wie zum Beispiel ein zu großes /dev/-Verzeichnis, beseitigt. Außerdem kann so eine einheitliche und konsistente Gerätebenennung erfolgen, die beständig bleibt, was vorher nicht der Fall war.

Lizenzbesonderheiten

[Bearbeiten | Quelltext bearbeiten]

Proprietärer Code und Freiheitsbegriff

[Bearbeiten | Quelltext bearbeiten]

Die heute von Linus Torvalds herausgegebene Fassung des Kernels enthält proprietäre Objekte in Maschinensprache (BLOBs) und ist daher nicht mehr ausschließlich Freie Software. Richard Stallman bezweifelt sogar, dass sie legal kopiert werden darf, da diese BLOBs im Widerspruch zur GPL stünden und die Rechte aus der GPL daher erlöschen würden.[139] Resultierend daraus rät die Free Software Foundation deshalb dazu, nur BLOB-freie Versionen von Linux einzusetzen, bei denen diese Bestandteile entfernt wurden. Linux-Distributionen mit dem Kernel Linux-libre erfüllen diesen Anspruch.

Der Kernel unter der GPL 2

[Bearbeiten | Quelltext bearbeiten]

Die bei GPL-Software übliche Klausel, dass statt der Version 2 der GPL auch eine neuere Version verwendet werden kann, fehlt beim Linux-Kernel.[140] Die Entscheidung, ob die im Juni 2007 erschienene Version 3 der Lizenz für Linux verwendet wird, ist damit nur mit Zustimmung aller Entwickler möglich. In einer Umfrage haben sich Torvalds und die meisten anderen Entwickler für die Beibehaltung der Version 2 der Lizenz ausgesprochen.

  • Wolfgang Mauerer: Linux-Kernelarchitektur. Konzepte, Strukturen und Algorithmen von Kernel 2.6. Hanser Fachbuchverlag, München u. a. 2003, ISBN 3-446-22566-8.
  • Robert Love: Linux-Kernel-Handbuch. Leitfaden zu Design und Implementierung von Kernel 2.6. Addison-Wesley, München u. a. 2005, ISBN 3-8273-2204-9.
  • Jonathan Corbet, Alessandro Rubini, und Greg Kroah-Hartman: Linux Device Drivers. 3. Auflage, O’Reilly. 2005, ISBN 0-596-00590-3.
Commons: Linux (Kernel) – Album mit Bildern, Videos und Audiodateien

Englisch:

Deutsch:

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. RELEASE NOTES FOR LINUX v0.12. (abgerufen am 10. April 2018).
  2. a b It’s official, Linux was released on September 17, 1991. (englisch, abgerufen am 10. April 2018).
  3. The linux Open Source Project on Open Hub: Licenses Page. In: Open Hub. (abgerufen am 19. Juli 2018).
  4. Greg Kroah-Hartman: Linux 6.14.6. 9. Mai 2025 (abgerufen am 12. Mai 2025).
  5. Linus Torvalds: RELEASE NOTES FOR LINUX v0.12. In: kernel.org. Abgerufen am 22. April 2017 (englisch).
  6. Sebastian Grüner: Programmiersprache: Linux erscheint erstmals mit Rust-Support. Golem.de, 12. Dezember 2022, abgerufen am 27. Januar 2025.
  7. Ankush Das: Linux Kernel 6.8 Released! Goes Big On Hardware Support. It's FOSS News, 11. März 2024, abgerufen am 27. Januar 2025 (englisch).
  8. index: kernel/git/torvalds/linux.git
  9. a b c UNIX/Linux History. Abgerufen am 11. März 2017 (englisch).
  10. PPC/Linux for NuBus Power Macs. sourceforge.net, abgerufen am 12. April 2014 (englisch).
  11. Katherine Noyes: Linux 3.8: Hello 2013, Goodbye 386 Chips. In: Linux News. Linux Foundation, 20. Februar 2013, abgerufen am 14. April 2013 (englisch).
  12. Andres Calderon, Nelson Castillo: Why ARM’s EABI matters. LinuxDevices.com, 14. Mai 2007, abgerufen am 10. April 2019 (englisch).
  13. Pressemitteilung OSDL: Developer’s Certificate of Origin. 2004.
  14. Linux-Kernel Archive: [RFD] Explicitly documenting patch submission, 23. Mai 2004 (englisch)
  15. Thorsten Leemhuis: Neue Kernel-Serie mit Linux 2.6.11.1 gestartet. In: Heise online. 7. März 2005. Abgerufen am 26. April 2015.
  16. Linus Torvalds: Linux 3.0-rc1. 29. Mai 2011, abgerufen am 23. Dezember 2024 (englisch).
  17. Linus Torvalds: index: kernel/git/torvalds/linux.git. git.kernel.org, 23. Februar 2015, abgerufen am 23. Februar 2015 (englisch).
  18. Linus Torvalds: Linus Torvalds — Google. 13. Februar 2015, abgerufen am 23. Februar 2015 (englisch).
  19. Linus Torvalds: Linux Kernel Mailing List: Announcement of Kernel 5.19. lore.kernel.org, 31. Juli 2022, abgerufen am 11. April 2023 (englisch).
  20. Active kernel releases. kernel.org, abgerufen am 18. Dezember 2024 (englisch).
  21. a b c The Linux Kernel Archives. kernel.org, abgerufen am 6. September 2010 (englisch, Versionsübersicht bei kernel.org).
  22. Oliver Diedrich: Happy Birthday, Tux. In: Heise online. 25. August 2006. Abgerufen am 24. Oktober 2014.
  23. a b c d e f Oliver Diedrich: Die Woche: Linux wird 3.0. In: Heise online. 1. Juni 2011. Abgerufen am 26. April 2015.
  24. Andreas Jaeger: Large File Support in Linux. SUSE GmbH, 15. Februar 2015, abgerufen am 26. November 2022.
  25. Oliver Diedrich: Neuer Firewall-Code für den Linux-Kernel. In: Heise online. 21. Oktober 2013. Abgerufen am 28. Oktober 2013.
  26. LKML: Willy Tarreau: Linux 2.4.37.10 + 2.4 EOL plans – Mitteilung bei der Linux-Kernel Mailing List, vom 6. September 2010, abgerufen am: 16. September 2012 (englisch)
  27. Linux-Kernel 2.6.13 veröffentlicht – Thorsten Leemhuis, bei Heise, am 29. August 2005
  28. Thorsten Leemhuis: Die Woche: Xen hat KVM vorbeiziehen lassen. In: Heise online. 16. Juni 2011. Abgerufen am 24. Oktober 2014.
  29. Jörg Thoma: Linux-Kernel: Updates für Long-Term-Zweige. Golem.de, 4. Mai 2011, abgerufen am 24. Oktober 2014.
  30. Clever schachteln: Das neue Linux-Dateisystem Btrfs im DetailAdmin-Magazin, Ausgabe 04/2009
  31. Oliver Diedrich: Das Dateisystem Btrfs. In: Heise online. 7. Juli 2009. Abgerufen am 14. August 2016.
  32. Thorsten Leemhuis: Kernel-Log: Entwicklung von 2.6.39 angelaufen. In: Heise online. 22. März 2011. Abgerufen am 26. April 2015.
  33. a b Thorsten Leemhuis: Hauptentwicklungsphase von Linux 3.2 abgeschlossen. In: Heise online. 8. November 2011. Abgerufen am 26. April 2015.
  34. Thorsten Leemhuis: Die Neuerungen von Linux 2.6.34. In: Heise online. 17. Mai 2010. S. 3: Linux 2.6.34: Dateisysteme, Netzwerk. Abgerufen am 30. November 2015.
  35. Thorsten Leemhuis: Kernel-Log – Was 2.6.34 bringt (2): Dateisysteme. In: Heise online. 23. April 2010. Abgerufen am 9. Dezember 2016.
  36. Thorsten Leemhuis: Kernel-Log: Cluster-Dateisystem Ceph in 2.6.34, Kernel- und KVM-Vorträge von den CLT2010. In: Heise online. 22. März 2010. Abgerufen am 9. Dezember 2016.
  37. Thorsten Leemhuis: Kernel-Log – Was 2.6.34 bringt (3): Grafik. In: Heise online. 5. Mai 2010. Abgerufen am 9. Dezember 2016.
  38. Oliver Diedrich: Entwicklung von Linux 2.6.35 läuft an. In: Heise online. 31. Mai 2010. Abgerufen am 9. Dezember 2016.
  39. Thorsten Leemhuis: Eine Flut neuer Stable-Kernel und ein Ausblick auf Linux 2.6.35. In: Heise online. 6. Juli 2010. Abgerufen am 9. Dezember 2016.
  40. Andi Kleen: The longterm Linux 2.6.35.14 kernel is released. lkml.org, 1. August 2011, abgerufen am 7. Mai 2012 (englisch).
  41. Thorsten Leemhuis: Die Neuerungen von Linux 2.6.36. In: Heise online. 21. Oktober 2010. Abgerufen am 17. August 2015.
  42. Thorsten Leemhuis: Kernel-Log: 2.6.36, neue Stable-Kernel, frische Treiber. In: Heise online. 11. August 2010. Abgerufen am 17. August 2015.
  43. Thorsten Leemhuis: Hauptentwicklungsphase des Linux-Kernels 2.6.36 abgeschlossen. In: Heise online. 16. August 2010. Abgerufen am 17. August 2015.
  44. Thorsten Leemhuis: Hauptentwicklungsphase des Linux-Kernel 2.6.37 abgeschlossen. In: Heise online. 1. November 2010. Abgerufen am 15. Februar 2015.
  45. Thorsten Leemhuis: Kernel-Log: Wunderpatch integriert, verbesserte Grafiktreiber am Start. In: Heise online. 7. Januar 2011. Abgerufen am 10. März 2015.
  46. Thorsten Leemhuis: Kernel-Log – Was 2.6.38 bringt (6): Treiber. In: Heise online. 9. März 2011. Abgerufen am 15. Februar 2015.
  47. Thorsten Leemhuis: Kernel-Log: Erster Release Candidate von Linux 2.6.39. In: Heise online. 30. März 2011. Abgerufen am 8. Februar 2015.
  48. Thorsten Leemhuis: Die Neuerungen von Linux 2.6.39. In: Heise online. 19. Mai 2011. Abgerufen am 8. Februar 2015.
  49. Arnd Bergmann: BKL: That’s all, folks. git.kernel.org, 25. Januar 2011, abgerufen am 18. August 2017.
  50. Thorsten Leemhuis: Erste Vorabversion von Linux 3.0 erschienen. In: Heise online. 30. Mai 2011. Abgerufen am 24. Januar 2015.
  51. Jörg Thoma: Kernel: Linux 3.0 ist fertig. golem.de, 22. Juli 2011, abgerufen am 6. Januar 2015.
  52. Thorsten Leemhuis: Linux-Kernel 3.0 freigegeben. In: Heise online. 22. Juli 2011. Abgerufen am 6. Januar 2015.
  53. Thorsten Leemhuis: Kernel-Log – Was 3.1 bringt (3): Architektur, Infrastruktur, Virtualisierung. In: Heise online. 17. September 2011. Abgerufen am 6. Januar 2015.
  54. Mirko Dölle: Android-Treiber sollen in Kernel 3.3 einfließen. In: Heise online. 23. Dezember 2011. Abgerufen am 16. November 2014.
  55. Jörg Thoma: Stromsparoption RC6 in Linux-Kernel funktionstüchtig. golem.de, 15. Februar 2012, abgerufen am 21. Mai 2012.
  56. Thorsten Leemhuis: Kernel-Log – Was 3.3 bringt (4): Treiber. In: Heise online. 8. März 2012. Abgerufen am 21. Mai 2012.
  57. Thorsten Leemhuis: Die Neuerungen von Linux 3.4. In: Heise online. 21. Mai 2012. Abgerufen am 21. Mai 2012.
  58. Thorsten Leemhuis: Kernel-Log – Was 3.5 bringt (1): Netzwerk. In: Heise online. 25. Juni 2012. Abgerufen am 27. Juni 2012.
  59. Thorsten Leemhuis: Kernel-Log: Entwicklung von Linux 3.6 läuft. In: Heise online. 2. August 2012. Abgerufen am 11. Mai 2014.
  60. Thorsten Leemhuis: Linux-Kernel 3.7 veröffentlicht. In: Heise online. 11. Dezember 2012. Abgerufen am 13. Dezember 2012.
  61. Thorsten Leemhuis: Kernel-Log – Was 3.8 bringt (1): Dateisysteme und Storage. In: Heise online. 21. Januar 2013. Abgerufen am 16. Februar 2013.
  62. Thorsten Leemhuis: Kernel-Log – Was 3.8 bringt (2): Infrastruktur. In: Heise online. 8. Februar 2013. Abgerufen am 16. Februar 2013.
  63. a b Jörg Thoma: Linux Kernel: Torvalds schließt Merge-Fenster für Linux 3.9. golem.de, 4. März 2013, abgerufen am 6. März 2013.
  64. Meta SoC Processors (Memento vom 15. März 2013 im Internet Archive) – Seite bei Imagination Technologies, abgerufen am 7. März 2013 (englisch).
  65. DesignWare ARC 700 Processor Core Family – Seite bei Synopsys, abgerufen am 7. März 2013 (englisch).
  66. Hans-Joachim Baader: Linux-Kernel 3.9 tritt in die Testphase ein. Pro-Linux, 4. März 2013, abgerufen am 7. März 2013.
  67. Thorsten Leemhuis: Kernel-Log – Was 3.10 bringt (4): Treiber. In: Heise online. 28. Juni 2013. Abgerufen am 10. Juli 2013.
  68. Thorsten Leemhuis: Die Neuerungen von Linux 3.9. In: Heise online. 29. April 2013. S. 3: Fazit, Trends, Statistik. Abgerufen am 10. Juli 2013.
  69. Thorsten Leemhuis: Die Neuerungen von Linux 3.10. Heise, 1. Juli 2013, abgerufen am 10. Juli 2013.
  70. Thorsten Leemhuis: Kernel-Log – Was 3.11 bringt (2): Infrastruktur. Heise, 19. August 2013, abgerufen am 20. August 2013.
  71. Thorsten Leemhuis: "Linux for Workgroups": Funktionsumfang von Linux 3.11 steht. Heise, 15. Juli 2013, abgerufen am 13. März 2018.
  72. Thorsten Leemhuis: Linux 3.12 bringt Optimus- und SYN-Proxy-Unterstützung. Heise, 17. September 2013, abgerufen am 18. September 2013.
  73. Thorsten Leemhuis: Die Neuerungen von Linux 3.12: Netzwerk. Heise, 4. November 2013, abgerufen am 6. November 2013.
  74. Thorsten Leemhuis: Kernel-Log – Was 3.12 bringt (1): Dateisysteme & Storage. Heise, 8. Oktober 2013, abgerufen am 6. November 2013.
  75. Thorsten Leemhuis: Die Neuerungen von Linux 3.13. Heise online, 20. Januar 2014, abgerufen am 20. Januar 2014.
  76. Thorsten Leemhuis: Kernel-Log – Was 3.13 bringt (5): Grafiktreiber. Heise online, 10. Januar 2014, abgerufen am 20. Januar 2014.
  77. Thorsten Leemhuis: Kernel-Log – Was 3.13 bringt (1): Dateisysteme und Storage. Heise online, 10. Dezember 2013, abgerufen am 20. Januar 2014.
  78. a b Jörg Thoma: Prozessfristen: Linux 3.14 erhält Deadline Scheduler. golem.de, 31. März 2014, abgerufen am 31. März 2014.
  79. Peter Siering: Xen 4.4: virtuelle Maschinen für ARM. heise.de, 10. März 2014, abgerufen am 11. März 2014.
  80. Thorsten Leemhuis: Kernel-Log – Was 3.15 bringt (1): Dateisysteme und Storage. heise.de, 6. Mai 2014, abgerufen am 6. Mai 2014.
  81. Thorsten Leemhuis: Die Neuerungen von Linux 3.16. heise.de, 4. August 2014, abgerufen am 17. August 2014.
  82. Thorsten Leemhuis: Die Neuerungen von Linux 3.17. heise.de, 6. Oktober 2014, abgerufen am 10. November 2014.
  83. Hans-Joachim Baader: Linux-Kernel 3.18 freigegeben. Pro-Linux, 8. Dezember 2014, abgerufen am 8. Dezember 2014.
  84. Thorsten Leemhuis: Linux 3.19 freigegeben: HSA-Support für AMD-Chips. Heise online, 9. Februar 2015, abgerufen am 9. Februar 2015.
  85. Jörg Thoma: Linux 3.19: Mehr für die Grafik und für das Netzwerk. golem.de, 9. Februar 2015, abgerufen am 9. Februar 2015.
  86. Zeitgemäße Linux-IPCLinux-Magazin, Ausgabe 02/2015
  87. Thorsten Leemhuis: Linux-Kernel macht Versionssprung auf 4.0. heise.de, 23. Februar 2015, abgerufen am 23. Februar 2015.
  88. Jörg Thoma: Version 4.0 patcht sich selbst im laufenden Betrieb. golem.de, 23. Februar 2015, abgerufen am 23. Februar 2015.
  89. Thorsten Leemhuis: Linux 4.1 freigegeben: Ext4 verschlüsselt jetzt selbst. heise.de, 22. Juni 2015, abgerufen am 22. Juni 2015.
  90. Thorsten Leemhuis: Linux 4.2-rc1: Neuer Grafiktreiber von AMD integriert. heise.de, 6. Juli 2015, abgerufen am 19. Juli 2015.
  91. Thorsten Leemhuis: Linux-Kernel 4.3 wird neue AMD- und Intel-Grafikprozessoren unterstützen. heise.de, 5. September 2015, abgerufen am 15. September 2015.
  92. Thorsten Leemhuis: Linux 4.3 wird IPv6-Unterstützung standardmäßig nutzen. heise.de, 14. September 2015, abgerufen am 15. September 2015.
  93. Greg Kroah-Hartman: The Linux 4.4 kernel will be the next LTS (long term support) release... Greg Kroah-Hartman, 28. Oktober 2015, abgerufen am 2. November 2015 (englisch).
  94. Thorsten Leemhuis: Linux 4.4 freigegeben: Neue Grafiktreiber und Optimierungen für SSDs. heise.de, 11. Januar 2016, abgerufen am 13. August 2016.
  95. Sebastian Grüner: Kernel: Linux 4.4 erscheint mit Grafiktreiber für Raspberry Pi. golem.de, 11. Januar 2016, abgerufen am 13. August 2016.
  96. Thorsten Leemhuis: Linux 4.5: Verbesserte 3D-Treiber und reibungslose Verbindungswechsel. heise.de, 25. Januar 2016, abgerufen am 13. August 2016.
  97. Ferdinand Thommes: Kernel: Linux 4.5-rc1 wertet AMDGPU mit Powerplay auf. golem.de, 11. Januar 2016, abgerufen am 13. August 2016.
  98. Thorsten Leemhuis: Die Neuerungen von Linux 4.5. heise.de, 14. März 2016, abgerufen am 15. Mai 2016.
  99. Ferdinand Thommes: Kernel: Linux 4.6-rc1 mit neuem Dateisystem OrangeFS. golem.de, 28. März 2016, abgerufen am 13. August 2016.
  100. Thorsten Leemhuis: Linux 4.6 wird 3D-Beschleunigung aktueller GeForce-Chips unterstützen. heise.de, 29. März 2016, abgerufen am 15. Mai 2016.
  101. Thorsten Leemhuis: Linux 4.7 soll AMDs neue Radeon-Grafikkarten unterstützen. heise.de, 30. Mai 2016, abgerufen am 2. Juli 2016.
  102. Ferdinand Thommes: LLinux 4.7-rc1 unterstützt AMDs Polaris. golem.de, 30. Mai 2016, abgerufen am 12. Dezember 2016.
  103. Thorsten Leemhuis: Linux 4.7 vermeidet Netzwerk-Latenzen und unterstützt SMR-Festplatten besser. heise.de, 15. Juni 2016, abgerufen am 15. Juni 2016.
  104. Thorsten Leemhuis: Linux 4.7 freigegeben: RX-480-Treiber und verbesserte Sicherheit. heise.de, 25. Juli 2016, abgerufen am 18. August 2016.
  105. Thorsten Leemhuis: Linux 4.8 bringt Treiber für neue ARM-, Intel- und Nvidia-Grafikprozessoren. heise.de, 8. August 2016, abgerufen am 16. August 2016.
  106. Jörg Thoma: Betriebssysteme: Linux 4.8 übertaktet AMD-Grafikkarten. golem.de, 8. August 2016, abgerufen am 16. August 2016.
  107. Thorsten Leemhuis: Linux 4.9 wird Sicherheit verbessern und neue Treiber bringen. heise.de, 17. Oktober 2016, abgerufen am 18. Oktober 2016.
  108. Ferdinand Thommes: Kernel: Linux 4.9rc1 erscheint mit Protokoll für Project-Ara-Module. golem.de, 17. Oktober 2016, abgerufen am 18. Oktober 2016.
  109. Hans-Joachim Baader: Erste Vorschau auf Linux-Kernel 4.10. pro-linux.de, 26. Dezember 2016, abgerufen am 5. November 2017.
  110. Thorsten Leemhuis: Linux 4.10 Neue Wege zur Grafikbeschleunigung in virtuellen Maschinen. heise.de, 17. Januar 2017, abgerufen am 5. November 2017.
  111. Hans-Joachim Baader: Linux-Kernel 4.10 freigegeben. In: pro-linux.de. 19. Februar 2017, abgerufen am 19. Februar 2017.
  112. Linux-Kernel 4.11: Längere Akkulaufzeit durch NVMe-StromspartechnikHeise, am 6. März 2017
  113. Thorsten Leemhuis: Die Neuerungen von Linux 4.11. heise.de, 16. April 2017, abgerufen am 5. November 2017.
  114. Thorsten Leemhuis: Die Neuerungen von Linux 4.12. heise.de, 3. Juli 2017, abgerufen am 23. Juli 2017.
  115. Thorsten Leemhuis: Die Neuerungen von Linux 4.13. heise.de, 4. September 2017, abgerufen am 24. September 2017.
  116. Greg Kroah-Hartman: As no one seemed to make 4.9 blow up too badly, let’s try this again! plus.google.com, 17. Juni 2017, abgerufen am 17. Juni 2017 (englisch).
  117. Thorsten Leemhuis: Die Neuerungen von Linux 4.14. heise.de, 17. September 2017, abgerufen am 18. März 2018.
  118. Thorsten Leemhuis: Die Neuerungen von Linux 4.15. heise.de, 28. Januar 2018, abgerufen am 18. März 2018.
  119. Thorsten Leemhuis: Die Neuerungen von Linux 4.17. heise.de, 4. Juni 2018, abgerufen am 4. Juni 2018.
  120. Thorsten Leemhuis: Linux 4.18 freigegeben. heise.de, 13. August 2018, abgerufen am 13. August 2018.
  121. Thorsten Leemhuis: Kernel-Log: Linux 4.19: Flackerfrei starten und Strom sparen. heise.de, 12. Oktober 2018, abgerufen am 24. Oktober 2018.
  122. Thorsten Leemhuis: Linux 4.19: Schöner starten und bereit für das WLAN von Morgen. heise.de, 22. Oktober 2018, abgerufen am 24. Oktober 2018.
  123. Thorsten Leemhuis: Linux 4.20 freigegeben: Performance-Optimierungen und neue Treiber. heise.de, 12. Dezember 2018, abgerufen am 24. Dezember 2018.
  124. Thorsten Leemhuis: Linux 5.0 ist da: Geschwindigkeit zurückerobern und moderner speichern. heise.de, 4. März 2019, abgerufen am 24. Juni 2019.
  125. Thorsten Leemhuis: Linux 5.1: Performance-Verbesserungen und neue Speichertechnik. heise.de, 6. Mai 2019, abgerufen am 24. Juni 2019.
  126. Linux 5.2 freigegeben: Änderungsrekord und Geschwindigkeitsverbesserungenc't Magazin, am 9. Juli 2019
  127. Thorsten Leemhuis: Linux 5.3 freigegeben: Prioritäten deckeln und Trouble für Nvidia. Abgerufen am 26. November 2019.
  128. Thorsten Leemhuis: Linux 5.4 freigegeben: exFAT-Support und Einschränkungen für Root. Abgerufen am 26. November 2019.
  129. Thorsten Leemhuis: Linux 5.5 freigegeben: Wireguard-Fundament und Performance-Verbesserungen. Abgerufen am 27. Januar 2020.
  130. Thorsten Leemhuis: Linux 5.6 freigegeben: Wireguard- und USB4-Support. Abgerufen am 6. April 2020.
  131. Thorsten Leemhuis: Linux 5.6 unterstützt Wireguard und USB4. Abgerufen am 6. April 2020.
  132. Oliver Müller: Linux 5.18 kommt als „kleine Revolution“. In: Heise online. 24. Mai 2022. S. 3: Probleme mit altem C. Abgerufen am 27. Mai 2022.; Zitat: „Der neue Linux-Kernel … wechselt erstmalig zu einem neueren C-Standard. … Bislang war das Programmieren nach dem C89-Standard in Kernel-Kreisen Pflicht. … [Jakob] Koschel hatte eine Unsicherheit identifiziert, die auf ein in C89 nicht lösbares Problem zurückzuführen war. … Erstmalig in der Geschichte des Kernel wechselt der C-Standard weg von C89 zu C11. Damit ist fortan der Sprachstandard aus dem Jahr 2011 die Grundlage für die Programmierung des Kernels. Was nach einer Formalie aussieht, ist ein kontrolliertes Wagnis.“.
  133. Thorsten Leemhuis: Die Neuerungen von Linux 2.6.25. Daten und Zahlen zu den jüngsten Versionen des Linux-Kernels. Heise online, 17. April 2008, S. 6, abgerufen am 28. September 2010.
  134. Thorsten Leemhuis: Die Neuerungen von Linux 2.6.31. Daten und Zahlen zu den jüngsten Versionen des Linux-Kernels. Heise online, 10. September 2009, S. 6, abgerufen am 28. September 2010.
  135. Thorsten Leemhuis: Die Neuerungen von Linux 2.6.38. Daten und Zahlen zu den jüngsten Versionen des Linux-Kernels. Heise online, 15. März 2011, S. 8, abgerufen am 15. März 2011.
  136. Thorsten Leemhuis: Die Neuerungen von Linux 3.0. Daten und Zahlen zu den jüngsten Versionen des Linux-Kernels. Heise online, 22. Juli 2011, S. 4, abgerufen am 25. Juli 2011.
  137. Dr. Oliver Diedrich: The Next Generation – Linux 2.6: Fit für die Zukunft. in der c't 24/2003 (am 17. November 2003), Seite 194
  138. Marcel Hilzinger: Con Kolivas meldet sich mit neuem Scheduler zurück. Linux-Magazin, 2. September 2009, abgerufen am 27. April 2014.
  139. Richard M. Stallman: Linux, GNU, and freedom. gnu.org, 10. Juli 2014, abgerufen am 12. Februar 2015 (englisch).
  140. Linus Torvalds: GPL V3 and Linux – Dead Copyright Holders. 25. Januar 2006, abgerufen am 24. März 2009 (englisch, Nachricht auf der Linux-Kernel-Mailingliste).