Login
Newsletter
Werbung

Mo, 23. Juli 2012, 08:40

Software::Kernel

Linux-Kernel 3.5 freigegeben

Linux-Initiator Linus Torvalds hat Version 3.5 des Linux-Kernels freigegeben. Die wohl größten Neuerungen sind Metadaten-Prüfsummen in ext4, der neue Paket-Scheduler CoDel und das uprobes-Framework.

Linus Torvalds, Initiator des Linux-Kernels

Linux Foundation

Linus Torvalds, Initiator des Linux-Kernels

Zwei Monate nach der Freigabe von Linux 3.4 ist nun Linux 3.5 fertiggestellt. Damit wurde die neue Kernel-Version in einem der kürzesten Zyklen der letzten Jahre entwickelt.

Trotz dieses ziemlich kurzen Zeitraums konnte Linus Torvalds wieder genauso viele Änderungen integrieren wie in den Versionen zuvor. Eine der bedeutendsten Änderungen dabei dürfte der neue »Controlled Delay« (CoDel) Paket-Scheduler sein. Ein Paket-Scheduler kümmert sich um die Bereitstellung der Datenpakete an den Netzwerkschnittstellen. Der neue Scheduler versucht das Problem zu beseitigen, das von Jim Gettys erstmals formuliert und von ihm Buffer Bloat genannt wurde. Es äußert sich in zu langen Latenzzeiten, die in der Folge Paketverluste, unnötige Wiederholungen oder gar Verbindungsabbrüche auslösen. Die von Gettys als Ursache genannte gedankenlose Vergrößerung der Paketpuffer in allen Komponenten, die die bisherigen TCP-Algorithmen wirkungslos werden ließ, lässt sich jedoch kaum rückgängig machen. Zwar wurden im Linux-Kernel schon einige Verbesserungen vorgenommen, aber das löst nur einen geringen Teil des Problems. Der neue Scheduler hingegen implementiert einen neuen Algorithmus der Internet-Veteranen Kathleen Nichols und Van Jacobson, der in Linux erstmals zum Einsatz kommt.

Eine große und wichtige Änderung ist die Einführung von Metadaten-Prüfsummen im Dateisystem ext4. Diese helfen, Korruptionen im Dateisystem zu erkennen, nicht jedoch in den gespeicherten Daten. Bestehende Dateisysteme können im laufenden Betrieb umgestellt werden. Danach können sie von einem älteren Kernel allerdings nur noch lesend gemountet werden. Die Verwaltung der Prüfsummen kostet etwas Leistung, was im Normalfall jedoch nicht ins Gewicht fallen soll.

Weitere Neuerungen sind die Reparatur-Schnittstelle für TCP/IP-Verbindungen, die für Checkpoint-Funktionalität benötigt wird, früheres erneutes Senden von Netzwerkpaketen nach RFC 5827, womit das Fortsetzen nach einem Paketverlust schneller werden soll, der Seccomp Filters-Mechanismus, der die erlaubten Systemaufrufe für Prozesse einschränkt, ein Umbau des Log-Mechanismus, der Meldungen jetzt in Datensätze aufteilt und die Ausgabe zusätzlicher Informationen ermöglicht, ein neu geschriebener NUMA-Scheduler und ein Block I/O-Controller für die Control Groups. Neue Systemaufrufe für den Zugriff auf den Speicherbereich eines anderen Prozesses wurden hinzugefügt, sie sind jedoch optional.

Ein Autosleep-Patch implementiert ein Suspendieren ähnlich den Wakelocks in Android, aber mit einer anderen Schnittstelle. Außerdem wurde uprobes, ein Trace-Mechanismus für Benutzerprozesse, nach langer Entwicklungszeit integriert. Damit kann nun die gleiche Schnittstelle, die für Tracing im Kernel verwendet wird, auch mit Benutzerprogrammen genutzt werden. Das Programm perf, dessen Quellcode zusammen mit dem Kernel-Quellcode vertrieben wird, wurde entsprechend erweitert.

In der Speicherverwaltung wurde der Frontswap-Mechanismus hinzugefügt, der einige seltsame Eigenschaften hat. Es handelt sich um Speicher, der dem Kernel nicht direkt zugänglich ist. Auszulagernde Daten können dorthin geschrieben werden, um die Auslagerung in den langsamen Swap-Bereich der Festplatte zu vermeiden. Außerdem wurde ein neuer Speicherallokator hinzugefügt, der kontinuierliche Speicherbereiche liefert, die vom Seiten-Cache und von Treibern benötigt werden.

Anders als normalerweise üblich wurde in dieser Version auch eine Menge alter Code entfernt. Während ein Teil davon nicht mehr genutzt oder durch andere Möglichkeiten ersetzt wurde, wurden auch einige sehr alte Treiber Opfer der Maßnahmen, die ihren Grund wohl darin haben, dass niemand mehr diesen Code pflegen oder testen kann. Betroffen sind der ixp2000-Netzwerktreiber, Unterstützung der SPARC-CPU Sun4c, der ARMv3-Prozessoren und IXP2xxx-Prozessoren, Token Ring, Microchannel, das Econet-Protokoll, ST-Ericsson U5500-Entwicklerboards und der Treiber für die serielle Schnittstelle des Motorola 68360, also Komponenten, die außerhalb von Museen wohl nicht mehr anzutreffen sind.

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.

Werbung
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung