Login
Newsletter
Werbung

Mo, 9. Juni 2014, 10:34

Software::Kernel

Linux-Kernel 3.15 freigegeben

Linux-Initiator Linus Torvalds hat Version 3.15 des Linux-Kernels freigegeben. Die spürbarste Änderung ist ein schnelleres Aufwachen eines suspendierten Systems, das SATA nutzt.

Linus Torvalds, Initiator des Linux-Kernels

Linux Foundation

Linus Torvalds, Initiator des Linux-Kernels

Weniger als zweieinhalb Monate nach Linux 3.14 ist nun Linux 3.15 fertiggestellt. Linux 3.15 enthält über 12.000 Änderungen gegenüber der Vorversion, sehr wahrscheinlich mehr als jede Version zuvor, wenn auch der Umfang der Änderungen keinen Rekord erreicht. Laut Linus Torvalds gab es in der jüngeren Vergangenheit mindestens zwei Kernel-Versionen, die noch umfangreichere Änderungen brachten. In Linux 3.7 wurden die Header-Dateien grundlegend neu organisiert und in Linux 3.11 sorgte die Aufnahme des Cluster-Dateisystems Lustre für eine große Menge von Änderungen.

Die von Torvalds erprobte Änderung des Entwicklungszyklus, bei der er mit der Integration von Änderungen für den übernächsten Kernel bereits begann, bevor der nächste veröffentlicht war, wird nicht fortgesetzt. Torvalds konnte dadurch einerseits in einer Phase, in der er sonst wenig zu tun hat, produktiv sein, andererseits hat er den Verdacht, dass es die Leute ablenkt, sich mehr um die Stabilisierung des Veröffentlichungskandidaten zu kümmern. Daher plant er zur Zeit, nur dann auf die Überlappung der Integrationsphase mit der Testphase zurückzugreifen, wenn es aus Termingründen sinnvoll ist.

Die für viele Nutzer auffälligste Änderung in Linux 3.15 ist die Optimierung des Aufwachens eines suspendierten Systems, das SATA nutzt. Dazu wurde einfach das Aufwecken der SATA-Controller asynchron gemacht. Während die Controller starten, was wegen des Wartens auf die Festplatten durchaus zehn Sekunden dauern kann, kann bereits der Rest des Systems aufgeweckt werden. Da dazu in der Praxis meist keine Festplattenzugriffe nötig sind, kann das Aufwecken des Systems in vielen Fällen auf unter eine Sekunde fallen, eine Verbesserung von vier bis zehn oder mehr Sekunden.

Linux 3.15 enthält eine erste Serie von Patches, die das Compilieren des Kernels mit Clang ermöglichen sollen. Sie wird wahrscheinlich in Linux 3.16 vervollständigt, so dass der Kernel ab dann mit Clang erstellt werden kann. Eine solche Portabilität ist grundsätzlich gut für den Code, der damit robuster wird. Clang kann sicher dabei helfen, Fehler früher zu finden. Eine höhere Geschwindigkeit ist jedoch mit Clang nicht zu erwarten, da bisherige Vergleiche mit GCC keinen klaren Sieger zeigen - mal erzeugt der eine Compiler den besseren Code, mal der andere.

Unter den zahlreichen weiteren Verbesserungen, die in der Summe eine höhere Geschwindigkeit, geringeren Energieverbrauch und neue Funktionen bringen, ist noch eine Änderung in letzter Minute von Bedeutung. Auf 64 Bit x86-Systemen ist der Stack für jeden Prozess jetzt 16 statt 8 KB groß. Diese von Torvalds schon lange ins Auge gefasste Änderung beseitigt Probleme mit Stack-Überläufen, die durch besonders tief verschachtelte Funktionsaufrufe entstehen konnten und einige Anwender mit spezifischen Anforderungen plagten. Der Nachteil ist ein höherer Speicherbedarf pro Prozess. Ob die Bemühungen, mit 8 oder gar 4 KB Stack für alle Zeiten auszukommen, zu einem Ergebnis führen werden, bleibt abzuwarten.

In der Speicherverwaltung wird nun versucht, das Auslagern von Seiten zu vermeiden, wenn diese wahrscheinlich kurz danach wieder benötigt werden. Dazu werden die Seiten nach einem neuen Algorithmus in Listen von aktiven und inaktiven Seiten sortiert. Die Geschwindigkeit der Speicherverwaltung wurde durch Thread-spezifisches VMA-Caching weiter gesteigert und der Zram-Treiber, der Swap-Seiten komprimiert im RAM statt auf der Festplatte ablegt, kann nun den Algorithmus LZ4 verwenden. In der Energieverwaltung wurde eine Möglichkeit geschaffen, mit der der Kernel den Gerätetreibern mitteilen kann, wieviel Latenz momentan akzeptiert werden kann, und damit, welchen Stromsparzustand das Gerät einnehmen sollte.

Der neue Systemaufruf renameat2 macht es möglich, zwei Dateien (eigentlich nur deren Namen) in einer atomaren Operation zu vertauschen. Damit lassen sich bestimmte Arbeiten auf sicherere Weise durchführen. Außerdem lassen sich POSIX-Sperren jetzt dateispezifisch setzen, was eine der Schwierigkeiten mit diesen Sperren beseitigt, wenn eine Datei mit mehreren Dateideskriptoren geöffnet wurde.

Das FUSE-Subsystem kann nun Writeback-Caching nutzen, die Dateisysteme ext4 und XFS erhielten zusätzliche Operationen FALLOC_FL_ZERO_RANGE und FALLOC_FL_COLLAPSE_RANGE. XFS kennt jetzt zudem das Flag O_TMPFILE. Der Device Mapper erhielt ein neues Target »dm-era«. Das Erzeugen von 16 Bit-Segmenten im 64 Bit-Modus wird jetzt verhindert, da es eine potentielle Sicherheitslücke darstellt, indem es ungewollt Daten preisgibt. Da es vermutlich keine sinnvolle Anwendung für die 16 Bit-Segmente gibt, sind sie nun Geschichte.

Das heißt, nicht ganz. Es stellte sich heraus, dass Wine diese Segmente benötigt, um 16 Bit-Windows-Code auszuführen, der zumindest in »Installern« bis in jüngste Zeit geradezu omnipräsent war. Ohne diese Möglichkeit wäre Wine auf 64 Bit nahezu unbrauchbar. Eine Lösung seitens Wine ist zwar in Arbeit, aber dennoch machte Linus Torvalds in RC 6 die Änderung teilweise rückgängig und machte sie zu einer Option.

Auch bei den Paketfiltern tat sich einiges. So kann man mit ipset jetzt Pakete auswählen, die eine bestimmte Markierung tragen, die von anderen Filterprogrammen auf höherer Ebene gesetzt wurde. Der Just-in-Time-Compiler für BPF-basierte Paketfilterung wurde neu geschrieben und verwendet jetzt einen ganz anderen Befehlssatz.

Das Tracen von Funktionen kann nun mit mehreren Instanzen mit getrennten Puffern erfolgen, wobei jede Instanz eine andere Teilmenge der Funktionen aufzeichnet. Darüber hinaus wurden zahlreiche Treiber aktualisiert, erweitert oder kamen neu hinzu. Eine Liste aller Änderungen kann man dem Git-Repositorium entnehmen. Die Seite Kernelnewbies.org wird in Kürze eine übersichtliche Zusammenfassung der Änderungen veröffentlichen. Die aktuelle Version von Linux kann von kernel.org und zahlreichen Spiegel-Servern in Form von Patches oder tar-Paketen heruntergeladen werden.

Werbung
Kommentare (Insgesamt: 5 || Alle anzeigen )
Re: OT: Frohe Pfingsten (rtzz, Mi, 11. Juni 2014)
Re: OT: Frohe Pfingsten (asdfghjkl, Di, 10. Juni 2014)
Re: OT: Frohe Pfingsten (hjb, Mo, 9. Juni 2014)
Re: OT: Frohe Pfingsten (sun, Mo, 9. Juni 2014)
OT: Frohe Pfingsten (Pete, Mo, 9. Juni 2014)
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung