Linux: Kernel 3.1 erhält NFC-Subsystem

Einige Wochen später als geplant ist der Linux-Kernel 3.1 erschienen(öffnet im neuen Fenster) . Er war für Anfang bis Mitte September erwartet worden, die Freigabe verzögerte sich aufgrund eines Einbruchs auf die Server der Webseite Kernel.org. Wesentliche Änderungen haben die Kernel-Hacker bei der Virtualisierung und im Virtual File System (VFS) vorgenommen. Außerdem hat Linux 3.1 ein NFC-Subsystem und zahlreiche neue WLAN-Treiber.
Kernel.org gehackt
Der Einbruch auf Kernel.org erfolgte über einen gestohlenen SSH-Schlüssel von einem der Kernel-Hacker. Angreifer hatten sich darüber Zugang zu den Servern verschafft und weitere SSH-Schlüssel entwendet. Den Administratoren blieb nichts anderes übrig, als die Server komplett vom Netz zu nehmen und neu aufzusetzen. Als Konsequenz sind künftig Shell-Zugänge über SSH nicht mehr möglich. Stattdessen müssen Kernel-Entwickler künftig Gitolite verwenden, um ihre Änderungen in den Sourcecode einzubauen.
Nach und nach wurden neue Schlüssel an die Entwickler verteilt und Backups des Quellcodes der verschiedenen Kernel-Versionen eingespielt. Jeder Kernel-Entwickler hat eine Kopie des Quellcodes auf seinem lokalen Rechner. Dass der Sourcecode der Linux-Kernel verändert wurde, ist unwahrscheinlich. Denn Git-Dateien werden über einen SHA-1-Hashwert überprüft und zusätzlich wird der gesamte Quellcode eines Entwicklungszweigs gehasht. Da mehrere tausend Entwickler häufig mehrmals täglich ihre Quellen überprüfen und mit dem Kernel.org-Repository vergleichen, würde veränderter Code sofort auffallen. Kernel-Hacker Jonathan Corbet sagt: "Wenn wir sagen, der Quellcode auf Kernel.org wurde nicht kompromittiert, wissen wir es auch wirklich."
Datentausch per NFC
Der Kernel 3.1 erhält ein Subsystem für den Datenübertragungsstandard Near Field Communication (NFC). Das NFC-Subsystem stellt eine Schnittstelle(öffnet im neuen Fenster) für diverse Treiber zur Verfügung, kümmert sich um die Datenübertragung und hat auch eine Schnittstelle(öffnet im neuen Fenster) für die Userspace-Anwendungen.
Für die Opensource-CPU Openrisc(öffnet im neuen Fenster) bringt Kernel 3.1 ebenfalls Unterstützung. Das Hardwaredesign für die Prozessorfamilie Openrisc 1000 ist unter der LGPL veröffentlicht und beschreibt den Grundriss für Risc-basierte CPUs in 32- und 64-Bit-Versionen samt FPU. Die Modelle und die Firmware für die CPUs stehen unter der GPL.
Mehr Virtuelles
In der Kernel Virtual Machine (KVM) lassen sich künftig in Gastsystemen weitere virtuelle Systeme aufsetzen und nutzen. Das Verschachteln - auch Nested Virtualization genannt - war bislang nur mit Prozessoren von AMD möglich. Mit Kernel 3.1 funktioniert die verschachtelte Virtualisierung auch mit Intel-Prozessoren. Allerdings können lediglich Linux-Systeme in Linux-Gastsystemen installiert werden. Außerdem werden nur 64-Bit-Hypervisoren unterstützt. Zudem muss die Option explizit über den Parameter nested=1 aktiviert werden. Später soll KVM das Windows-7-Gastsystem mit virtualisiertem Windows XP unterstützen. Die IMB-Mitarbeiter, die die Funktion entwickelten, haben in einem Whitepaper(öffnet im neuen Fenster) mögliche Einsatzszenarien beschrieben.
Weitere Änderungen an der KVM betreffen die Zeitgeberfunktionen, die unter dem Namen "Steal Time" einflossen. Die Funktion kann künftig unter anderem messen, wie viel Zeit einzelne Prozesse in Wirtssystemen benötigt haben(öffnet im neuen Fenster) und diese an Gastsysteme weitergeben. Zudem wurde die KVM-Speicherverwaltung optimiert, beispielsweise durch nicht gesperrte Shadow-Tabellen (Lockless walking shadow page table) und eine effizientere Handhabung von Seitenfehlern.
PCI-Backend für Xen
Xen erhält ein PCI-Backend, über das Xen-Gäste PCI-Geräte und PCI-Express-Geräte direkt nutzen können. Dom0 kann künftig Informationen über eine VGA-Konsole ausgeben. Außerdem können paravirtualisierte Gastsysteme von der Single-Root I/O Virtualization (SR-IOV) Gebrauch machen, bei der PCIe-Geräte virtualisiert werden. Ferner wurde der Xen-Balloon-Treiber(öffnet im neuen Fenster) überarbeitet und kann automatisch während der Laufzeit vergrößert oder verkleinert werden (Memory Hotplugging).
Für den Freescale-Hypervisor gibt es jetzt ein Verwaltungswerkzeug. Das Netzwerkmodul Vmxnet3 für den Vmware-Hypervisor erhält neben Large Receive Offload (LRO) auch Generic Receive Offload (GRO). Es kommt zum Einsatz, wenn LRO nicht verwendet werden kann, etwa wenn Bridging statt Network Address Translation (NAT) genutzt wird. GRO fasst Pakete zusammen und steigert damit den Datendurchsatz(öffnet im neuen Fenster) .
Dateisysteme
Mit Dynamic Writeback Throtteling wird das Schreiben veränderter Speicherblöcke(öffnet im neuen Fenster) auf feste Datenträger der Geschwindigkeit des Datenträgers angepasst. Ein entsprechender Algorithmus versucht, die Bandbreite des Datenträgers zu ermitteln. Ferner werden die I/O-Muster optimiert, so dass es nicht mehr zu gleichzeitigen Schreibzugriffen kommt.
Für das Ext3-Dateisystem wird der Write-Barrier-Befehl standardmäßig aktiviert. Normalerweise reorganisiert die Firmware eines Datenträgers den Schreibcache, um das Schreiben von Daten auf den Datenträger zu optimieren. Das beeinflusst unter Umständen die Datenintegrität, etwa beim Schreiben von Dateisystem-Journals. Bei heiklen Schreibbefehlen sendet der Kernel den Barrier-Befehl mit, um Eingriffe seitens der Datenträger-Firmware zu verhindern. Bislang war diese Option für das Dateisystem Ext3 deaktiviert. Wer deutliche Leistungseinbußen beobachtet, kann die Option per Mount-Parameter barriers=0 deaktivieren.
Raid-1 für Dmraid
Verbesserungen am Virtual File System (VFS) sollen vor allem die Skalierbarkeit des VFS-Subsystems optimieren. Die LRU-Liste (Least Recently Used) der freien Inodes in einem Dateisystem werden beispielsweise künftig nicht mehr global verwaltet, sondern für jeden Superblock.
Die MD-Schicht für Software-Raids erkennt künftig Bad Blocks und sperrt sie. Dazu ist eine aktuelle Version der entsprechenden Mdadm-Werkzeuge nötig. Der Dmraid-Treiber für Raid-Chipsätze auf Mainboards erhält die Unterstützung für Raid-1(öffnet im neuen Fenster) , also das Spiegeln von Datenträgern. Das Einlesen der Ordnerstruktur auf dem Btrfs-Dateisystem soll verbessert worden sein. Der Linux-Kernel 3.1 kann FAT16-Partitionen mit der maximalen Größe von 4 GByte (64-KByte-Cluster) verwalten(öffnet im neuen Fenster) . Allerdings können dort weiter nur Dateien von bis zu zwei 2 GByte Größe geschrieben werden. Auf Apples HFS-Plus-Dateisystem können größere Dateien geschrieben werden.
Systemkomponenten
Unter dem Namen Cpupowerutils(öffnet im neuen Fenster) wurde eine neue Werkzeugsammlung integriert, die der Nachfolger der Cpufrequtils sein soll und um einige weitere Funktionen erweitert wurde. Cpupowerutils richtet sich an Entwickler und Anwender. Die Werkzeugsammlung beinhaltet beispielsweise einen erweiterten Hardwaremonitor und bietet Einstellungen für X86-, ARM-, Itanium- oder Sparc-Architekturen, die es bislang nur separat gab.
Manche Anwendungen kommen immer noch nicht mit der neuen Nummerierung des Kernels zurecht, etwa die Verwaltungssoftware von Druckerherstellern, die es nur in Binärform gibt. Deshalb haben die Kernel-Entwickler Uname26 eingebracht, das Versionsnummern in der 2.6er Form meldet.
Ptrace wiederbelebt
Künftig können auch im Kernel direkt integrierte Treiber samt Parameter von Udev im Userspace verwaltet werden. Dazu wird im virtuellen Dateisystem Sysfs für jedes erkannte Gerät eine entsprechende Datei abgelegt, die sogenannten uevent files . Bislang gibt es diese Dateien nur für ladbare Module des Kernels.
CRC8-Prüfsummen werden von nur einigen Kernel-Modulen verwendet, um Befehle an Hardware abzusichern, etwa den brcm80211 für Broadcom-Chipsätze, der sich wiederum erst im Staging-Bereich des Kernel-Codes befindet. Dennoch haben die Kernel-Hacker eine Bibliothek integriert, die den Algorithmus für CRC8 bereitstellt.
Der Prozess-Debugger Ptrace ist wegen seiner bisweilen unvorhersehbaren Verhaltensweise bei Entwicklern unbeliebt(öffnet im neuen Fenster) . Neue Funktionen sollen jetzt die schlimmsten Fehler beseitigen. Kernel-Hacker Tejun Heo hat die Patches PTRACE_INTERRUPT , PTRACE_LISTEN , PTRACE_SEIZE und TRAP_NOTIFY eingereicht, die die Kommunikation zwischen von Ptrace überwachten Prozessen und der Prozessverwaltung verbessern soll, wenn der Debugger sich einklinkt(öffnet im neuen Fenster) .
Netzwerk und Treiber
Der Paketfilter Ipset übersetzt IP-Bereiche in die entsprechenden Subnetz-Definitionen. Das Kommandozeilenwerkzeug Ipset vereinfacht die Paketfilterung, indem es mehrere IP-Adressen gleichzeitig in einer Tabelle aktualisiert, die im Arbeitsspeicher gehalten wird.
Der Berkeley Packet Filter Just in Time Compiler(öffnet im neuen Fenster) (Bpf_jit), der das Filtern von Netzwerkpaketen auf 64-Bit-Systemen beschleunigen soll, funktioniert jetzt auch auf der PPC64-Architektur.
Treiber
Neue Treiber für Ethernet- und WLAN-Karten sind ebenfalls wieder dabei. Das Rt2x00-Modul für Chipsätze von Ralink(öffnet im neuen Fenster) unterstützt die sogenannte RT3572/RT3592/RT3592+Bluetooth Combo Card. Der RTL8192DE-Treiber(öffnet im neuen Fenster) kommt mit RTL8192DE-/RTL8188DE-PCIe-Karten von Realtek zurecht. Weitere USB-Karten mit Realtek-Chipsatz unterstützt der Treiber Rtl8192cu(öffnet im neuen Fenster) , etwa den Cameo-Stick von Netgear.
Für die Wii Remote erhält Linux 3.1 neue Treiber. Die bislang als fehlerhaft eingestufte Unterstützung von komprimierten Framebuffers und die dazugehörige Stromsparoption RC6 wurden wieder aktiviert. Allerdings warnen die Entwickler, dass sie diese Option wieder deaktivieren, sobald Fehler(öffnet im neuen Fenster) auftauchen.
Für Grafikkarten mit Fermi-Chipsatz von Nvidia generiert der freie Nouveau-Treiber nun die benötigte Firmware für die 3D-Hardwarebeschleunigung. Laut Entwickler Brian Skeggs von Red Hat soll die Firmwaregenerierung für die Chips NVC0 und NVC4 funktionieren. Die Chips NVC1, NVC3, NVC8 und NVCE sollen möglicherweise unterstützt werden.
Der aktuelle Linux-Kernel steht als Quellcode unter kernel.org zum Download(öffnet im neuen Fenster) bereit.



