Pinguin im neuen Gefieder

Der neue Linux-Kernel bringt aktuellen Hardware-Support für Enduser sowie bessere Skalierbarkeit in SMP-Umgebungen.

Artikel erschienen in Swiss IT Magazine 2004/01

     

Drei Jahre ist es her: Im Januar 2001 erschien mit der Kernel-Version 2.4.0 das letzte Minor-Release des Linux-Kernels. Dieses stand vor allem am Anfang unter einem schlechten Stern. So mussten die Entwickler das Virtual-Memory-Management austauschen und die Version 2.4.11 sollte man am Besten gar nicht erst benutzen - sie wurde mit "dontuse" beschriftet. Mittlerweile hat sich der 2.4er-Kernel aber stabilisiert und ist flächendeckend im produktiven Einsatz. Damit sich diese Probleme nicht wiederholen, hat man seit dem Dezember 2001 rund drei Jahre an der neuen Kernel-Version geschraubt, die am 18. Dezember 2003 von Linus Torvalds und Kernel-Maintainer Andrew Morton offiziell freigegeben wurde und mit wichtigen Neuerungen aufwartet.


Mehr Hardware

Einer der gewichtigsten Nachteile von Linux ist der Hardwaresupport, der vor allem für Desktop-Systeme sehr wichtig ist, da kein Umsteiger von Windows gerne auf die Hälfte seiner bestehenden Hardware und Peripherie verzichtet. Entsprechend wurde vor allem bei den Geräteklassen kräftig nachgelegt, die besonders auf Consumer-PCs zum Einsatz kommen.



Der ACPI-Code (Advanced Configuration and Power Interface) wurde runderneuert und stark erweitert, ebenso der Video4Linux-Code, der ab jetzt v4l2 heisst. Das Soundsystem OSS wurde zu Gunsten des thread-sicheren ALSA komplett gekippt.




Nach langen Streitereien konnte man sich auch dazu durchringen, den IDE-Layer neu zu entwickeln. Dies bedeutet für die Benutzer unter Anderem, dass man nun sowohl CDs als auch DVDs direkt inklusive Benutzung von DMA (Direct Memory Access) brennen kann, ohne das mittlerweile defekte ide-scsi-Modul verwenden zu müssen.



Auf Chipsatzebene wurde die Unterstützung für Plug-and-Play BIOSe inklusive einiger Erweiterungen hinzugefügt. Dank Enhanced Disk Device Polling lassen sich nun dem BIOS Informationen über bootfähige Geräte entnehmen oder mit Hilfe des Simple Boot Flags der Power-On-Self-Test beim nächsten Booten unterbinden.



Bei den Stromsparfunktionen und -Modi hat sich ebenfalls viel getan, was man vor allem der Umgestaltung des Gerätemodells verdankt. Mit Hilfe des Linux Device Model (LDM) werden Systemkomponenten wie CPU oder Festplatte in einer hierarchischen Struktur abgebildet. Dies erlaubt die Definition von Abhängigkeiten unter den einzelnen Geräten und ermöglicht es, Komponenten in einen Stromsparmodus zu versetzen, ohne benötigte Geräte ebenfalls aus Versehen schlafen zu schicken, was bis zum Absturz des Computers führen kann. Diese Neuerung geht Hand in Hand mit dem ebenfalls neuen virtuellen Dateisystem sysfs, das mittelfristig /proc und somit auch das als unwartbar angesehene devfs ablösen soll.



Sollten eine Maschine keine Hibernation-Funktionen nach APM-Spezifikation (Advanced Power Management) bieten, kann dies nun ebenfalls der Kernel lösen, der über ein softwarebasiertes Suspend-to-Disk verfügt. Dabei schreibt der Kernel den aktuellen Arbeitszustand in die Swap-Partition und schaltet dann die Geräte der Reihe nach ab. Beim Neustart wird der letzte Arbeitszustand von der Swap-Partition wiederhergestellt.



Besitzer von Laptops mit Mobil-Prozessoren dürften sich besonders darüber freuen, dass die Stromsparfunktionen von Laptopprozessoren nun auch genutzt werden können: Unterstützt werden sowohl AMDs PowerNow! als auch Intels Speedstep.


Bessere Skalierbarkeit

Besonders in Punkto Skalierbarkeit hinkte Linux bisher den "grossen" Unices hinter her. Um diesem Problem beizukommen, wurden grosse Anstrengungen im Bereich Multiprocessing unternommen und die Unterstützung von Systemen mit vielen CPUs, grossen Mengen an Hauptspeicher und Festplatten stark verbessert. Neben einem neuen 0(1)-Scheduler, asynchronem I/O und NUMA-Support hat vor allem die Reduktion der globalen Spin-Locks und die dedizierte Run-Queue für jede CPU dazu geführt, dass Linux auf grossen Systemen weit besser skaliert als früher - fast komplett unabhängig von der Anzahl der Prozesse.



Liessen sich bisher Echtzeitsysteme nur durch einen speziellen Kernel-Patch realisieren, wurde dieser Preemption-Patch nun fest integriert. Dies führt dazu, dass Tasks mit einer tieferen Priorität schlafen gelegt werden, um die Ausführung wichtigerer Prozesse bevorzugen zu können, das eine wichtige Voraussetzung für Echtzeitsysteme ist. Die Tasks werden nun nur noch von den Spin-Locks behindert, die aber dank futex (fast user-space mutex) nur noch kleine Bereiche betreffen und nur ausgelöst werden, sollte ein gleichzeitiger Zugriff auf denselben Kernel-Bereich erfolgen. Die globalen Kernel-Locks, die man noch aus Linux 1.x-Zeiten kennt, gehören nun fast komplett der Vergangenheit an - die letzten Reste sollen Stück für Stück abgebaut werden.




Auch 64-Bit-fähige Filesysteme bringen Linux näher an die grossen Unices heran. Neben ReiserFS und JFS, das man schon aus dem 2.4er Kernel kennt, ist nun auch SGIs XFS zu einem festen Bestandteil des Kernels geworden. Wer ein fein granuliertes Rechtemanagement wie beispielsweise aus OpenVMS vermisst, kann sich nun mindestens mit den POSIX-ACLs trösten, die auch mit NFS funktionieren und im Gegensatz zum 2.4er-Kernel standardmässig dazu gehören.




Artikel kommentieren
Kommentare werden vor der Freischaltung durch die Redaktion geprüft.

Anti-Spam-Frage: Aus welcher Stadt stammten die Bremer Stadtmusikanten?
GOLD SPONSOREN
SPONSOREN & PARTNER