Die Linux Kernel x32-Architektur wird möglicherweise eingestellt

Linux Kernel 4.19

Recientemente Eine E-Mail wurde veröffentlicht über die Linux-Kernel-Mailingliste und diese E-Mail hat als Hauptziel Entfernen Sie Code aus der Implementierung der x32-Unterarchitektur (Nicht zu verwechseln mit x86 IA-32).

Damit können Sie das 32-Bit-Speicheradressierungsmodell verwenden (Hybrid x86 und x86_64) auf x86 64-Bit-Systemen.

Was ist die x32-Architektur?

Es ist wichtig zu erwähnen, dass die x32-Subarchitektur ein hybrider x86_64-ABI istDies ermöglicht die Verwendung eines 32-Bit-Speicheradressierungsmodells auf 64-Bit-Systemen (der Prozessor arbeitet im 64-Bit-Modus, verwendet jedoch 32-Bit-Zeiger und arithmetische Operationen).

ABI X32 ermöglicht es Anwendungen, die x86_64-Architektur voll auszunutzen, z. B. zusätzliche Register und schnellere Anweisungen, PIC ABI.

Gleichzeitig unterstützt ABI X32 32-Bit-Speicherzeiger, was Speicher spart, zu einer effizienteren Füllung des Prozessor-Cache beiträgt und sich positiv auf die Gesamtgeschwindigkeit der Codeausführung auswirkt.

Die Einschränkung von ABI X32 besteht darin, dass nicht mehr als 4 GB Speicher aus der Anwendung geleitet werden können.

Die X32-Unterstützung ist seit der Veröffentlichung von 3.4 im Mai 2012 Teil des Linux-Kernels.

Entwickler werden darüber diskutieren, ob die Wartung dieser Architektur fortgesetzt werden soll oder nicht

Laut Entwickler, der die Entfernung der x32-Technologie vorschlägt es ist nicht gerechtfertigt und hat in modernen Industrielayouts keine praktische Anwendung gefunden.

Außerdem undl x32-Code verwendet eine ziemlich kontroverse Methode zum Arbeiten mit SystemaufrufenDies birgt das Risiko, den normalen Betrieb nach der Verarbeitung der Systemaufrufimplementierungen zu unterbrechen.

Linus Torvalds sagte, er würde zustimmen, x32 zu entfernen, wenn keine Argumente eingereicht werden oder wenn die Systeme, in denen die x32-Unterarchitektur angewendet wurde, nicht dargestellt werden.

Linus Außerdem wurde festgestellt, dass die Verwendung der x32-Architektur anscheinend auf extreme Leistungstests beschränkt wars, da die Unterstützung dieser Unterarchitektur mit zahlreichen Komplikationen bei der Pflege von Distributionen und der Entwicklungsumgebung verbunden ist.

Die Post:

Hallo an alle.

Ich denke ernsthaft darüber nach, einen Patch einzureichen, um die x32-Unterstützung von Linux zu entfernen. Hier sind einige Probleme damit:

  1. Es ist nicht ganz klar, dass es Benutzer hat. Soweit ich weiß, wird es auf Gentoo und Debian unterstützt
  2. Die Funktionsweise des aufrufenden Systems ist sehr seltsam. Die meisten Systemaufrufe auf x32 werden über ihre * native * (d. H. Nicht COMPAT_SYSCALL_DEFINE) mit dem Einstiegspunkt eingegeben, und dies ist beabsichtigt.

Beispielsweise verwendet adjtimex () die native Eingabe und nicht die kompatible Eingabe, da die x32-Struktur timex mit dem x86_64-Layout übereinstimmt. Eine Handvoll Systemaufrufe haben jedoch separate Einstiegspunkte - dies sind die Systemaufrufe, die bei 512 beginnen.

Diese werden über die Einstiegspunkte COMPAT_SYSCALL_DEFINE eingegeben.

X32-Systemaufrufe, die * nicht * im Bereich 512 liegen, verletzen jeden Anschein der Kernel-Systemaufrufkonvention.

In Syscall-Handlern gibt in_compat_syscall () true zurück, aber der Eintrag COMPAT_SYSCALL_DEFINE wird nicht aufgerufen. Dies ist verrückt und Sie laufen Gefahr, Dinge zu beschädigen, wenn Benutzer ihre Syscall-Implementierungen umgestalten.

Und vor allem versucht niemand diese Dinge.

Bei einer Gelegenheit Beim Testen von x32 kam einer der Gentoo-Entwickler zu dem Schluss, dass die Leistungsverbesserung beim Wechsel zu ABI x32 nicht so groß ist, wie die synthetischen Tests zeigen Von den Herstellern von ABI x32:

Ein signifikanter Fortschritt ist nur im Vergleich zur vorherigen x86-Architektur zu sehen, aber im Vergleich zur aktuellen x86-64-Architektur ist der Gewinn vernachlässigbar (SPEC-Tests der Entwickler von x32 zeigten eine Beschleunigung von bis zu 40% im Vergleich zu den klassischen ABI x86_64-Tests mit dem H.264-Codec zeigte sich eine Beschleunigung von 15-20%).


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: AB Internet Networks 2008 SL
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.