Kernel: Linux 3.0 ist fertig
Linus Torvalds hat die Versionsnummer des Linux-Kernels auf 3.0 erhöht(öffnet im neuen Fenster) und jetzt die finale Version freigegeben(öffnet im neuen Fenster). Torvalds hatte bereits mehrfach angedeutet, dass er die Nummerierung der aktuellen Kernel-Reihe ändern wolle. Zunächst hatte er überlegt, von 2.6 auf 2.8 umzusteigen, entschied sich aber, nun gleich auf Version 3.0 zu wechseln. Als einen der Gründe nennt er das bevorstehende runde Jubiläum des Kernels: Am 17. September 1991 erschien Version 0.0.1.
Ein weiterer Grund sei die als zu aufwendig erachtete Nummerierung mit vier Stellen für Updates von einzelnen Kernel-Versionen. Der Kernel-Maintainer Greg Kroah-Hartman habe erhebliche Probleme mit der bisherigen Nummerierung gehabt. Er habe seine Kernel-Updates mit vierstelligen Versionsnummern veröffentlichen müssen. Kroah-Hartman hielt dann auch sein vor Jahren gemachtes Versprechen ein und überreichte Torvalds eine Flasche Whiskey. Er hatte Torvalds die Flasche versprochen, sobald die Nummerierung vereinfacht werde.
Video: Linus Torvalds im Interview über 20 Jahre Linux |
Grafikkarten
Für den Grafikchip i915 in Intels Ivy-Bridge wurde das Page-Flipping aktiviert, während der GMA500-Chipsatz zumindest rudimentär die Speicherverwaltung GEM (Graphics Execution Manager) nutzen kann.
In den freien Radeon-Treiber, der für Grafikchipsätze von AMD zuständig ist, wurde die Blit-Unterstützung für Cayman-Chipsätze eingepflegt. Ferner kann der Treiber AMDs Fusion-APUs der Llano-Reihe ansprechen. Außerdem erhält der Radeon-Treiber einige Verbesserungen für die Ausgabe an Displayports. Probleme bereitet noch die Audioausgabe über HDMI, weshalb diese Funktion noch deaktiviert ist. Der für Nvidia-Chipsätze zuständige freie Nouveau-Treiber kann eine Farbtiefe von 32 Bit ausgeben. Zudem wurde die Unterstützung von Nvidia Optimus genannte Technik verbessert. Zwischen einer integrierten Lösung und einer diskreten GPU wird damit beim Start einer OpenGL-Anwendung automatisch umgeschaltet.
Netzwerk
Der Berkeley Packet Filter Just in Time Compiler (Bpf_jit) soll das Filtern von Netzwerkpaketen auf 64-Bit-Systemen beschleunigen(öffnet im neuen Fenster). Der Berkley Packet Filter (BPF), den es bereits seit längerem im Kernel gibt, selektiert die Netzwerkpakete, die eine Applikation anfordert, etwa Tcpdump. Dabei kann BPF auch mit Sockets verwendet und so von beliebigen Anwendungen als Firewall eingesetzt werden. Mit dem jetzt eingereichten Patch wird BPF-Code in Echtzeit in Assembler übersetzt und soll damit die Verarbeitung eines Pakets um 50 Nanosekunden reduzieren, was sich bei einem normalen Paketdurchsatz ansehnlich summiert. Gegenwärtig muss Bpf_jit noch unter/proc/sys/net/core/bpf_jit mit dem Wert 1 manuell aktiviert werden.
Per Setns(öffnet im neuen Fenster) können künftig Namespaces erstellt werden, über die unterschiedliche Prozesse oder Prozessgruppen auf den Netzwerkstack zugreifen können. Dadurch sollen sich beispielsweise VPN-Verbindungen isolieren lassen. Auch die Linux-Container-Entwickler zeigten sich an der Funktion interessiert.
Völlig gerechte Verteilung
Zu den neuen Funktionen in Kernel 3.0 gehört das Quick Fair Queueing (QFQ)(öffnet im neuen Fenster) im Netzwerkstack, das für eine effizientere Verteilung von Netzwerkpaketen sorgen und effizienter laufen soll. Der Algorithmus wird bereits in Ipfw in FreeBSD eingesetzt.
Der im letzten Kernel hinzugekommene Paketfilter Ipset kommt mit den Protokollen SCTP und UDPLite zurecht. Das Kommandozeilenwerkzeug Ipset vereinfacht die Paketfilterung, indem es mehrere IP-Adressen gleichzeitig in einer Tabelle aktualisiert, die im Arbeitsspeicher gehalten wird. Über den neuen Socket IPPROTO_ICMP kann Ping künftig auch ohne Root-Rechte ausgeführt werden. Der Patch wurde von den Openwall-Linux-Entwicklern eingereicht, deren auf Sicherheit getrimmte Distribution(öffnet im neuen Fenster) künftig völlig ohne das Verwenden von Root-Rechten auskommt.
WLAN weckt auf
Bislang fehlte dem WLAN-Stack des Kernels die komplette Unterstützung für Wake on Wireless LAN (WoWLAN). Die Funktion zur Konfiguration von WoWLAN haben die Kernel-Entwickler jetzt nachgereicht. Scans können künftig automatisch in gewissen Abständen direkt von WLAN-Hardware ausgeführt werden, um das System zu entlasten. Anwendungen können Ad-hoc-Netze künftig direkt im Userspace verwalten, der Kernel bietet jetzt eine entsprechende Schnittstelle. Über eine neue Benachrichtigung können solche Anwendungen auch im Userspace Informationen über mögliche Peers im Mesh-Netzwerk erhalten.Netzwerktreiber
Die Chipsätze der RT33xx- und RT53xx-Familie von Realtek werden künftig komplett vom Kernel-Modul Rt2x00 unterstützt, auch wenn der Treiber für RT53xx noch als experimentell eingestuft wurde. Das Kernel-Modul Rtlwifi kommt mit den WLAN-Chipsätzen Rtl8192SE und Rtl8192D von Realtek zurecht. Von der gleichen Firma werden auch die in PCIe-Karten verbauten Chipsätze RTL8168DP und RTL8168E unterstützt. Das Kernel-Modul Ath6kl spricht den Chipsatz AR6003 v2.1.1 von Atheros an, während Ath9k den Chipsatz AR9340 der gleichen Firma anspricht. Der Chipsatz 82599 von Intel erhält Unterstützung durch das Kernel-Modul Ixgbe.
Dateisysteme
In Ext4 ist die als Punch-Hole bezeichnete Funktion implementiert worden. Dabei kann das Dateisystem Blöcke freigeben, die sich in der Mitte einer Datei befinden. Punch-Hole ist beispielsweise für das TV-Streaming interessant, etwa um Speicherplatz zu sparen, wenn Daten im Dateisystem gepuffert werden. Auch die Festplattenimages von virtuellen Maschinen profitieren von Punch-Hole. Die Dateisysteme XFS und OCFS2 verwenden die Funktion bereits seit Kernel 2.6.38. Außerdem erhält Ext4 die Multiple Mount Protection (MMP) genannte Technik, um das versehentliche mehrfache Einbinden im Dateisystem zu vermeiden. Außerdem wird durch das Setzen eines neuen Feldes im Superblock Hilfsprogrammen wie E2fschk mitgeteilt, das Dateisystem nicht zu prüfen, sollte es versehentlich mehrfach in das System eingebunden worden sein.
Btrfs erhält einen Leistungsschub durch die sogenannten Delayed Inode Items. Da Btrfs zahlreiche B-Tree-Einträge bei Schreib- und Löschvorgängen abarbeiten muss, ist es gegenüber Ext4 weniger performant. Mit den Delayed Inode Items wird das Schreiben von Inode Items zurückgehalten und später abgearbeitet. Damit soll das Erstellen von Dateien um 15 Prozent und das Löschen von Dateien um 20 Prozent beschleunigt worden sein.
Scrub für die Datenintegrität
Über die neue Scrub-Funktion können alle Daten auf Speichermedien per Checksumme überprüft werden. Sollte eine Datei nicht intakt sein, versucht Btrfs, die entsprechende Datei von intakten Blöcken zu rekonstruieren. Auf 32-Bit-Systemen wird die Anzahl der Inodes nach vielfachem Schreiben und Löschen nicht mehr knapp; freie Inode-Nummern werden künftig in einem Cache verwaltet.
Das von Oracle beigetragene OCFS2 erhält Trimming-Support für den Einsatz auf SSDs. XFS erhält die Unterstützung für Online-Discard, bei dem der Datenträger direkt über das Löschen von Dateien informiert wird. Das Netzwerkdateisystem CIFS für die Einbindung von Windows-Freigaben unterstützt das unter Windows 2008 Server verwendete verteilte Dateisystem DFS.
Virtualisierung
Für den Hypervisor Xen wurde als letzte wichtige Funktion der Backend-Treiber für Block-Devices hinzugefügt. Damit erhält Dom0 des Xen-Hypervisors Zugriff auf Speichermedien, die letzte wichtige Komponente, um funktionierende Gastsysteme zu unterstützen. Einige Funktionen fehlen aber nach wie vor, etwa der Zugriff auf USB-Geräte. Die Kernel-based Virtual Machine (KVM) erhält ebenfalls einige Leistungsoptimierungen und ein verbessertes Read-Copy-Update. Außerdem lässt sich KVM mit Prozessoren von VIA nutzen. Der virtuelle Time Stamp Counter wurde an die Taktraten aktueller AMD-Prozessoren angepasst. Der Datenaustausch zwischen Gast- und Hostsystemen wurde mit dem Event Index verbessert, was den Virtualisierungsschnittstellen Virtio und Vhost zugutekommen soll.
Speicherverwaltung und Sicherheit
Linux 3.0 kann die Funktion Supervisor Mode Execution Protection (SMEP) nutzen, die in kommenden Intel-Prozessoren integriert ist. SMEP verbietet Ring0 eines Kernels das Ausführen von Code im Speicher, das mit einem User-Bit gesetzt ist. Außerdem können die Rechte von sogenannten Usermode Helpers explizit über neue Sysctls(öffnet im neuen Fenster) eingeschränkt werden.
SELinuxfs erhält einen Mountpoint in Sysfs und somit eine Schnittstelle zwischen seinen Werkzeugen und dem Kernel. Langfristig soll das bisher verwendete Root-Verzeichnis /selinux/ entfernt werden. Darüber hinaus erhält SELinux auch eine verbesserte Unterstützung für Read-Copy-Update im Zusammenspiel mit VFS (Virtual File System). Diese Daten können künftig in einem Cache verwaltet werden und erhöhen somit die Leistung von Zugriffen auf VFS.
In dem neuen Cleancache(öffnet im neuen Fenster) für Dateisysteme, etwa Ext4 oder Btrfs, kann der Kernel Speicherseiten ablegen, die er sonst verwerfen würde, wenn der Speicher knapp wird. Die Daten können bei Bedarf zwar wieder von dem Datenträger ausgelesen werden, da dies aber zu langsam ist, können sie stattdessen in Cleancache ausgelagert werden. Cleancache hält diese Daten im Speicher bereit. Da es nicht der Speicherverwaltung des Kernels unterliegt, können dort abgelegte Daten beliebig verwaltet werden, etwa mit dem Zusammenlegen identischer Speicherseiten.
Die Speicherverwaltung erhält mit MM premptibilty neue Patches, mit denen sich die Funktion mmu_gather unterbrechen lassen. Mmu_gather sucht den Speicher nach nicht benötigten Seiten ab und gibt Adressräume frei. Mit der Fähigkeit, die Funktion zu unterbrechen, sollen die Skalierbarkeit und die Echtzeiteigenschaften verbessert werden.
Das Dateisystem Tmpfs kann auf erweiterte Attribute zugreifen. Posix kennt die Clock-Types CLOCK_REALTIME_ALARM und CLOCK_BOOTTIME_ALARM, um Systeme zu vorherbestimmten Zeiten aus dem Ruhezustand aufzuwecken.
Der aktuelle Linux-Kernel steht als Quellcode unter kernel.org(öffnet im neuen Fenster) zum Download bereit.
- Anzeige Hier geht es zum Eero Pro 6 bei Amazon Wenn Sie auf diesen Link klicken und darüber einkaufen, erhält Golem eine kleine Provision. Dies ändert nichts am Preis der Artikel.