Linux Kernel 3.8 [Beitrag #822] |
Di, 19 Februar 2013 12:47 |
|
Na'vi
Beiträge: 422 Registriert: März 2010
|
Senior Member |
|
|
Linux-Initiator Linus Torvalds hat Version 3.8 des Linux-Kernels freigegeben. Linux 3.8 enthält wesentliche Optimierungen, die die Leistung des Dateisystems ext4 und der Speicherverwaltung weiter verbessern.
Gut zwei Monate nach Linux 3.7 ist nun Linux 3.8 fertiggestellt. Nach dem rekordverdächtigen Kernel 3.7 sind die Änderungen dieses Mal im Umfang zwar kleiner, die Zahl der Änderungen dagegen laut Linus Torvalds die größte seit Version 3.0 oder noch länger. Laut LWN.net ist es die erste Version, die mehr als 10.000 Änderungen enthält.
Die Unterstützung für die veraltete 80386-CPU wurde entfernt, vermissen wird sie niemand. Wichtiger sind heutzutage NUMA-Systeme, bei denen der Zugriff auf das RAM je nach relativer Anordung der Prozessoren und der Speicher unterschiedlich viel Zeit kostet. Diese Zeiten zu optimieren, ist das Ziel des »balancenuma«-Patches, der eine Infrastruktur zum Erproben verschiedener Platzierungs- und Migrations-Strategien anlegt.
Huge Zero Pages sind das größere Analog zu normalen mit Nullen gefüllten Speicherseiten, die 4 KB groß sind. Da sich solche Seiten immer verdächtig ähneln, muss man nur eine einzige davon im Speicher halten und kann alle anderen durch Verweise ersetzen. Damit kann unter Umständen sehr viel Speicher gespart werden. Ferner kam eine Infrastruktur zum genaueren Messen des Kernel-Speicherverbrauchs pro Prozess neu hinzu. Somit können Control Groups nun Limits für den Verbrauch setzen.
Eine weitere große Neuheit ist die Vervollständigung der User Namespaces. Dies schließt eine weitere Lücke, um »Container«, eine leichtgewichtige Virtualisierungs-Alternative, direkt im offiziellen Kernel zu implementieren.
Das cpuidle-Subsystem kann nun für jede CPU unterschiedliche Treiber verwenden. Das wird benötigt, um asymmetrische Architekturen wie big.LITTLE bei ARM zu unterstützen. Unter dem Hypervisor Hyper-V kann nun der Speicherverbrauch mit dem Hyper-V-Balloon-Treiber gesenkt werden. Der Hypervisor KVM paravirtualisiert nun den häufigen Systemaufruf clock_gettime, der dadurch wesentlich schneller wird. Hotplugging auf geeigneten x86-Systemen ist jetzt auch für die erste CPU im System möglich.
Das Dateisystem f2fs, das für Flash-Medien optimiert ist, wurde aufgenommen. Das Dateisystem XFS wurde um einen Verifikationsmechanismus erweitert, um korrupte Daten beim Einlesen zu erkennen. ext4 dagegen kann jetzt kleine Datenmengen direkt im Inode der Datei speichern, womit Platz gespart und die Geschwindigkeit erhöht wird, wenn es sich um kleine Dateien handelt. Außerdem wurden die lseek-Operationen SEEK_HOLE und SEEK_DATA implementiert. Diese Operationen werden nun auch von tmpfs unterstützt. Btrfs hingegen kann mit der neuen replace-Operation ein Laufwerk in einem Volume wesentlich schneller als mit bisherigen Methoden ersetzen.
Der Systemaufruf finit_module, der es ermöglicht, ein Modul über einen bereits offenen Dateideskriptor zu laden, kam hinzu. Die Treiber für tun/tap und virtio-Netzwerk unterstützen nun mehrere Warteschlangen pro Gerät. Der Paket-Scheduler QFQ wurde durch QFQ+ abgelöst. Die UEFI-Boot-Variablen stehen jetzt im virtuellen Dateisystem »efivars« zur Verfügung. Der Systemaufruf ptrace erhielt eine neue Option PTRACE_O_EXITKILL, die dafür sorgt, dass alle untergeordneten Prozesse mit SIGKILL beendet werden, wenn der Trace-Prozess beendet wird. Zahlreiche Treiber wurden aktualisiert, erweitert oder kamen neu hinzu, darunter Display und HDMI-Ausgabe für Nvidia Tegra 20.
Eine Liste aller Änderungen kann man dem Git-Repositorium entnehmen. Die Seite Kernelnewbies.org hat eine übersichtliche Zusammenfassung der Änderungen veröffentlicht. Die aktuelle Version von Linux kann von kernel.org und zahlreichen Spiegel-Servern in Form von Patches oder tar-Paketen heruntergeladen werden.
Quelle: Pro-Linux
|
|
|