Linux-Magazin-Logo Die Zeitschrift für Linux-Professionals

Zacks Kernel-News

Zack Brown

Neuer Maintainer für IDE-SCSI-Treiber

Willem Riede hat die recht undankbare Rolle des IDE-SCSI-Maintainers übernommen. Linus Torvalds sagte sogar von diesem Treiber, dass er niemals hätte existieren dürfen. Auch IDE-Maintainer Bartlomiej Zolnierkiewicz sowie andere Entwickler möchten IDE-SCSI auf jeden Fall im 2.7-Zeitfenster verschwinden lassen. Trotzdem gibt es genug Freiwillige, die den Treiber so gut wie möglich pflegen wollen, bis es so weit ist. Zurzeit jedenfalls ist IDE-SCSI durch Willems Patches lebendig wie eh und je.

API für Module-Handling renoviert

Wegen der Überholung des Modul-Handling-API in 2.5 mussten alle Module auf die Nutzung dieser neuen Funktion konvertiert werden. In 2.6 hatten nicht konvertierte Module keine Chance. Jetzt treffen noch einige Nachzügler ein. So hat Martin Diehl die Konvertierung des seriellen Irda-Dongle-Treibers auf das neue Modul-API fertig gestellt und David S. Miller hat ihn zur Aufnahme in eine bevorstehende 2.6-Kernel-Release übernommen.

Die Änderung des Modul-API war bei den Entwicklern relativ konsensfähig. Klagen über das Verschwinden von Lieblingsmodulen in 2.6 begegnete man mit dem Argument: Scheinbar interessiert sich niemand so sehr dafür, dass er bereit wäre den Code zu portieren.

Eine Nebenwirkung von Änderungen dieser Art ist die Tatsache, dass sie die gesamte Linux-Softwarebasis zur aktiven Pflege zwingt. Das ist gleichzeitig eine Stärke und eine Schwäche: Eine Stärke, weil die Entwicklung tatsächlich häufig benutzter Programme lebendig und aktuell bleibt, und eine Schwäche insofern, weil ebenfalls wirklich nützlicher, aber weniger im Rampenlicht stehender Code leicht in Vergessenheit gerät, wenn sich niemand um seine Pflege kümmert.

Der Adaptec/DPT-I2O-Treiber beispielsweise hat das Update auf das neue Treibermodell nicht geschafft und wurde kurzerhand für den 2.6er Tree verworfen. Leon Toh hat sich inzwischen zwar bemüht, den Treiber wieder funktionsfähig zu machen. Damit ist allerdings noch nicht gesagt, dass der Code automatisch wieder in den 2.6-Tree aufgenommen wird. Darüber hinaus sieht es so aus, als wollte Adaptec selbst andere Treiber zur Verfügung stellen.

IMQ-Treiber portiert

Der Treiber für das Intermediate Queueing Device (IMQ) wurde von Linux 2.4 auf 2.6 portiert. Das Device dient dazu, IP-Traffic gezielt an verschiedene Netzwerkkarten zu verteilen. Patrick McHardy hatte die 2.4er Version bis zum Oktober 2003 gepflegt, bevor er die weitere Arbeit an dem Projekt aufgab. Marcel Sebek hat die aktuelle 2.4er Version übernommen und seinen Port an David S. Miller eingeschickt.

Es ist generell fraglich, ob selbst ein voll funktionsfähiger und fertig gestellter IMQ-Treiber in den 2.6er Tree aufgenommen werden sollte, weil möglicherweise andere Mechanismen diese Aufgabe besser erfüllen können. Die Diskussion läuft noch.

Cooperative Linux

Eine neue Linux-Portierung namens Cooperative Linux dient dem Zweck, den Linux-Kernel als Low-Level-Prozess auf einer Vielzahl anderer Betriebssysteme wie beispielsweise Microsoft Windows zu betreiben. Es ähnelt damit dem User Mode Linux von Jeff Dikes.

Die ersten Erfolge sind schon zu verbuchen, unter Windows 2000 und XP läuft Cooperative Linux bereits. Die Entwickler unter der Leitung von Dan Aloni sind optimistisch, dass Linux zu guter Letzt unter vielen anderen Betriebssystemen ausführbar sein wird. Ironischerweise gibt es gegenwärtig keine Möglichkeit, Cooperative Linux auch unter Linux selbst zu starten.

Userspace-Zugriff auf Kernelheader

Der Versuch, den Zugriff von Userspace-Programmen auf Kernel-Headerdateien zu ermöglichen, steht wahrscheinlich kurz vor der Wiederbelebung. Seit einiger Zeit arbeiten ein paar Entwickler unabhängig voneinander daran. Es gibt sogar eine Mailingliste, die zurzeit jedoch brachliegt. Sobald die Arbeit an Kernel 2.7 richtig losgeht, wird sich das aber ändern. Ein Ergebnis dieser Arbeiten wäre, dass Programme, die mit einer Kernelversion kompiliert werden, auch unter einer anderen vernünftig laufen.

Das hat jedoch Vor- und Nachteile. Linus Torvalds und andere bedeutende Entwickler haben sich bereits gezielt gegen rein binäre Treiber und Ähnliches ausgesprochen.

Diskussion um geschlossene Mailinglisten

Nicht alle Mailinglisten, die in der Datei »MAINTAINERS« als korrekte Adresse für die Einsendung von Bug-Reports aufgeführt sind, lassen tatsächlich Postings von nicht angemeldeten Benutzern zu. Die meisten Entwickler, darunter auch Linus Torvalds, wollen alle Mailinglisten, die Bug-Reports zu Kernelthemen empfangen, öffentlich zugänglich halten. Jeder soll dort posten können, ungeachtet dessen, ob er sich angemeldet hat.

Die Linux-Kernel-Mailingliste selbst ist eine der aktivsten Listen des Universums und mit Ausnahme einiger Sperren und Antispam-Maßnahmen immer öffentlich gewesen. Aufgrund der neuerlichen Diskussion scheint sich eine andere Richtlinie durchzusetzen: Mailinglisten, die in der Datei »MAINTAINERS« stehen, müssen nicht unbedingt die Postings von Nicht-Mitgliedern zulassen. Sollten sie jedoch keine öffentlichen Postings zulassen, müssen sie auf jeden Fall eine zusätzliche Mailingliste für Bug-Reports einrichten, die für alle offen steht und in der mindenstens einer der Entwickler regelmäßig mitliest, die an dem Projekt maßgeblich beteiligt sind.

Deep Freeze von 2.4 verschoben

Marcelo Tosatti wird wohl doch für längere Zeit noch kleinere neue Features in den Kernel 2.4 aufnehmen müssen, als er eigentlich plante. Kurz vor der Release von 2.6 hat er zum ersten Mal versucht, die Schotten komplett dichtzumachen. Allerdings stieß er auf starken Widerstand, vor allem von den XFS-Entwicklern, die ihre Arbeiten doch noch in 2.4 integrieren durften.

Nun sind ähnliche Hindernisse in Form nötiger Bugfixes und weiterer Probleme aufgetaucht, die Marcelo dazu zwingen, den Deep Freeze auf die Version 2.4.27 zu verschieben. Sein Ziel war ursprünglich 2.4.26. Ein Feature, das mit ziemlicher Sicherheit nicht an der Blockade vorbeikommt, ist die relativ junge Cryptoloop-Funktionalität, die das Mounten von verschlüsselten Dateisystemen über Loopback ermöglicht. Grundsätzlich neue Funktionen sollen - da sind sich alle Entwickler einig - nicht auf alte Kernel rückportiert werden.

Cryptoloop könnte damit eine eher kurze Lebenszeit beschieden sein, da es möglicherweise auch im Kernel 2.6 irgendwann durch das technisch ausgefeiltere System »dm-crypt« abgelöst werden könnte. (Zack Brown/uwo)

Bessere Speicherverwaltung in User Mode Linux

Jeff Dike bemüht sich um eine Methode, den während einer Session von User Mode Linux (UML) belegten Speicher wieder freizugeben. Wenn UML startet, beansprucht es immer mehr Systemspeicher, um den laufenden Bedarf zu decken. Wird dieser RAM nicht mehr benötigt, gibt es zurzeit keine Möglichkeit, dem Hostsystem mitzuteilen, dass der Speicher wieder freigegeben werden kann.

Für UML ist der Speicher zwar nicht belegt, aber das Hostsystem ist nicht in der Lage, zwischen RAM-Bereichen zu unterscheiden, die für UML wichtig oder unwichtig sind. Daher ist der UML-Prozess dafür zuständig. Jeff möchte jetzt eine Methode implementieren, um RAM auch dann freizugeben, wenn er scheinbar noch belegt ist. Sein Vorschlag umfasst ein »/dev/anon«-Device, das sich wie anonymer Speicher verhält, aber in Wirklichkeit überwacht, wie oft jede Seite zugeordnet wird, und solche Seiten freigibt, deren Map-Count auf null zurückfällt.

Es gibt jedoch einigen Widerstand gegen den Gedanken an ein »/dev/anon«. Klar ist aber, dass entweder dieses Device oder ein ähnlicher Mechanismus UML einen großen Schritt nach vorn bringen würde. Es ist also damit zu rechnen, dass ähnliche Vorschläge auftauchen werden, sollten sich die aktuellen Bemühungen für eine Speicherfreigabe nicht durchsetzen können.