ubuntuusers.de

Der Ziege treues Herz: Ein Blick auf den Kernel

ubuntu_logo.png

Den Ubuntu-Nutzern legt dieses Jahr untypischerweise eine Ziege die erste Überraschung ins Osternest. Doch das ist beileibe nicht das Einzige, was Trusty Tahr zu bieten hat und einige der Neuerungen verstecken sich unter der pelzigen Oberfläche. Ein Blick auf die inneren Werte lohnt sich also.

Kam der Saftige Lurch noch mit dem damals recht aktuellen Linux 3.11 daher, wagte man für Trusty Tahr nur den Sprung über zwei Versionen hinweg auf Version 3.13.

Die Gründe hierfür dürften unter anderem darin liegen, dass es sich bei Ubuntu 14.04 wieder um eine LTS-Version mit Langzeit-Unterstützung handelt und hierfür eher „erprobte“ Kernel gegenüber frisch veröffentlichten bevorzugt werden. Außerdem kollidierte die Veröffentlichung von 3.14 am 31. März mit dem Kernel Freeze von Ubuntu 14.04 LTS am 3. April, was sich als zu knapp erwies. Nichtsdestotrotz können sich auch die hier eingegangenen Neuerungen durchaus sehen lassen.

Grafik

Die Entwickler der Treiber für Grafik-Chipsätze verschiedener Hersteller haben einiges geleistet. Die am deutlichsten für den Nutzer spürbaren Neuerungen dürften in diesem Bereich zu finden sein. Zuerst einmal dürften sich Nutzer von Laptops mit Hybrid-Grafikkarten freuen, die bislang auf die Verwendung von zusätzlichen Skripten oder Userspace-Programmen angewiesen waren. Nun wird der Linux-Kernel – beziehungsweise seine Grafik-Treiber – selbst für Nvidias Optimus- als auch AMDs Radeon-Chipsätze bestimmen können, wann welcher Grafikprozessor benötigt wird. Der Umweg über ein Userspace-Werkzeug gehört damit der Vergangenheit an.

Bereits der unter Saucy Salamander genutzte Linux-Kernel brachte Unterstützung für das dynamische Energiemanagement einiger Radeon-Chips mit, allerdings war diese Funktion noch als experimentell angesehen und daher nicht aktiv. Nun wurde Power Management für viele Radeon-Chipsätze in der Standardkonfiguration des Kernels aktiviert.

Eine Sache, die der Leistung für Radeon-Grafik zugute kommt, können sich die AMD-Entwickler jedoch nicht selbst zuschreiben. Änderungen der Methode, mittels der der Kernel die notwendige Taktfrequenz für die jeweiligen Situation ermittelt, führten zu erheblichen Verbesserungen der Grafik-Performance, wie das Portal Phoronix herausfand 🇬🇧 . Letztendlich variierte die alte Methode früherer Kernel-Versionen die Taktfrequenz sehr schnell. Diese stark schwankenden Taktraten wiederum beeinträchtigten die Grafikkomponenten, die ihre Leistung nicht voll ausspielen konnten.

Netzwerk

Einen schnelleren Aufbau von Netzwerkverbindungen soll TCP Fast Open (TFO) ermöglichen. TFO ermöglicht es, Pakete beim Verbindungsaufbau einzusparen und dadurch schneller mit der Übertragung von Nutzdaten beginnen zu können. Linux unterstützt dies sowohl auf Server- als auch auf der Client-Seite und kann damit entsprechende Anwendungen bedienen. Chromium kann bereits TFO nutzen, auch wenn dies standardmäßig ausgeschaltet ist, weiteren Browsern oder Programmen steht der Weg unter Linux nun jedoch ebenfalls offen.

Tiefschlafphasen & überfüllte Speicher

Der Punkt Tickless Multitasking war schon bei Ubuntu 13.10 ein Thema. Dessen Linux-Kernel 3.11 konnte zwar den Gebrauch der „Timeticks“ erheblich reduzieren, jedoch nicht vollkommen abschalten. Sie wurden immer noch benötigt, da eine CPU des Systems einmal pro Sekunde aus dem Schlaf geweckt werden musste, um als Zeitgeber für die anderen Prozessoren zu dienen. Die Arbeiten sind in dieser Richtung nun soweit gediehen, dass alle Prozessoren in Tiefschlaf gehen können, ohne regelmäßig geweckt werden zu müssen. Dies führt zu entsprechender Energieersparnis, solange die Prozessoren nicht durch andere Anforderungen aufgeweckt werden.

Fast jeder Nutzer kennt die Situation, wenn Arbeits- und Auslagerungsspeicher des Systems voll laufen (Out-Of-Memory) und dessen Arbeitswilligkeit damit rapide nachlässt. Aktive Prozesse konkurrieren dann um Speicher und blockieren sich in der Ausführung bisweilen gegenseitig, sodass die Betätigung des Reset-Knopfes durchaus verlockend sein kann. An dieser Stelle versucht Linux einen der laufenden Prozesse zu töten, um dessen belegten Speicher wieder frei zu bekommen und damit den Betrieb der anderen Anwendungen wieder sicherstellen zu können. Dieses Verhalten wurde nun überarbeitet, sodass Anwendungen seltener beendet werden müssen, was oftmals mit Inkonsistenzen in der Speicherverwaltung einhergeht und damit eine solche Situation durchaus auch verschlimmern kann. Stattdessen sendet Linux einem Prozess, der nach mehr Speicher fragt einen Fehler zurück, der jedoch von der Anwendung in der Regel abgefangen wird und damit nicht zum Absturz führen sollte. Reicht dies jedoch nicht aus, so entledigt sich Linux nun aller Sperren, bevor ein Prozess beendet wird, und vermeidet dadurch, dass der Speicherbereich des eben terminierten Prozesses durch einen nicht aufgehobenen Lock gegen den Zugriff anderer Prozesse geschützt wird.

Update: Wir wurden von einem Leser darauf hingewiesen, dass ein Tahr keine Ziege ist, sondern nur zur Gattung der Ziegenartigen gehört. Wir verwenden den Begriff in diesem Artikel daher etwas freizügiger als es biologisch korrekt wäre.


Quellen: