Login
Newsletter
Werbung

Mo, 5. September 2011, 14:00

Software::Kernel

Schnelles 32-Bit-ABI für Linux geplant

Eine Gruppe von Entwicklern hat ein neues ABI für Linux konzipiert, das schnellere 32-Bit-Programme ermöglicht. Programme, die für das neue ABI compiliert wurden, können spürbar schneller als in den bisherigen 32- und 64-Bit-Varianten laufen.

Bekanntlich kann ein 64-Bit-Linux auch 32-Bit-Programme ausführen. Speziell auf der x86-Architektur existieren dafür zwei separate Anwendungsschnittstellen (Application Binary Interface, ABI), die jeweils aus Systemaufrufen und anderen Schnittstellen bestehen: i386 und x86_64. 64-Bit-Programme können nicht nur einen größeren Adressraum nutzen, sondern auch auf eine größere Zahl von Registern zugreifen. Durch die größere Registerzahl werden Programme in der Regel schneller; dies wird aber mehr oder weniger wieder zunichte gemacht durch die Tatsache, dass Ganzzahlen und Zeiger 64 Bit lang sind und der Programmcode daher größer wird.

Das x32-ABI will die Kompaktheit von 32-Bit-Code mit dem Zugriff auf die größere Registerzahl von 64-Bit-Prozessoren verbinden. Es besitzt zwar den Nachteil, dass es nicht mit den anderen beiden ABIs kompatibel ist, und kann auch nicht mehr als 4 GB Speicher adressieren, aber für Anwendungen, die die Geschwindigkeit optimieren wollen, wird dies oft ausreichen. Das neue ABI wurde von den Linux-Veteranen H.J. Lu und H. Peter Anvin entwickelt, die beide fast von der ersten Veröffentlichung an zu Linux beigetragen haben.

x32-Anwendungen müssen speziell für dieses ABI compiliert werden, wobei bei portablen Programmen keine Änderungen am Quellcode notwendig sein sollten. Das Projekt x32abi hat die entsprechenden Erweiterungen der gesamten Compilertools bereits entwickelt - GCC, GDB, Binutils und glibc. Gelinkt werden kann momentan nur mit dem GNU-Linker, der neuere Gold ist noch nicht angepasst. Patches, die das neue ABI im Linux-Kernel implementieren, sind ebenfalls vorhanden. Wann die Kernel-Änderungen offiziell werden, ist noch unklar. Derzeit diskutieren die Entwickler noch über Details der Systemaufruf-Implementierung. Generell scheint das neue Format aber beschlossene Sache zu sein.

Die auf der Homepage von x32-ABI veröffentlichten Benchmarks liefern im Moment noch ein zwiespältiges Bild, doch wie das Projekt schreibt, ist der x32-Compiler noch nicht optimiert. Trotzdem laufen manche Programme schon jetzt fast 30% schneller als die 64-Bit-Version und einige Prozent schneller als mit dem alten 32-Bit-ABI, in manchen Fällen aber auch ein Prozent langsamer. Aber sobald die nötigen Optimierungen implementiert sind, könnten sich CPU-hungrige Programme in der Leistung deutlich von den anderen beiden ABIs absetzen.

Wer x32abi selbst testen will, findet auf der Homepage des Projekts eine Anleitung für Fedora.

Werbung
Kommentare (Insgesamt: 33 || Alle anzeigen )
Re[8]: Wozu? (TheEye, So, 18. September 2011)
Re[8]: Wozu? (panzi, Do, 8. September 2011)
Re[7]: Wozu? (Anonymous, Do, 8. September 2011)
Re[6]: Wozu? (panzi, Do, 8. September 2011)
Re[5]: Wozu? (Anonymous, Do, 8. September 2011)
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung