ubuntuusers.de

Was den Salamander so saftig macht: Ein Blick auf den Kernel

ubuntu_logo.png

Ein gutes halbes Jahr durfte der Salamander reifen, nun ist er geschlüpft. Diese neue Ubuntu-Version hat gegenüber dem Vorgänger einige Neuerungen aufzuweisen, von denen sich einige jedoch erst beim Blick in des Salamanders saftige Innere offenbaren.

Saucy Salamander nutzt einen Linux-Kernel, der auf der derzeit aktuellen Version 3.11 basiert. Gegenüber Raring Ringtail (Kernel 3.8) ist das ein Sprung über drei Versionen hinweg, der dann auch mit einigen, wenn auch für den Anwender nicht direkt spürbaren Veränderungen, einhergeht.

Tickless Multitasking

Eine Änderung ist die Einführung von Tickless Multitasking, das jedoch eher das Weglassen von etwas zum Ziel hat. Damit sollen in festen Zeitabständen auftretende Signale eliminiert werden, die den Prozessor daran erinnern, die Bearbeitung eines Prozesses zu stoppen, um einen anderen auszuführen.

Wiki/Icons/tux.png Dieses Vorgehen ermöglichte erst das Multitasking, also parallele Abarbeiten mehrerer Aufgaben, doch sorgen diese Signale bei jedem Auftreten dafür, dass der Prozessor aus den tiefen Schlafzuständen erwacht, auch wenn gar keine aktiven Prozesse vorhanden sind. Besonders problematisch ist dies auch im Umgang mit Virtuellen Maschinen, da diese ihre eigenen „Timeticks“ zusätzlich zum Gastsystem haben, die sich jedoch ebenfalls auf dieses auswirken. Derzeit wird noch nicht vollkommen auf die „Timeticks“ verzichtet, doch treten sie nun nur noch einmal anstatt tausendmal pro Sekunde auf.

ARM, 64-bit

ARM wird von Canonical als wichtige Plattform betrachtet und mit Saucy Salamander kommt nun auch ARM64 hinzu, wenn auch derzeit nur als Spielwiese für Entwickler (= Developer-Preview). Passend dazu kann der Linux-Kernel nun mit KVM- und Xen-Unterstützung für ARM und ARM64 aufwarten.

Das scheint zwar auf den ersten Blick eine Spielerei zu sein, doch liefert die Unterstützung von Virtualisierung im Hinblick auf Server-Systeme eine weite Palette an Einsatzmöglichkeiten, die den Betrieb anderer Gastsysteme unterschiedlichster Art ermöglicht.

Ebenso werden nun auch im Zusammenhang mit ARM und ARM64 große Speicherseiten unterstützt. Dies ermöglicht die Zuweisung größerer Stücke aus dem Arbeitsspeicher als den bislang üblichen 4 KiB, was bei speicherintensiven Prozessen die Abläufe durch eine wesentlich vereinfachte Speicherverwaltung beschleunigen kann. Eine andere Form der „Virtualisierung“ ist nun auch möglich: Linux 3.11 enthielt eine Änderung, mittels derer es nun möglich ist, Windows-RT-Anwendungen mittels Wine unter Linux auszuführen.

SSD als Cache

Solid State Disks oder SSD sind mittlerweile im Endverbraucher-Umfeld angekommen und auch unter Linux wollen sie nutzbringend eingesetzt werden. Nachdem in vergangenen Linux-Versionen für Flash-Speicher zugeschnittene Dateisysteme eingeführt wurden, hier sei F2FS genannt, steht diesmal eine eher unterstützende Verwendung im Vordergrund.

Mit dm-cache und Bcache 🇬🇧 stehen gleich zwei Techniken zur Verfügung, mittels derer sich SSD als Zwischenspeicher für herkömmliche Festplatten (HDD) nutzen lassen. Dies ermöglicht die Verwendung günstiger Massenspeicher im Terabyte-Bereich in Verbindung mit schnellen, jedoch teuren Flash-Speichern, um durch Pufferung der Schreib- und Lesezugriffe diese zu beschleunigen.

Die Ansätze sind dabei unterschiedlich: Während dm-cache als eigenes Target des Linux-eigenen Device Mapper umgesetzt wurde und damit vergleichsweise einfach gehalten werden konnte, stellt Bcache ein eigenes Dateisystem dar, für dessen Verwendung sowohl die SSD als auch die zugehörige HDD speziell formatiert werden müssen. Letztlich ist derzeit für beide Varianten noch Handarbeit erforderlich, die Tauglichkeit für die breite Masse der Anwender wird wohl erst mit Verfügbarkeit komfortabler Werkzeuge für die Einrichtung erreicht werden.

Swap und Zswap

Vielen Linux-Systemen steht auch heute noch eine Swap-Partition zur Seite, die Speicherseiten, welche nach Ansicht des Systems derzeit nicht benötigt werden, aus dem Hauptspeicher auf jene Partition auslagert. Zugriffe auf Festplatten sind jedoch erheblich zeitintensiver als auf den Arbeitsspeicher, sodass nun ein neuer Ansatz diese Auslagerungspraxis verbessern will.

Sollen Speicherseiten auf den langsameren Swap-Speicher verlegt werden, so versucht Zswap diese abzufangen und in einen komprimierten Bereich im Hauptspeicher zu verlagern. Zwar nimmt auch das Komprimieren und Entkomprimieren Zeit in Anspruch, diese fällt bei modernen Prozessoren jedoch nicht so stark ins Gewicht, wenn man es mit Schreib- und Lese-Vorgängen auf Festplatten vergleicht. Immerhin könnte hierdurch ein Teil der Auslagerung auf HDD vermieden und damit Rechen- oder vielmehr Transferzeit eingespart werden.

AMD, ATI, Radeon

Ein zunehmend wichtiges Thema ist der Spagat zwischen Energiebedarf und Leistungsfähigkeit eines Systems. Dies haben auch die Anbieter von Grafikkomponenten erkannt und ihre Produkte mit Mechanismen ausgestattet, die zwischen Energiespar- und Hochleistungsmodus umschalten können.

Die Arbeit an deren Unterstützung für Hardware aus dem Hause AMD beziehungsweise ATI wurde nun aufgenommen und soll künftig für alle Grafikchipsätze ab der R600-Serie tauglich sein. Bislang sind die jetzt in den Linux-Kernel eingegangenen Patches in der Standard-Einstellung noch nicht aktiv, dürften jedoch in kommenden Ubuntu-Versionen den Energiebedarf von Radeon-Karten spürbar positiv beeinflussen.

Quellen