Linux (Kernel)
Linux(deutsch[ ]) ist einBetriebssystem-Kernel,der im Jahr 1991 vonLinus Torvaldsursprünglich für die32-Bit-x86-Architektur„i386“,retronym„IA-32“,entwickelt und ab Version 0.12 unter derfreienGNU General Public License(GPL) veröffentlicht wird.[5]Er ist heute Teil einer Vielzahl vonBetriebssystemen.
Linux | |
---|---|
Startender Systemkern (Version 3.0.0) inDebian | |
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.11.8[4]vom14. November 2024 |
Architektur(en) | IA-32(inkl.x64),Alpha AXP,SPARC,Motorola 68k,PowerPC,POWER,Arm,Hitachi SuperH,z Systems,MIPS,PA-RISCund weitere |
Sprache(n) | Englisch |
kernel.org |
Der NameLinuxsetzt sich zusammen aus dem Namen Linus und einem X für das als Vorbild dienendeUnix.Er bezeichnet im weiteren Sinne mittlerweile nicht mehr nur den Kernel selbst, sondern übertragen davon ganzeLinux-basierte SystemeundDistributionen.Dies führte zumGNU/Linux-Namensstreit.
Grundlegende Technologie
BearbeitenAufgaben des Kernels
BearbeitenDer Kernel eines Betriebssystems bildet diehardwareabstrahierende Schicht,das heißt, er stellt der auf dieser Basis aufsetzendenSoftwareeine einheitlicheSchnittstelle(API) zur Verfügung, die unabhängig von derRechnerarchitekturist. 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 modularermonolithischer Kernelund zuständig fürSpeicherverwaltung,Prozessverwaltung,Multitasking,Lastverteilung, Sicherheitserzwingung und Eingabe/Ausgabe-Operationen auf verschiedenen Geräten.
Programmiersprache
BearbeitenLinux ist fast ausschließlich in der ProgrammierspracheCgeschrieben, wobei einigeGNU-C-Erweiterungen benutzt werden. Eine Ausnahme bilden die architekturabhängigen Teile des Codes (im Verzeichnisarchinnerhalb der Linux-Sourcen), wie zum Beispiel der Beginn des Systemstarts (Bootvorgang), der inAssemblersprachegeschrieben ist. Die Aufnahme vonRustals weitere Programmiersprache ist für die Mainline-Kernel ab Version 6.1 vorgesehen, insbesondere fürGerätetreiber.[6]
Funktionsweise
BearbeitenBei einem striktmonolithischen Kernelwird der gesamteQuellcodeinklusive allerTreiberin 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 imArbeitsspeicherhalten zu müssen.
Sind Teile derHardwarespezifikationennicht genügend offengelegt, so stützt sich Linux notfalls über spezielleVM86-Modiauch auf dasBIOSdes Systems, u. a. auf die Erweiterungen gemäß den StandardsAPM,ACPIundVESA.Um unter diesen Voraussetzungenx86-kompatible Hardware z. B. auf derDEC-Alpha-Plattform zu betreiben, werden teilweise sogarEmulatorenzur Ausführung entsprechendenROM-Codesverwendet. Linux selbst übernimmt das System beimBootprozesstypischerweise in dem Moment, in dem derBootloaderderSystemfirmware(„BIOS “) erfolgreich war und daher alle Systeminitialisierungen des BIOS abgeschlossen sind.
Der Kernel ist ein Betriebssystemkern und darf nicht als das eigentlicheBetriebssystemverstanden 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)
Schnittstellen
BearbeitenMan 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 externenProgrammierschnittstellewird 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.
DieBinärschnittstelledes Kernels ist unerheblich, auf das komplette Betriebssystem kommt es an. DieLinux 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.[7]
Architektur
BearbeitenAnwenderprogramme (z.B. Textverarbeitung, Tabellenkalkulation oder Browser) | User Mode | |||
Complex Libraries (GLib,GTK+,Qt,SDL,EFL) | ||||
Simple Librariessin, opendbm | ||||
C-Standard-Bibliothek:glibcopen, exec, sbrk, socket, fopen, calloc | ||||
SystemaufrufeTRAP, CALL, BRK, INT(je nach Hardware) | Kernel Mode | |||
Kernel (Gerätetreiber, Prozesse, Netzwerk, Dateisystem) | ||||
Hardware (Prozessor(en), Speicher, Geräte) |
Linux ist einmonolithischer Kernel.Die Treiber im Kernel und die Kernel-Modulelaufen imprivilegiertenModus (x86:Ring0), haben also unbeschränkten Zugriff auf dieHardware.Einige wenige Module des Kernels laufen im eingeschränkten Benutzermodus (x86: Ring 3). DieLevel1 und 2 derx86-Architekturwerden 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 dasDateisystemzugegriffen werden kann. Man kann allerdings den Kernel so konfigurieren, dass einCramFS- oderInitramfs-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 einenFehlerdas System zum Absturz bringen kann.
Linux stellt wie sein VorbildUnixeine 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 einemMicrokernelbasiert, war Thema eines berühmtenFlame WarszwischenLinus TorvaldsundAndrew S. Tanenbaum.Anfang der1990erJahre, als Linux entwickelt wurde, galten monolithische Kernels alsobsolet(Linux war zu diesem Zeitpunkt noch rein monolithisch). Die Diskussion und Zusammenfassungen sind im ArtikelGeschichte von Linuxnäher beschrieben.
Durch Erweiterungen wieFUSEund durch die zunehmende Verwendung von Kernel-Prozessen fließen mittlerweile auch zahlreiche Microkernel-Konzepte in Linux ein.
Portierbarkeit
BearbeitenObwohl Linus Torvalds eigentlich nicht beabsichtigt hatte, einenportierbarenKernel zu schreiben, hat sich Linux dank des GNU CompilersGCCweitreichend in diese Richtung entwickelt. Es ist inzwischen eines der am häufigsten portierten Systeme (nur nochNetBSDläuft auf etwa gleich vielen Architekturen). Das Repertoire reicht dabei von eher selten anzutreffenden Betriebsumgebungen wie demiPAQ-Handheld-Computer,Digitalkamerasoder Großrechnern wie IBMsSystem zbis hin zu normalenPCs.
Obwohl die Portierung auf die S/390 ursprünglich ein vom IBM-Management nicht genehmigtes Unterfangen war(siehe auch:Skunk works),planteIBMauch die IBM-SupercomputergenerationBlue Genemit 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:[8]
- IA-32(x86 ab demi386) – 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 die64-Bit-Alpha-Architektur (auf einemDEC-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 aufSPARCvonSun Microsystems,einer damals weit verbreiteten Architektur. Doch lief Linux 2.0 von Mitte 1996 offiziell auf IA-32 und Alpha, konnte aber bereitsSMP.
Mit Linux 2.2 vom Januar 1999 kamen folgende Ports hinzu:[8]
- SPARC/UltraSPARC vonOracle(ursprünglich vonSun)
- 68000(m68k) vonMotorola
- PowerPC(ppc) vonApple,IBM und Motorola (AIM-Allianz)
Mit Linux 2.4 vom Januar 2001 kamen schließlich folgende Architekturen hinzu:[8]
Trotz der unterstütztenBefehlssatzarchitekturen(englischInstruction 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:
- Acorn Archimedes,A5000undRisc-PC-Serie (Arm,StrongARM,IntelXScaleusw.)
- AlphavonCompaq
- Axis Communications’CRIS
- Blackfin
- Hitachi H8/300
- Hewlett-PackardPA-RISC
- IBMS/390undz Systems
- MIPS:Maschinen vonSilicon Graphics…
- Motorola 68020und neuer: spätereAmigas,einigeAtariund vieleApple Computerab 1987 (Macintosh II) bis 1995 (sieheLinux68k)
- NECv850e
- PowerPC:die meistenApple Computerzwischen 1994 und 2006 (allePCI-basiertenPower Macintosh,derNintendo GameCube;begrenzte Unterstützung fürNuBusPower Macs bis Kernel 2.4.x, die weitere Entwicklung wurde in das ProjektPPC/Linux for NuBus Power Macsausgelagert[9]), Clones der Power Macs vonPower Computing,UMAXundMotorola,mit einer „Power-UP “-Karte verbesserteAmigas(z. B. Blizzard oder CyberStorm) bzw. dessen NachfolgerAmigaOne,sowohlIBM Powerals auch PowerPC-basierte IBMRS/6000-Systeme, verschiedene eingebettete PowerPC-Plattformen
- Sun/Oracle SPARCund UltraSparc: Workstations vonSun- bzw.Oracle
- SuperHvonHitachi:SegaDreamcast
- OpenRISC
- RISC-V
- x86-Architektur:
- x86-16-Bit: im Rahmen des ELKS-Projektes werden IBM-PC-kompatible Computer mit den 16-Bit-Prozessoren8086,8088,80186,80188,80286und dazu kompatiblen unterstützt. Die Abkürzung „ELKS “steht fürEmbeddable Linux Kernel Subsetund 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 PCsundkompatiblemitIntel 80386(bis Kernel 3.7, Anfang 2013)[10]bzw.Intel 80486und dazu kompatiblenx86-Prozessor-Architekturennachfolgender Generationen
- x86 64,64-Bit: Unter der Bezeichnung „amd64 “oderx64werden Prozessoren der x86-Architektur verstanden, die einen 64-Bit-Modus bieten (implementiert alsAMD64oderIntel 64). Dabei handelt es sich um die Nachfolger der ursprünglichen IBM-PC-kompatiblen Computer, die einen zumAMD Opteronkompatiblen x86-Prozessor nutzen, beispielsweise: vonAMDabAthlon 64,Turion,Phenomund vonIntelabCore 2,Xeon.
Binärschnittstellen der Arm-Architektur
BearbeitenLinux unterstützt zwei verschiedene Binärschnittstellen fürArm-Prozessoren. Die ältere Binärschnittstelle wird mit dem AkronymOABI (old application binary interface)bezeichnet und unterstützt die Prozessorarchitekturen bis einschließlich ARMv4, während die neuere Binärschnittstelle, die mitEABI (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.[11]
User Mode Linux
BearbeitenEin besonderer Port ist dasUser 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 denvirtuellen MaschinenvonJavaoder denjailsvonFreeBSDmöglich, in denen ein normaler Benutzer Root-Rechte haben kann, ohne dem tatsächlichen System schaden zu können.
µClinux
BearbeitenµClinuxist eine Linux-Variante für Computer ohneMemory Management Unit(MMU) und kommt vorwiegend aufMikrocontrollernundeingebetteten Systemenzum Einsatz. Seit Linux-Version 2.6 ist µClinux Teil des Linux-Projektes.
Entwicklungsprozess
BearbeitenDie Entwicklung von Linux liegt durch dieGNU General Public Licenseund durch ein sehr offenes Entwicklungsmodell nicht in der Hand von Einzelpersonen, Konzernen oder Ländern, sondern in der Hand einerweltweiten Gemeinschaftvieler 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 vielenMailinglisten,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 vonLinus Torvaldsund einigen besonders verdienten Programmierern, die das letzte Wort über die Aufnahme von Verbesserungen undPatchesin 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
BearbeitenDer Entwicklungsprozess des Kernels ist wie der Kernel selbst ebenfalls immer weiterentwickelt worden. So führte der Rechtsprozess derSCO Groupum angeblich illegal übertragenen Code in Linux zur Einführung eines „Linux Developer’s Certificate of Origin “, das von Linus Torvalds undAndrew Mortonbekanntgegeben wurde.[12]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. “
Das Versionskontrollsystem Git
BearbeitenDie Versionskontrolle des Kernels unterliegt dem ProgrammGit.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 VersionskontrollsystemBitKeepernicht mehr lange für die Kernelentwicklung genutzt werden konnte.
Kernel-Versionen
BearbeitenAuf der Websitekernel.orgwerden alle alten und neuen Kernel-Versionen archiviert. Die dort befindlichen Referenzkernel werden auch alsVanilla-Kernelbezeichnet (von umgangssprachlich engl.vanillafürStandardbzw.ohne Extrasim Vergleich zu Distributionskernels). Auf diesem bauen die Distributionskernel auf, die von den einzelnenLinux-Distributionenum weitere Funktionen ergänzt werden. Die Kernel-Version des geladenen Betriebssystems kann mit demSyscallunameabgefragt werden.
Versionsnummern-Schema
BearbeitenDie 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 dieVersionsnummernvon Linux einem bestimmten Schema:
Dieerste Zifferwird 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.
Diezweite Ziffergibt das jeweilige „Majorrelease “an. Bisher wurden stabile Versionen (Produktivkernel) von den Entwicklern stets 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 einedritte Zahldas „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.
Um die Korrektur eines schwerwiegendenNFS-Fehlers schneller verbreiten zu können, wurde mit der Version 2.6.8.1 erstmals einevierte Ziffereingeführt. Seit März 2005 (Kernel 2.6.11) wird diese Nummerierung offiziell verwendet.[14]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.1auf 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.[15]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,[16]nachdem er aufGoogle+Meinungen hierzu eingeholt hatte.[17]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 lediglich lakonisch damit, dass er sich wieder vor großen Nummern zu fürchten beginne.[18]
Entwicklerversion
BearbeitenNeue Funktionen finden sich im „-mm “-Kernel des KernelentwicklersAndrew Mortonund 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
BearbeitenWährend Torvalds die neuesten Entwicklungsversionen veröffentlicht, wurde die Pflege der älteren stabilen Versionen an andere Programmierer abgegeben. Gegenwärtig ist dafürGreg Kroah-Hartmanverantwortlich – mit Ausnahme des vonBen Hutchingsbetreuten 3.16-Zweigs. Zusätzlich zu diesen offiziellen und über Kernel.org oder einen seinerMirrorszu beziehenden Kernel-Quellcodes kann man auch alternative „Kernel-Trees “aus anderen Quellen benutzen.Distributorenvon 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 intensivgepatcht,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
BearbeitenFolgende Versionen werden besonders lange mit Support (Long Term Support) versorgt:[19]
Version | Veröffentlichung | Support-Ende (EOL) |
---|---|---|
4.19 | 22. Okt. 2018 | Dezember 2024 |
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 2026 |
6.6 | 29. Okt. 2023 | Dezember 2026 |
Versionsgeschichte
BearbeitenZeittafeln
BearbeitenDas 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
BearbeitenZweig | Version | Veröffentlichung[20] | Dateien(a) | Quellcode- zeilen(b) |
Größe inkB(c) |
Bemerkungen |
---|---|---|---|---|---|---|
0.01 | 17. September 1991 | 88 | 8.413 | 230 | erste Veröffentlichung; startete auf Systemen mitFloppy-Diskettenlaufwerkund386er-Prozessor, lud dabei die Treiber für dasMinix-Dateisystemund einefinnischeTastatur, sowie als einziges Anwendungsprogramm den Kommandozeileninterpreterbash[21] | |
1.0 | 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 | 1.1.0 | 6. April 1994 | 561 | 170.320 | 1.256 | Entwicklungsversion |
1.1.95 | 2. März 1995 | 2.301 | ||||
1.2 | 1.2.0 | 7. März 1995 | 909 | 294.623 | 2.301 | erste Portierungen auf weitere Prozessorarchitekturen, mitAlpha,MIPSundSPARC[22] |
1.2.13 | 2. August 1995 | 2.355 | ||||
1.3 | 1.3.0 | 12. Juni 1995 | 992 | 323.581 | 2.558 | Entwicklungsversion mit erster Unterstützung fürMehrprozessorsysteme[22] |
1.3.100 | 10. Mai 1996 | 5.615 | ||||
2.0 | 2.0.0 | 9. Juni 1996 | 2.015 | 716.119 | 5.844 | erste Unterstützung fürsymmetrische Mehrprozessorsysteme[22],Einführung von Kernel-Modulen. |
2.0.40 | 8. Februar 2004 | 7.551 | ||||
2.1 | 2.1.0 | 30. September 1996 | 1.727 | 735.736 | 6.030 | Entwicklungsversion |
2.2.0-pre9 | 21. Januar 1999 | 13.077 | ||||
2.2 | 2.2.0 | 26. Januar 1999 | 4.599 | 1.676.182 | 13.080 | erste Unterstützung für das NetzwerkprotokollIPv6sowie Portierung auf die PlattformenUltraSPARCundPA-RISC[22] |
2.2.26 | 24. Februar 2004 | 19.530 | ||||
2.3 | 2.3.0 | 11. Mai 1999 | 4.721 | 1.763.358 | 13.804 | Entwicklungsversion |
2.3.99-pre9 | 23. Mai 2000 | 20.882 | ||||
2.4 | 2.4.0 | 4. Januar 2001 | 8.187 | 3.158.560 | 24.379 | erste Unterstützung für den EnergieverwaltungsstandardACPIund für den DatenbusUSB,[22]Large File Support[23],Einführung desNetfilterund deriptables;[24]letzter gepflegter Zweig vor 2.6[25] |
2.4.37 | 2. Dezember 2008 | 38.735 | Letzte Version war2.4.37.11am 18. Dezember 2010 | |||
2.5 | 2.5.0 | 23. November 2001 | 9.893 | 3.833.603 | 29.405 | Entwicklungsversion |
2.5.75 | 10. Juli 2003 | 40.969 | ||||
2.6 | 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[22] |
→ für alle nachfolgenden Versionen sieheAbschnitt „Versionsgeschichte ab Version 2.6 “ | ||||||
Legende: Alte Version |
Versionsgeschichte ab Version 2.6
BearbeitenBei 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 (englischLines of Code) erweitert. Das mit dem Datenkompressionsprogrammgzipkomprimiertetar-Archiv(.tar.gz) wächst im Mittel um rund 2Megabytemit jeder veröffentlichten Hauptversion.
Version | Veröffentlichung[20] | Anzahl der Dateien(a) | Quelltext- zeilen(b) |
Größe inkB(c) |
Zeitraum in Tagen(d) |
Bemerkungen |
---|---|---|---|---|---|---|
2.6.13 | 28. Aug. 2005 | u. a. wurdeInotifyaufgenommen[26] | ||||
2.6.20 | 4. Feb. 2007 | 21.280 | 8.102.486 | 54.548 | 66 | erste Unterstützung für die VirtualisierungstechnikKVM[27] |
2.6.21 | 26. Apr. 2007 | 21.614 | 8.246.470 | 55.329 | 80 | |
2.6.22 | 8. Juli 2007 | 22.411 | 8.499.363 | 56.914 | 74 | |
2.6.23 | 9. Okt. 2007 | 22.530 | 8.566.554 | 57.404 | 93 | |
2.6.24 | 24. Jan. 2008 | 23.062 | 8.859.629 | 59.079 | 107 | |
2.6.25 | 17. Apr. 2008 | 23.810 | 9.232.484 | 61.518 | 83 | |
2.6.26 | 13. Juli 2008 | 24.270 | 9.411.724 | 62.550 | 88 | |
2.6.27 | 9. Okt. 2008 | 24.354 | 9.709.868 | 63.721 | 88 | wurde nachträglich mit Unterstützung für neue Hardware (wieSAS) erweitert;[28] Dieser Zweig hatteLong Term Support,die letzte Version war2.6.27.62am 17. März 2012 |
2.6.28 | 24. Dez. 2008 | 25.255 | 10.195.507 | 66.766 | 76 | |
2.6.29 | 23. März 2009 | 26.668 | 11.010.647 | 71.977 | 89 | Aufnahme desBtrfs[29][30] |
2.6.30 | 10. Juni 2009 | 27.879 | 11.637.173 | 75.768 | 78 | USB-3.0-Unterstützung |
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 alsAdvanced Format) |
2.6.32 | 3. Dez. 2009 | 30.485 | 12.610.030 | 81.901 | 84 | DieserLTS-Zweig wurde von Willy Tarreau betreut, die letzte Version war2.6.32.71am 12. März 2016 |
2.6.33 | 24. Feb. 2010 | 31.565 | 12.990.041 | 84.533 | 83 | bildet die Grundlage für einenEchtzeit-Zweig;[31] Letzte Version war2.6.33.20am 7. November 2011[32] |
2.6.34 | 16. Mai 2010 | 32.297 | 13.320.934 | 86.520 | 82 | Grafiktreiber für neuereAMD-Radeon-GPUs und die Grafikkerne von einigen erst Anfang nächsten Jahres erwartetenIntel-Prozessoren, neue Dateisysteme:LogFSundCeph;[33]viele Änderungen an den DateisystemenBtrfs,ext4,NILFS2,SquashFSundXFS,[34]demSCSI-Subsystem und dem Architektur-Code fürArm-,Blackfin- undMicroBlaze-CPUs;[35]bessere Unterstützung für neue und ältereAMD- und Intel-Chips; größere Umbaumaßnahmen amNouveau-Treiber fürNvidia-Grafik;[36] DieserLTS-Zweig wurde von Paul Gortmaker betreut, die letzte Version war2.6.34.15am 10. Februar 2014 |
2.6.35 | 1. Aug. 2010 | 33.316 | 13.545.604 | 88.301 | 77 | neu sind unter anderem ein verbesserter Netzwerkdurchsatz,defragmentierbarerArbeitsspeicher und die Unterstützung für dieTurbo-Core-Funktion moderner AMD-Prozessoren;[37]die Unterstützung für die Stromsparfunktionen von Radeon-Grafikchips wurde verbessert, sowie die neuenH.264-Dekodierfunktionen für den Grafikkern in IntelsCore-i5-Prozessoren (auchIronlakegenannt);[38] Letzte Version war2.6.35.14am 13. März 2012[39] |
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[40]– unter anderem das Sicherheits-FrameworkAppArmor,die Schnittstelle „LIRC“(für das in Version 2.6.35 eingeführte System zur Nutzung von Infrarot-Fernbedienungen) und eine verbesserte Energieverwaltung fürGrafikprozessoren;[41]Unterstützung für Echtzeit-Virenscanner;[42] Letzte Version war2.6.36.4am 17. Februar 2011 |
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ürUSB 3.0), eine verbesserteSkalierungundVirtualisierungfürMehrkernprozessoren;[43] Letzte Version war2.6.37.6am 27. März 2011 |
2.6.38 | 15. März 2011 | 35.864 | 14.208.866 | 94.144 | 69 | Unterstützung für dieAMD-Radeon-HD-6000-Serieund für AMDsAPUs,[44]sowie Verbesserungen für Audio- und Video-Verarbeitung als auch fürberührungsempfindliche Bildschirme;[45] Letzte Version war2.6.38.8am 3. Juni 2011 |
2.6.39 | 19. Mai 2011 | 36.705 | 14.533.582 | 95.994 | 65 | Unterstützung für Firewall-IP sets,[46][47]derBig Kernel Lockwird entfernt;[48] Letzte Version war2.6.39.4am 3. August 2011 |
3.0 | 22. Juli 2011 | 36.781 | 14.646.952 | 96.676 | 64 | neues Versionsnummernschema,[49]zudem neue Treiber u. a. für (virtuelle) Netzwerkgeräte und den Fernseh-StandardDVB-T2,sowie allgemein verbesserte Virtualisierung (u. a. durch abschließende Arbeiten an dem HypervisorXen) und viele kleine Verbesserungen (wie z. B. Schreib- und Lösch-Optimierungen für Dateisysteme);[50][51] DieserLTS-Zweig wurde von Greg Kroah-Hartman betreut, die letzte Version war3.0.101am 22. Oktober 2013 |
3.1 | 24. Okt. 2011 | 37.084 | 14.770.469 | 97.334 | 94 | neu ist u. a. die Unterstützung der Prozessor-PlattformOpenRISC;[52] Letzte Version war3.1.10am 18. Januar 2012 |
3.2 | 4. Jan. 2012 | 37.617 | 14.998.651 | ≈ 62.600 | 73 | neu ist u. a. die Unterstützung für die Prozessor-ArchitekturHexagondes UnternehmensQualcomm;zudem wurden u. a. einige Netzwerktreiber in das zugehörigeSubsystemausgelagert[32] DieserLTS-Zweig wurde von Ben Hutchings betreut, die letzte Version war3.2.102am 31. Mai 2018 |
3.3 | 18. März 2012 | 38.082 | 15.166.074 | ≈ 75.300 | 74 | neu ist u. a. die Unterstützung für dieAndroid-Plattform;[53] Letzte Version war3.3.8am 1. Juni 2012 |
3.4 | 20. Mai 2012 | 38.566 | 15.383.860 | ≈ 64.100 | 63 | neunteLTS-Freigabe; neu ist u. a. die Unterstützung desRuhezustand-ModusRC6;[54][55][56] DieserLTS-Zweig wurde zuletzt von Li Zefan betreut, die letzte Version war3.4.113am 26. Oktober 2016 |
3.5 | 21. Juli 2012 | 39.096 | 15.596.378 | ≈ 77.200 | 62 | die Unterstützung für die veralteten Netzwerk-StandardsToken RingundEconetwurde entfernt;[57] Letzte Version war3.5.7am 12. Oktober 2012 |
3.6 | 30. Sep. 2012 | 39.733 | 15.868.036 | ≈ 78.500 | 71 | u. a. wurde die Energiespar- oder Schlaffunktion, für denBereitschaftsbetriebundRuhezustanddes gesamten Systems, weiterentwickelt;[58] Letzte Version war3.6.11am 17. Dezember 2012 |
3.7 | 11. Dez. 2012 | 40.905 | 16.191.690 | ≈ 79.800 | 71 | u. a.NATfürIPv6,Unterstützung für denArm-64-Bit-Befehlssatz undExt4-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;[59] Letzte Version war3.7.10am 27. Februar 2013 |
3.8 | 18. Feb. 2013 | 41.520 | 16.416.874 | 84.623 | 70 | u. a. wurde die Unterstützung für das DateisystemF2FSeingefügt[60]und die Unterstützung fürIntel 80386-Prozessoren entfernt;[61]soll als Basis für die nächsteAndroid-Version dienen;[62] Letzte Version war3.8.13am 11. Mai 2013 |
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 BaureiheHTP(vonMeta)[63]sowieARC 700(vonSynopsys)[64]hinzugefügt und die Treiber für das DateisystemBtrfsum eine erste Unterstützung fürRaid5und6erweitert;[62][65] Letzte Version war3.9.11am 21. Juli 2013 |
3.10 | 30. Juni 2013 | 43.016 | 16.955.489 | ≈ 69.900 | 63 | unter anderem bessere Unterstützung für denUnified Video Decoder(UVD) vonAMD-Radeon-GPUs und bessere Unterstützung vonNvidia Tegra;Zudem wurden die Echtzeitfähigkeiten verbessert sowie die Nutzung vonSSDsalsCachefürFestplattenermöglicht.[66]Neu ist auch der Treiber für die HochgeschwindigkeitsübertragungstechnologieInfiniBand;[67] DieserLTS-Zweig wurde zuletzt von Willy Tarreau betreut, die letzte Version war3.10.108am 4. November 2017 |
3.11 | 2. Sep. 2013 | 44.002 | 17.403.279 | ≈ 71.600 | 63 | neben Optimierungen an den Grafik-Treibern, ist die Aufnahme von verschiedenen neuenWLAN- undLAN-Treibern sowie die Verbesserung derKVM- undXen-Unterstützung aufARM64vorgesehen;[68]wird der Arbeitsspeicher knapp kann dieser mit einemZswap(siehe auchZipundSwap) komprimiert werden;[69] Letzte Version war3.11.10am 29. November 2013 – Wegen ihrer Versionsnummer auchLinux for Workgroupsgenannt, angelehnt anMicrosoft’s Windows 3.11 for Workgroups.[70] |
3.12 | 3. Nov. 2013 | 44.586 | 17.726.872 | ≈ 73.000 | 62 | neben Optimierungen an denOptimus-Treibern, ist die Unterstützung einesSYN-Proxyhinzugekommen,[71]derSYN-Flooding-Angriffe verhindern soll;[72]Multithreadingbei mitMdadmangelegtenRaid-5-ArraysundBtrfsbeherrschtDeduplikation;[73] DieserLTS-Zweig wurde von Jiri Slaby betreut, die letzte Version war3.12.74am 9. Mai 2017 |
3.13 | 20. Jan. 2014 | 44.970 | 17.930.916 | ≈ 73.600 | 77 | enthält die neue Firewall-InfrastrukturNftables(welche die mit dem 2.4er eingeführtenIptablesablösen soll), bessere 3D-Leistung und Aktivierung desDynamic Power Management(DPM) beiAMD-Radeon-Grafikkarten.[74][75]Moderneres Multiqueue-Storage-Interface;[76] Letzte Version war3.13.11am 22. April 2014 |
3.14 | 31. März 2014 | 45.935 | 18.271.989 | ≈ 74.900 | 70 | einScheduler,der fürEchtzeitsystemegeeignet ist,[77]hinzugefügt und u. a. ist nunXen4.4 enthalten;[78]Unterstützung von neuen Grafikkernen und korrekte Funktion desUnified Video Decoder(UVD) für AMD Grafikchips ab HD 7000;[77] DieserLTS-Zweig wurde von Greg Kroah-Hartman betreut, die letzte Version war3.14.79am 11. September 2016 |
3.15 | 8. Juni 2014 | 46.780 | 18.632.574 | ≈ 76.000 | 53 | das Aufwachen aus demSuspend-to-RAM-Modus wurde beschleunigt undOpen File DescriptionLockseingeführt. Z. B.Videosoftwaresoll nun einfacher Teile einer Datei auslesen können undatomaresAustauschen von Dateien wird möglich. Die Unterstützung vonFUSE,XFSundFlash-Speichernmit einem Dateisystem darauf wurde ausgebaut;[79] Letzte Version war3.15.10am 14. August 2014 |
3.16 | 3. Aug. 2014 | 47.425 | 18.879.129 | ≈ 76.900 | 56 | eingeflossen sind u. a. Robustheitsmaßnahmen beim DateisystemBtrfs,die GrafiktreiberRadeonundNouveauwurden optimiert;[80] DieserLTS-Zweig wurde von Ben Hutchings betreut, die letzte Version war3.16.85am 11. Juni 2020 |
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ürKdbus,FencesinDma-Buf,MST (Multi Stream Transport,Teil vonDisplayPort1.2) für4K-Monitore,sowie die Unterstützung für denXbox-One-ControllerundForcePad-Touchpads.Optimierungen fürThunderboltbeiApple-Geräten;[81] Letzte Version war3.17.8am 8. Januar 2015 |
3.18 | 7. Dez. 2014 | 47.971 | 18.994.096 | ≈ 77.300 | 64 | Aufnahme desOverlayFS;Verbesserungen beiBtrfsundF2FS;Tunnelung beliebiger Protokolle ist überUDPermöglicht; Audio-Ausgabe mit dem Nouveau-Treiber über DisplayPort;Just-in-time-KompilierungdesExtended Berkeley Packet Filter(eBPF) für ARM64; derBPFist nun durch denSyscallbpf() allgemein verfügbar; Modulparameter können als unsicher (englischunsafe) markiert werden;[82]DieserLTS-Zweig wurde von Sasha Levin betreut, die letzte Version war3.18.140am 16. Mai 2019 |
3.19 | 9. Feb. 2015 | 48.424 | 19.130.604 | ≈ 77.900 | 63 | u. a. Unterstützung fürAMDsHeterogeneous System Architecture(HSA),[83]zudem wurde dasInterprozesskommunikationsframeworkBinderaufgenommen,[84]welches ursprünglich für Android entwickelt wurde und aufOpenBinderaufbaut;[85] Letzte Version war3.19.8am 11. Mai 2015 |
4.0 | 12. Apr. 2015 | 48.945 | 19.312.370 | ≈ 78.500 | 63 | u. a. Unterstützung fürUpdatesim laufenden Betrieb (Kernel Live Patching);[86][87] Letzte Version war4.0.9am 21. Juli 2015 |
4.1 | 22. Juni 2015 | 49.457 | 19.512.485 | ≈ 79.300 | 70 | u. a. Verschlüsselung für Ext4, Treiber fürNV-DIMMsund Schaffung der Grundlagen zur 3D-Beschleunigung invirtuellen Maschinen;[88] DieserLTS-Zweig wurde von Sasha Levin betreut, die letzte Version war4.1.52am 28. Mai 2018 |
4.2 | 30. Aug. 2015 | 50.795 | 20.311.717 | ≈ 82.000 | 70 | u. a. Update vonUEFInun aus Linux möglich, Unterstützung der AMD-Grafikkarten der Volcanic-Islands-Generation;[89] Letzte Version war4.2.8am 15. Dezember 2015 |
4.3 | 2. Nov. 2015 | 51.570 | 20.621.444 | ≈ 83.000 | 63 | Unterstützung fürSkylakeund Fiji-GPUs;[90]IPv6 wird Voreinstellung;[91] Letzte Version war4.3.6am 19. Februar 2016 |
4.4 | 10. Jan. 2016 | 52.221 | 20.862.115 | ≈ 83.300 | 70 | Kernel mit Langzeitunterstützung;[92]Grafiktreiber für denRaspberry Piund weitere 3D-Grafikbeschleunigungen inKVMfür virtuelle Maschinen, Verbesserungen beiRAIDundSSDs,BPF-Aufrufe sind nun auch imUserspacemöglich;[93][94] Letzte Version war4.4.302am 3. Februar 2022 |
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ürPowerPlay,und reibungslose Wechsel der Netzwerkverbindungen;[95][96]Verbesserungen beim Zugriff aufNFS-Server;[97] Letzte Version war4.5.7am 8. Juni 2016 |
4.6 | 15. Mai 2016 | 53.660 | 21.422.694 | ≈ 85.300 | 63 | u. a. verbesserte Energieverwaltung durch die Möglichkeit der Taktraten-Einstellung beiTegra-X1-GPUs und durch die Freischaltung derFrame Buffer Compression(FBC) für Prozessoren derHaswell-Architektur undBroadwell,des Weiteren wurde das DateisystemOrangeFSfreigeschaltet sowie zusätzliche Werkzeuge zur besseren Fehlererkennung (englischbug hunting);[98][99] Letzte Version war4.6.7am 16. August 2016 |
4.7 | 24. Juli 2016 | 54.400 | 21.712.846 | ≈ 86.200 | 70 | u. a. erste Unterstützung für neueRadeon-Grafikkarten (unter dem DecknamenPolaris), vier weitereARM-Treiber und Unterstützung für Spiele-Steuergeräte;[100][101]zudem bessereSMR-Unterstützung und Beschleunigungen beimTunneln;[102]im Vergleich zum Vorgänger (4.6) werden nun rund 500 weitere Hardware-Komponenten unterstützt;[103] Letzte Version war4.7.10am 22. Oktober 2016 |
4.8 | 2. Okt. 2016 | 55.503 | 22.071.048 | ≈ 87.700 | 70 | neben der Unterstützung neuer Treiber für Haupt- und Grafik-ProzessorenvonAMD,ARM(Mali),IntelundNvidiawurde u. a. dasÜbertakten(oderOverclocking) für AMD-Grafiktreiber und eine neue GPU-Virtualisierungstechnik für Intel-Grafiktreiber eingeführt, des Weiteren wurde dasXFSüberarbeitet, so dass es auch Datenintegritäten prüfen sowieDatendeduplizierungund dasCopy-On-Write-Verfahren beherrscht;[104][105] Letzte Version war4.8.17am 9. Januar 2017 |
4.9 | 11. Dez. 2016 | 56.223 | 22.348.356 | ≈ 88.900 | 70 | neben Verbesserungen in der Sicherheit – durch besseren Schutz vorStapelüberläufen– erhalten u. a. die Treiber für dasXFSeineShared Data Extentsgenannte Erweiterung, welche auf die (bereits im 4.8er-Kern eingeführte)Reverse-Mapping-Infrastrukturaufsetzt 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 sogenanntenGreybuseingearbeitet, welcher ursprünglich für das ehemals von Google entwickelte modulare SmartphoneAragedacht war und u. a. vonMotorolain einem ihrer Geräte genutzt wird;[106][107] Letzte Version war4.9.337am 7. Januar 2023 |
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 derLED-Treiberuledseingearbeitet[108]sowie ein Verfahren zur Grafikbeschleunigung virtueller Maschinen eingeführt;[109]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;[110] Letzte Version war4.10.17am 20. Mai 2017 |
4.11 | 1. Mai 2017 | 57.964 | 23.137.284 | ≈ 91.000 | 71 | Verringerung des Stromverbrauches vonNVMe-SSDsdurch 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 FunktionIntel Turbo Boost Max 3.0;Verbesserungen bei der Grafikbeschleunigung virtueller Maschinen für AMD-Grafikeinheiten;[111]Anpassungen fürext4,um die Nutzung als Wegwerfdateisystem zu verbessern;[112] Letzte Version war4.11.12am 21. Juli 2017 |
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 GrafikprozessorRadeon Vega;[113] Letzte Version war4.12.14am 20. September 2017 |
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;[114] Letzte Version war4.13.16am 24. November 2017 |
4.14 | 12. Nov. 2017 | 61.258 | 25.041.165 | ≈ 97.000 | 70 | LTS-Version;[115]Unterstützung bis zu 4096 Terabyte Arbeitsspeicher;[116] Letzte Version war4.14.336am 10. Januar 2024 |
4.15 | 28. Jan. 2018 | 62.271 | 25.364.680 | ≈ 100.000 | 78 | Einbau diverser Schutzmechanismen vorMeltdownundSpectre,der Treiber Amdgpu unterstützt nun AMDs Vega-Grafikkarten besser;[117] Letzte Version war4.15.18am 19. April 2018 |
4.16 | 1. Apr. 2018 | 62.883 | 25.558.670 | 100.606 | 63 | Letzte Version war4.16.18am 26. Juni 2018 |
4.17 | 3. Juni 2018 | 61.332 | 25.379.428 | 99.772 | 63 | HDCP-Unterstützung beiIntel-CPUs mit integriertem Grafikprozessor, erste Gegenmaßnahmen gegenSpectre v4 (Speculative Store Bypass),Entfernung ArchitektursupportBlackfin,AXIS CRISund 6 weiterer;[118] Letzte Version war4.17.19am 24. August 2018 |
4.18 | 12. Aug. 2018 | 60.973 | 25.280.736 | 101.782 | 70 | Vorarbeiten für leistungsgesteigerte FirewallBpfilter;Unterstützung fürGPUvonKaby Lake-Gund der angekündigtenVega20;Erster Support für QualcommsSnapdragon-845-Prozessor;[119] Letzte Version war4.18.20am 21. November 2018 |
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,[120]Unterstützung des neuen Wlan Standards 802.11ax, Performanceverbesserung der SATA-Treiber;[121] Aktuelle Version:4.19.322am 12. September 2024 |
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;[122] Letzte Version war4.20.17am 19. März 2019 |
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;[123] Letzte Version war5.0.21am 4. Juni 2019 |
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;[124] Letzte Version war5.1.21am 28. Juli 2019 |
5.2 | 7. Juli 2019 | 64.587 | 26.552.127 | ≈ 102.000 | 63 | u. a. Verzeichnisse inExt4können nun auchcase-insensitivegenutzt werden; die Performance vonMeltdown- undSpectre v2-Patcheswurde optimiert.[125] Letzte Version war5.2.21am 11. Oktober 2019 |
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ürumwait-Instruktionen, Intel Speed Select,Utilization Clampingim Scheduler), 16 Millionen weitere IPv4-Adressen aus dem 0.0.0.0/8-Bereich werden verfügbar gemacht;[126] Letzte Version war5.3.18am 18. Dezember 2019 |
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 mitvirtio-fs;[127] Aktuelle Version:5.4.284am 12. September 2024 |
5.5 | 27. Jan. 2020 | 66.493 | 27.854.754 | ≈ 108.100 | 63 | u. a. Grundlagen für den zukünftigen Support derVPN-TechnikWireGuardgelegt, anfängliche Unterstützung des Raspberry Pi 4, modernisierter Code für dieLastverteilungdes Schedulers, mit KUnit wurde ein Framework fürModultestsintegriert, Btrfs erhält neue RAID-1 und Hash-Algorithmen, verbesserte Performance und/oder Stabilität dank Mulitchannel-Support fürCIFS/SMB,die Temperatur von NVMe-Laufwerken kann vom Kernel ausgelesen und bereitgestellt werden;[128]
Letzte Version war5.5.19am 21. April 2020 |
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 dieUSB4-Unterstützung aufgenommen, der k10temp-Treiber übermittelt nun Temperatur-, Stromstärke- und Spannungswerte für Zen-CPUs,/dev/randomliefert Zufallszahlen auch bei leeren Entropiequellen, wenn derCryptographic 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 desJahr-2038-Problemsfür 32-Bit-Betriebssysteme erfüllt;[129][130]
Letzte Version war5.6.19am 17. Juni 2020 |
5.7 | 31. Mai 2020 | 67.939 | 28.442.333 | ≈ 110.038 | 63 | Letzte Version war5.7.19am 27. August 2020 |
5.8 | 2. Aug. 2020 | 69.327 | 28.994.351 | ≈ 111.776 | 63 | Letzte Version war5.8.18am 1. November 2020 |
5.9 | 11. Okt. 2020 | 69.972 | 29.461.217 | ≈ 112.796 | 70 | Letzte Version war5.9.16am 21. Dezember 2020 |
5.10 | 13. Dez. 2020 | 70.602 | 29.733.599 | ≈ 113.869 | 63 | LTS-Version;Aktuelle Version:5.10.228am 22. Oktober 2024 |
5.11 | 14. Feb. 2021 | 71.238 | 30.340.055 | ≈ 114.857 | 63 | Letzte Version war5.11.22am 19. Mai 2021 |
5.12 | 25. Apr. 2021 | 71.463 | 30.545.205 | ≈ 115.339 | 70 | Letzte Version war5.12.19am 20. Juli 2021 |
5.13 | 28. Juni 2021 | 72.184 | 30.940.247 | ≈ 119.538 | 63 | Letzte Version war5.13.19am 18. September 2021 |
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ürIntel-Alder-Lake-Prozessoren Letzte Version war5.14.21am 21. November 2021 |
5.15 | 31. Okt. 2021 | 73.575 | 31.812.242 | ≈ 119.045 | 63 | LTS-Version; bessere Unterstützung fürNTFS;Aktuelle Version:5.15.170am 1. November 2024 |
5.16 | 9. Jan. 2022 | 74.265 | 32.233.528 | ≈ 124.527 | 70 | Letzte Version war5.16.20am 13. April 2022 |
5.17 | 20. März 2022 | 74.993 | 32.488.489 | ≈ 125.377 | 70 | Letzte Version war5.17.15am 14. Juni 2022 |
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 bisherC89basiert Linux ab Version 5.18 auf dem C-StandardC11(von 2011).[131] Letzte Version war5.18.19am 21. August 2022 |
5.19 | 31. Juli 2022 | 76.916 | 34.035.647 | ≈ 128.498 | 70 | Letzte Version war5.19.17am 24. Oktober 2022 |
6.0 | 2. Okt. 2022 | 77.968 | 35.137.016 | ≈ 130.752 | 63 | Letzte Version war6.0.19am 12. Januar 2023 |
6.1 | 11. Dez. 2022 | 78.644 | 35.548.350 | ≈ 131.584 | 70 | LTS-Version;Aktuelle Version:6.1.115am 1. November 2024 |
6.2 | 19. Feb. 2023 | 79.455 | 35.868.349 | ≈ 133.234 | 70 | Letzte Version war6.2.16am 17. Mai 2023 |
6.3 | 23. Apr. 2023 | 79.561 | 36.007.945 | ≈ 133.735 | 63 | Letzte Version war6.3.13am 11. Juli 2023 |
6.4 | 25. Juni 2023 | 80.282 | 36.416.957 | ≈ 134.566 | 63 | Letzte Version war6.4.16am 13. September 2023 |
6.5 | 27. Aug. 2023 | 86.048 | 37.336.785 | ≈ 138.412 | 63 | Letzte Version war6.5.13am 28. November 2023 |
6.6 | 30. Okt. 2023 | ≈ 140.509 | 64 | LTS-Version;Aktuelle Version:6.6.59am 1. November 2024 | ||
6.7 | 7. Jan. 2024 | ≈ 141.558 | 69 | Letzte Version war6.7.12am 3. April 2024 | ||
6.8 | 10. März 2024 | ≈ 142.606 | 63 | Letzte Version war6.8.12am 30. Mai 2024 | ||
6.9 | 12. Mai 2024 | ≈ 143.655 | 63 | Letzte Version war6.9.12am 27. Juli 2024 | ||
6.10 | 14. Juli 2024 | ≈ 144.703 | 63 | Letzte Version war6.10.14am 10. Oktober 2024 | ||
6.11 | 15. Sep. 2024 | Aktuelle Version:6.11.6am 1. November 2024 | ||||
6.12 | Nov. 2024 | Aktuelle Version:6.12 RC6am 4. November 2024 | ||||
Legende: Ältere Version; nicht mehr unterstützt Ältere Version; noch unterstützt Aktuelle Version Anmerkungen[132][133][134][135] (a) Dateien gezählt mit: find. -type f -not -regex '\./\.git/.*'|wc -l (b) Quelltextzeilengezählt mit: find. -type f -not -regex '\./\.git.*'|xargs cat|wc -l (c) Größe inkBbezogen auf ein mitgzipkomprimiertestar-Archiv(.tar.gz); ab Version 3.2 im Format tar.xz[20] (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
BearbeitenDie 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 desProzess-Schedulerssowie desI/O-Bereiches und von geringeren Latenzzeiten profitierten.[136]
Neue Prozess-Scheduler
BearbeitenIn einem Multitasking-fähigen Betriebssystem muss es eine Instanz geben, die den Prozessen, die laufen wollen, Rechenzeit zuteilt. Diese Instanz bildet derProzess-Scheduler.Seit dem Erscheinen von Linux 2.6 wurde mehrfach grundlegend am Scheduler gearbeitet.
Für die ersten Kernel 2.6 war vonIngo Molnárein gegenüber Linux 2.4 ganz neuer Scheduler konzipiert und implementiert worden, derO(1)-Scheduler.Dieser erhielt seinen Namen, weil die relevantenAlgorithmen,auf denen der Scheduler basierte, dieZeitkomplexitäthaben. 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 dieDatenfeldergetauscht, und das Spiel begann von neuem.
Interaktive Prozesse benötigen in der Regel nur wenig Rechenzeit. Allerdings sollte zum Beispiel diegrafische Benutzeroberflächeverlä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 100Hzauf 1000 Hz erhöht, das heißt, die kürzest Länge einerZeitscheibebetrug 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 einenCompletely 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 wieCon Kolivaswaren der Meinung, dass unter dieser Schwerpunktsetzung sowie einigen Designentscheidungen im CFS die Leistung auf typischen Desktop-Systemen leide.[137]
Präemptibles Multitasking
BearbeitenDer Kernel ist ab Version 2.6 in den meisten Funktionenpräemptibel(„zuvorkommend, vorbeugend “). Selbst wenn das System gerade imKernel-ModusAufgaben ausführt, kann dieser Vorgang durch einen Prozess aus demUser-Modusunterbrochen werden. Der Kernel macht dann weiter, wenn der Usermodus-Prozess seineZeitscheibeaufgebraucht hat oder selbst eine neue Zeitplanung (englischRe-Schedule) anfordert, also dem Zeitplaner (englischScheduler) mitteilt, dass er einen anderen Task ausführen kann. Bis auf einige Kernel-Funktionen, dieatomar(„nicht unterbrechbar “) ablaufen müssen, kommt dies der Interaktivität zugute und erweitert das davor üblichepräemptiveMultitasking („entziehbar “), das aber weiterhin zur Auswahl steht.
Zugriffskontrolllisten
BearbeitenMit dem Kernel 2.6 werden für Linux erstmalsZugriffskontrolllisten(englischaccess 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 Dateisystemenext2,ext3,jfsundXFSnativ.
Inotify
BearbeitenMit dem Kernel2.6.13hielt erstmals eineInotifygenannte 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, gibtInotifyeine 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 wieStrigioderMeta 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
BearbeitenSoweit 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 neuenNative POSIX Thread Libraryund 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 genutztedevfsdurch das neuereudeversetzt, 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
BearbeitenProprietärer Code und Freiheitsbegriff
BearbeitenDie heute von Linus Torvalds herausgegebene Fassung des Kernels enthält proprietäre Objekte inMaschinensprache(BLOBs) und ist daher nicht mehr ausschließlichFreie Software.Richard Stallmanbezweifelt 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.[138]Resultierend daraus rät dieFree Software Foundationdeshalb dazu, nur BLOB-freie Versionen von Linux einzusetzen, bei denen diese Bestandteile entfernt wurden. Linux-Distributionen mit dem KernelLinux-libreerfüllen diesen Anspruch.
Der Kernel unter der GPL 2
BearbeitenDie beiGPL-Software übliche Klausel, dass statt der Version 2 der GPL auch eine neuere Version verwendet werden kann, fehlt beim Linux-Kernel.[139]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.
Literatur
Bearbeiten- 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, undGreg Kroah-Hartman:Linux Device Drivers.3. Auflage, O’Reilly. 2005,ISBN 0-596-00590-3.
Weblinks
BearbeitenEnglisch:
- The Linux Kernel Archives– offizielle Website
- Elixir Cross Referencer
- Interactive Linux Kernel Map
- Linux Kernel Newbies– Infos für angehende Kernel-Programmierer
- Oldlinux.org– eine Sammlung historischer Kernel
- Linux 0.01 News– Seite zu Weiterentwicklungen des 0.01-Kernels für neuere GCC-Versionen
- Anatomy of the Linux kernel–IBM,am 6. Juni 2007
Deutsch:
Einzelnachweise
Bearbeiten- ↑RELEASE NOTES FOR LINUX v0.12.(abgerufen am 10. April 2018).
- ↑abIt’s official, Linux was released on September 17, 1991.(englisch, abgerufen am 10. April 2018).
- ↑The linux Open Source Project on Open Hub: Licenses Page.In:Open Hub.(abgerufen am 19. Juli 2018).
- ↑Greg Kroah-Hartman:Linux 6.11.8.14. November 2024 (abgerufen am 14. November 2024).
- ↑Linus Torvalds:RELEASE NOTES FOR LINUX v0.12.In:kernel.org.Abgerufen am 22. April 2017(englisch).
- ↑Linus Torvalds gibt Linux 6.0 freiaufheise.devom 25. Oktober 2022, abgerufen am 11. Dezember 2022.
- ↑index: kernel/git/torvalds/linux.git
- ↑abcUNIX/Linux History.Abgerufen am 11. März 2017(englisch).
- ↑PPC/Linux for NuBus Power Macs.sourceforge.net,abgerufen am 12. April 2014(englisch).
- ↑Katherine Noyes:Linux 3.8: Hello 2013, Goodbye 386 Chips.In:Linux News.Linux Foundation,20. Februar 2013,abgerufen am 14. April 2013(englisch).
- ↑Andres Calderon, Nelson Castillo:Why ARM’s EABI matters.LinuxDevices, 14. Mai 2007,abgerufen am 10. April 2019(englisch).
- ↑Pressemitteilung OSDL:Developer’s Certificate of Origin.2004.
- ↑Linux-Kernel Archive:[RFD] Explicitly documenting patch submission,23. Mai 2004 (englisch)
- ↑Thorsten Leemhuis:Neue Kernel-Serie mit Linux 2.6.11.1 gestartet.In:Heise online.7. März 2005.Abgerufen am 26. April 2015.
- ↑Linus Torvalds:Linux 3.0-rc1.thread.gmane.org, 30. Mai 2011, archiviert vom (nicht mehr online verfügbar) am30. November 2016;abgerufen am 16. November 2014(englisch). Info:Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäßAnleitungund entferne dann diesen Hinweis.
- ↑Linus Torvalds:index: kernel/git/torvalds/linux.git.git.kernel.org, 23. Februar 2015,abgerufen am 23. Februar 2015(englisch).
- ↑Linus Torvalds:Linus Torvalds — Google.13. Februar 2015,abgerufen am 23. Februar 2015(englisch).
- ↑Linus Torvalds:Linux Kernel Mailing List: Announcement of Kernel 5.19.lore.kernel.org, 31. Juli 2022,abgerufen am 11. April 2023(englisch).
- ↑Active kernel releases.kernel.org,abgerufen am 1. November 2021(englisch).
- ↑abcThe Linux Kernel Archives.kernel.org,abgerufen am 6. September 2010(englisch, Versionsübersicht beikernel.org).
- ↑Oliver Diedrich:Happy Birthday, Tux.In:Heise online.25. August 2006.Abgerufen am 24. Oktober 2014.
- ↑abcdefOliver Diedrich:Die Woche: Linux wird 3.0.In:Heise online.1. Juni 2011.Abgerufen am 26. April 2015.
- ↑Andreas Jaeger:Large File Support in Linux.SUSE GmbH, 15. Februar 2015,abgerufen am 26. November 2022.
- ↑Oliver Diedrich:Neuer Firewall-Code für den Linux-Kernel.In:Heise online.21. Oktober 2013.Abgerufen am 28. Oktober 2013.
- ↑LKML: Willy Tarreau: Linux 2.4.37.10 + 2.4 EOL plans– Mitteilung bei derLinux-Kernel Mailing List,vom 6. September 2010, abgerufen am: 16. September 2012 (englisch)
- ↑Linux-Kernel 2.6.13 veröffentlicht– Thorsten Leemhuis, beiHeise,am 29. August 2005
- ↑Thorsten Leemhuis:Die Woche: Xen hat KVM vorbeiziehen lassen.In:Heise online.16. Juni 2011.Abgerufen am 24. Oktober 2014.
- ↑Jörg Thoma:Linux-Kernel: Updates für Long-Term-Zweige.Golem.de, 4. Mai 2011,abgerufen am 24. Oktober 2014.
- ↑Clever schachteln: Das neue Linux-Dateisystem Btrfs im Detail–Admin-Magazin,Ausgabe 04/2009
- ↑Oliver Diedrich:Das Dateisystem Btrfs.In:Heise online.7. Juli 2009.Abgerufen am 14. August 2016.
- ↑Thorsten Leemhuis:Kernel-Log: Entwicklung von 2.6.39 angelaufen.In:Heise online.22. März 2011.Abgerufen am 26. April 2015.
- ↑abThorsten Leemhuis:Hauptentwicklungsphase von Linux 3.2 abgeschlossen.In:Heise online.8. November 2011.Abgerufen am 26. April 2015.
- ↑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.
- ↑Thorsten Leemhuis:Kernel-Log – Was 2.6.34 bringt (2): Dateisysteme.In:Heise online.23. April 2010.Abgerufen am 9. Dezember 2016.
- ↑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.
- ↑Thorsten Leemhuis:Kernel-Log – Was 2.6.34 bringt (3): Grafik.In:Heise online.5. Mai 2010.Abgerufen am 9. Dezember 2016.
- ↑Oliver Diedrich:Entwicklung von Linux 2.6.35 läuft an.In:Heise online.31. Mai 2010.Abgerufen am 9. Dezember 2016.
- ↑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.
- ↑Andi Kleen:The longterm Linux 2.6.35.14 kernel is released.lkml.org, 1. August 2011,abgerufen am 7. Mai 2012(englisch).
- ↑Thorsten Leemhuis:Die Neuerungen von Linux 2.6.36.In:Heise online.21. Oktober 2010.Abgerufen am 17. August 2015.
- ↑Thorsten Leemhuis:Kernel-Log: 2.6.36, neue Stable-Kernel, frische Treiber.In:Heise online.11. August 2010.Abgerufen am 17. August 2015.
- ↑Thorsten Leemhuis:Hauptentwicklungsphase des Linux-Kernels 2.6.36 abgeschlossen.In:Heise online.16. August 2010.Abgerufen am 17. August 2015.
- ↑Thorsten Leemhuis:Hauptentwicklungsphase des Linux-Kernel 2.6.37 abgeschlossen.In:Heise online.1. November 2010.Abgerufen am 15. Februar 2015.
- ↑Thorsten Leemhuis:Kernel-Log: Wunderpatch integriert, verbesserte Grafiktreiber am Start.In:Heise online.7. Januar 2011.Abgerufen am 10. März 2015.
- ↑Thorsten Leemhuis:Kernel-Log – Was 2.6.38 bringt (6): Treiber.In:Heise online.9. März 2011.Abgerufen am 15. Februar 2015.
- ↑Thorsten Leemhuis:Kernel-Log: Erster Release Candidate von Linux 2.6.39.In:Heise online.30. März 2011.Abgerufen am 8. Februar 2015.
- ↑Thorsten Leemhuis:Die Neuerungen von Linux 2.6.39.In:Heise online.19. Mai 2011.Abgerufen am 8. Februar 2015.
- ↑Arnd Bergmann:BKL: That’s all, folks.git.kernel.org, 25. Januar 2011,abgerufen am 18. August 2017.
- ↑Thorsten Leemhuis:Erste Vorabversion von Linux 3.0 erschienen.In:Heise online.30. Mai 2011.Abgerufen am 24. Januar 2015.
- ↑Jörg Thoma:Kernel: Linux 3.0 ist fertig.golem.de, 22. Juli 2011,abgerufen am 6. Januar 2015.
- ↑Thorsten Leemhuis:Linux-Kernel 3.0 freigegeben.In:Heise online.22. Juli 2011.Abgerufen am 6. Januar 2015.
- ↑Thorsten Leemhuis:Kernel-Log – Was 3.1 bringt (3): Architektur, Infrastruktur, Virtualisierung.In:Heise online.17. September 2011.Abgerufen am 6. Januar 2015.
- ↑Mirko Dölle:Android-Treiber sollen in Kernel 3.3 einfließen.In:Heise online.23. Dezember 2011.Abgerufen am 16. November 2014.
- ↑Jörg Thoma:Stromsparoption RC6 in Linux-Kernel funktionstüchtig.golem.de, 15. Februar 2012,abgerufen am 21. Mai 2012.
- ↑Thorsten Leemhuis:Kernel-Log – Was 3.3 bringt (4): Treiber.In:Heise online.8. März 2012.Abgerufen am 21. Mai 2012.
- ↑Thorsten Leemhuis:Die Neuerungen von Linux 3.4.In:Heise online.21. Mai 2012.Abgerufen am 21. Mai 2012.
- ↑Thorsten Leemhuis:Kernel-Log – Was 3.5 bringt (1): Netzwerk.In:Heise online.25. Juni 2012.Abgerufen am 27. Juni 2012.
- ↑Thorsten Leemhuis:Kernel-Log: Entwicklung von Linux 3.6 läuft.In:Heise online.2. August 2012.Abgerufen am 11. Mai 2014.
- ↑Thorsten Leemhuis:Linux-Kernel 3.7 veröffentlicht.In:Heise online.11. Dezember 2012.Abgerufen am 13. Dezember 2012.
- ↑Thorsten Leemhuis:Kernel-Log – Was 3.8 bringt (1): Dateisysteme und Storage.In:Heise online.21. Januar 2013.Abgerufen am 16. Februar 2013.
- ↑Thorsten Leemhuis:Kernel-Log – Was 3.8 bringt (2): Infrastruktur.In:Heise online.8. Februar 2013.Abgerufen am 16. Februar 2013.
- ↑abJö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.
- ↑Meta SoC Processors(vom 15. März 2013 imInternet Archive) – Seite beiImagination Technologies,abgerufen am 7. März 2013 (englisch).
- ↑DesignWare ARC 700 Processor Core Family– Seite beiSynopsys,abgerufen am 7. März 2013 (englisch).
- ↑Hans-Joachim Baader:Linux-Kernel 3.9 tritt in die Testphase ein.Pro-Linux,4. März 2013,abgerufen am 7. März 2013.
- ↑Thorsten Leemhuis:Kernel-Log – Was 3.10 bringt (4): Treiber.In:Heise online.28. Juni 2013.Abgerufen am 10. Juli 2013.
- ↑Thorsten Leemhuis:Die Neuerungen von Linux 3.9.In:Heise online.29. April 2013.S. 3:Fazit, Trends, Statistik.Abgerufen am 10. Juli 2013.
- ↑Thorsten Leemhuis:Die Neuerungen von Linux 3.10.Heise, 1. Juli 2013,abgerufen am 10. Juli 2013.
- ↑Thorsten Leemhuis:Kernel-Log – Was 3.11 bringt (2): Infrastruktur.Heise, 19. August 2013,abgerufen am 20. August 2013.
- ↑Thorsten Leemhuis:"Linux for Workgroups": Funktionsumfang von Linux 3.11 steht.Heise, 15. Juli 2013,abgerufen am 13. März 2018.
- ↑Thorsten Leemhuis:Linux 3.12 bringt Optimus- und SYN-Proxy-Unterstützung.Heise, 17. September 2013,abgerufen am 18. September 2013.
- ↑Thorsten Leemhuis:Die Neuerungen von Linux 3.12: Netzwerk.Heise, 4. November 2013,abgerufen am 6. November 2013.
- ↑Thorsten Leemhuis:Kernel-Log – Was 3.12 bringt (1): Dateisysteme & Storage.Heise, 8. Oktober 2013,abgerufen am 6. November 2013.
- ↑Thorsten Leemhuis:Die Neuerungen von Linux 3.13.Heise online, 20. Januar 2014,abgerufen am 20. Januar 2014.
- ↑Thorsten Leemhuis:Kernel-Log – Was 3.13 bringt (5): Grafiktreiber.Heise online, 10. Januar 2014,abgerufen am 20. Januar 2014.
- ↑Thorsten Leemhuis:Kernel-Log – Was 3.13 bringt (1): Dateisysteme und Storage.Heise online, 10. Dezember 2013,abgerufen am 20. Januar 2014.
- ↑abJörg Thoma:Prozessfristen: Linux 3.14 erhält Deadline Scheduler.golem.de, 31. März 2014,abgerufen am 31. März 2014.
- ↑Peter Siering:Xen 4.4: virtuelle Maschinen für ARM.heise.de, 10. März 2014,abgerufen am 11. März 2014.
- ↑Thorsten Leemhuis:Kernel-Log – Was 3.15 bringt (1): Dateisysteme und Storage.heise.de, 6. Mai 2014,abgerufen am 6. Mai 2014.
- ↑Thorsten Leemhuis:Die Neuerungen von Linux 3.16.heise.de, 4. August 2014,abgerufen am 17. August 2014.
- ↑Thorsten Leemhuis:Die Neuerungen von Linux 3.17.heise.de, 6. Oktober 2014,abgerufen am 10. November 2014.
- ↑Hans-Joachim Baader:Linux-Kernel 3.18 freigegeben.Pro-Linux,8. Dezember 2014,abgerufen am 8. Dezember 2014.
- ↑Thorsten Leemhuis:Linux 3.19 freigegeben: HSA-Support für AMD-Chips.Heise online, 9. Februar 2015,abgerufen am 9. Februar 2015.
- ↑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.
- ↑Zeitgemäße Linux-IPC–Linux-Magazin,Ausgabe 02/2015
- ↑Thorsten Leemhuis:Linux-Kernel macht Versionssprung auf 4.0.heise.de, 23. Februar 2015,abgerufen am 23. Februar 2015.
- ↑Jörg Thoma:Version 4.0 patcht sich selbst im laufenden Betrieb.golem.de, 23. Februar 2015,abgerufen am 23. Februar 2015.
- ↑Thorsten Leemhuis:Linux 4.1 freigegeben: Ext4 verschlüsselt jetzt selbst.heise.de, 22. Juni 2015,abgerufen am 22. Juni 2015.
- ↑Thorsten Leemhuis:Linux 4.2-rc1: Neuer Grafiktreiber von AMD integriert.heise.de, 6. Juli 2015,abgerufen am 19. Juli 2015.
- ↑Thorsten Leemhuis:Linux-Kernel 4.3 wird neue AMD- und Intel-Grafikprozessoren unterstützen.heise.de, 5. September 2015,abgerufen am 15. September 2015.
- ↑Thorsten Leemhuis:Linux 4.3 wird IPv6-Unterstützung standardmäßig nutzen.heise.de, 14. September 2015,abgerufen am 15. September 2015.
- ↑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).
- ↑Thorsten Leemhuis:Linux 4.4 freigegeben: Neue Grafiktreiber und Optimierungen für SSDs.heise.de, 11. Januar 2016,abgerufen am 13. August 2016.
- ↑Sebastian Grüner:Kernel: Linux 4.4 erscheint mit Grafiktreiber für Raspberry Pi.golem.de, 11. Januar 2016,abgerufen am 13. August 2016.
- ↑Thorsten Leemhuis:Linux 4.5: Verbesserte 3D-Treiber und reibungslose Verbindungswechsel.heise.de, 25. Januar 2016,abgerufen am 13. August 2016.
- ↑Ferdinand Thommes:Kernel: Linux 4.5-rc1 wertet AMDGPU mit Powerplay auf.golem.de, 11. Januar 2016,abgerufen am 13. August 2016.
- ↑Thorsten Leemhuis:Die Neuerungen von Linux 4.5.heise.de, 14. März 2016,abgerufen am 15. Mai 2016.
- ↑Ferdinand Thommes:Kernel: Linux 4.6-rc1 mit neuem Dateisystem OrangeFS.golem.de, 28. März 2016,abgerufen am 13. August 2016.
- ↑Thorsten Leemhuis:Linux 4.6 wird 3D-Beschleunigung aktueller GeForce-Chips unterstützen.heise.de, 29. März 2016,abgerufen am 15. Mai 2016.
- ↑Thorsten Leemhuis:Linux 4.7 soll AMDs neue Radeon-Grafikkarten unterstützen.heise.de, 30. Mai 2016,abgerufen am 2. Juli 2016.
- ↑Ferdinand Thommes:LLinux 4.7-rc1 unterstützt AMDs Polaris.golem.de, 30. Mai 2016,abgerufen am 12. Dezember 2016.
- ↑Thorsten Leemhuis:Linux 4.7 vermeidet Netzwerk-Latenzen und unterstützt SMR-Festplatten besser.heise.de, 15. Juni 2016,abgerufen am 15. Juni 2016.
- ↑Thorsten Leemhuis:Linux 4.7 freigegeben: RX-480-Treiber und verbesserte Sicherheit.heise.de, 25. Juli 2016,abgerufen am 18. August 2016.
- ↑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.
- ↑Jörg Thoma:Betriebssysteme: Linux 4.8 übertaktet AMD-Grafikkarten.golem.de, 8. August 2016,abgerufen am 16. August 2016.
- ↑Thorsten Leemhuis:Linux 4.9 wird Sicherheit verbessern und neue Treiber bringen.heise.de, 17. Oktober 2016,abgerufen am 18. Oktober 2016.
- ↑Ferdinand Thommes:Kernel: Linux 4.9rc1 erscheint mit Protokoll für Project-Ara-Module.golem.de, 17. Oktober 2016,abgerufen am 18. Oktober 2016.
- ↑Hans-Joachim Baader:Erste Vorschau auf Linux-Kernel 4.10.pro-linux.de, 26. Dezember 2016,abgerufen am 5. November 2017.
- ↑Thorsten Leemhuis:Linux 4.10 Neue Wege zur Grafikbeschleunigung in virtuellen Maschinen.heise.de, 17. Januar 2017,abgerufen am 5. November 2017.
- ↑Hans-Joachim Baader:Linux-Kernel 4.10 freigegeben.In:pro-linux.de.19. Februar 2017,abgerufen am 19. Februar 2017.
- ↑Linux-Kernel 4.11: Längere Akkulaufzeit durch NVMe-Stromspartechnik–Heise,am 6. März 2017
- ↑Thorsten Leemhuis:Die Neuerungen von Linux 4.11.heise.de, 16. April 2017,abgerufen am 5. November 2017.
- ↑Thorsten Leemhuis:Die Neuerungen von Linux 4.12.heise.de, 3. Juli 2017,abgerufen am 23. Juli 2017.
- ↑Thorsten Leemhuis:Die Neuerungen von Linux 4.13.heise.de, 4. September 2017,abgerufen am 24. September 2017.
- ↑Greg Kroah-Hartman:As no one seemed to make 4.9 blow up too badly, let’s try this again!plus.google, 17. Juni 2017,abgerufen am 17. Juni 2017(englisch).
- ↑Thorsten Leemhuis:Die Neuerungen von Linux 4.14.heise.de, 17. September 2017,abgerufen am 18. März 2018.
- ↑Thorsten Leemhuis:Die Neuerungen von Linux 4.15.heise.de, 28. Januar 2018,abgerufen am 18. März 2018.
- ↑Thorsten Leemhuis:Die Neuerungen von Linux 4.17.heise.de, 4. Juni 2018,abgerufen am 4. Juni 2018.
- ↑Thorsten Leemhuis:Linux 4.18 freigegeben.heise.de,13. August 2018,abgerufen am 13. August 2018.
- ↑Thorsten Leemhuis:Kernel-Log: Linux 4.19: Flackerfrei starten und Strom sparen.heise.de,12. Oktober 2018,abgerufen am 24. Oktober 2018.
- ↑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.
- ↑Thorsten Leemhuis:Linux 4.20 freigegeben: Performance-Optimierungen und neue Treiber.heise.de,12. Dezember 2018,abgerufen am 24. Dezember 2018.
- ↑Thorsten Leemhuis:Linux 5.0 ist da: Geschwindigkeit zurückerobern und moderner speichern.heise.de,4. März 2019,abgerufen am 24. Juni 2019.
- ↑Thorsten Leemhuis:Linux 5.1: Performance-Verbesserungen und neue Speichertechnik.heise.de,6. Mai 2019,abgerufen am 24. Juni 2019.
- ↑Linux 5.2 freigegeben: Änderungsrekord und Geschwindigkeitsverbesserungen–c't Magazin,am 9. Juli 2019
- ↑Thorsten Leemhuis:Linux 5.3 freigegeben: Prioritäten deckeln und Trouble für Nvidia.Abgerufen am 26. November 2019.
- ↑Thorsten Leemhuis:Linux 5.4 freigegeben: exFAT-Support und Einschränkungen für Root.Abgerufen am 26. November 2019.
- ↑Thorsten Leemhuis:Linux 5.5 freigegeben: Wireguard-Fundament und Performance-Verbesserungen.Abgerufen am 27. Januar 2020.
- ↑Thorsten Leemhuis:Linux 5.6 freigegeben: Wireguard- und USB4-Support.Abgerufen am 6. April 2020.
- ↑Thorsten Leemhuis:Linux 5.6 unterstützt Wireguard und USB4.Abgerufen am 6. April 2020.
- ↑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. “.
- ↑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.
- ↑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.
- ↑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.
- ↑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.
- ↑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
- ↑Marcel Hilzinger:Con Kolivas meldet sich mit neuem Scheduler zurück.Linux-Magazin,2. September 2009,abgerufen am 27. April 2014.
- ↑Richard M. Stallman:Linux, GNU, and freedom.gnu.org, 10. Juli 2014,abgerufen am 12. Februar 2015(englisch).
- ↑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).