Linux: Kernel-Hacker müssen zu komplexen Code austauschen
Teile des x86-Assembler-Codes im Linux-Kernel sind so komplex und unverständlich, dass diese nun einfach durch neuen C-Code ersetzt werden müssen. Bereits für Linux 4.1 haben die Hacker große Umbauarbeiten daran vorgenommen.
Er habe versucht, den betroffenen Code schrittweise aufzuräumen, schreibt der Linux-Entwickler Andy Lutomirski, "aber ich habe entschieden, dass das einfach zu schwierig ist". Die durch ihn vorgestellten Patches ersetzen einige Teile des x86-Assembler-Codes im Kernel einfach komplett. "Das scheint zu funktionieren".
Diese Herangehensweise ist für die Linux-Community eher ungewöhnlich, doch Lutomirski hat gute Gründe für dieses Vorgehen. Denn der betroffene Code regelt den Übergang vom Kernel-Mode zurück in den User-Mode - eine der sehr grundlegenden Funktionen also. Doch bisher sei der Code einfach in sehr vielen Stellen kopiert worden und zudem in einer "fiesen Kombination von Assembler und C geschrieben".
Code ist kaum zu verstehen
Weiter heißt es, dass es teilweise nicht klar sei, wofür der Code eigentlich genau gedacht sei. Die derzeitige Struktur erschwere zudem die Arbeit damit deutlich. Zu einigen Abläufen scheint Lutomirski zwar konkrete Vermutungen zu haben, es sei aber dennoch "sinnlos kompliziert". Letztlich sei der Code so schwer zu verändern, weil er so anfällig sei, dass aus Sicht des Entwicklers das Neuschreiben die wohl beste Möglichkeit ist. Dafür nutzt er C-Code statt Assembler.
Noch fehlen wohl einige weitere Teile, die künftig ebenfalls neu geschrieben werden sollen. Die Bemühungen seien Bestandteil eines größeren Plans, der sämtlichen x86-Assembler-Code betrifft. Denn bereits für Linux 4.1, der wohl am kommenden Montag final erscheinen wird, haben Lutomirski und weitere Beteiligte verhältnismäßig viele Änderungen vorgenommen, um den alten Code zu verbessern.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed









naja man kann aber seine ansprueche stueck fuer stueck erhoehen und nicht umgekehrt...
Ok, her mit dem Beweis, dass C++ mit Templates, Inlining etc. langsamer ist als C mit...
Sehe ich auch so. Genau. Es ist aber immer noch möglich die Speicherverwaltung zu Fuß zu...
Glaub mir eines: wird es nicht. Es gibt immer verschiedene Software. Aber mehr als genug...