De Linux Kernel x32-architectuur kan worden stopgezet

Linux Kernel 4.19

Onlangs een e-mail is vrijgegeven via de Linux Kernel mailinglijst en deze e-mail heeft als hoofddoel verwijder code uit de x32-subarchitectuurimplementatie (niet te verwarren met x86 IA-32).

Hiermee kunt u het 32-bits geheugenadresseringsmodel gebruiken (hybride x86 en x86_64) op x86 64-bits systemen.

Wat is de x32-architectuur?

Het is belangrijk om te vermelden dat de x32-subarchitectuur een hybride x86_64 ABI is, waarmee een 32-bits geheugenadresseringsmodel kan worden gebruikt op 64-bits systemen (de processor werkt in 64-bits modus, maar gebruikt 32-bits aanwijzers en rekenkundige bewerkingen).

ABI X32 stelt applicaties in staat volledig te profiteren van de x86_64-architectuur, zoals extra registers en snellere instructies, PIC ABI.

Tegelijkertijd ondersteunt ABI X32 32-bits geheugenaanwijzers, wat geheugen bespaart, bijdraagt ​​aan een efficiëntere vulling van de processorcache en een positief effect heeft op de algehele snelheid van code-uitvoering.

De beperking van ABI X32 is de onmogelijkheid om meer dan 4 GB geheugen uit de applicatie te halen.

X32-ondersteuning maakt deel uit van de Linux Kernel sinds de 3.4-release, gevormd in mei 2012.

Ontwikkelaars zullen discussiëren over het al dan niet voortzetten van het onderhoud van deze architectuur

Volgens de ontwikkelaar die de verwijdering van x32-technologie voorstelt het is niet gerechtvaardigd en heeft geen praktische toepassing gevonden in moderne industriële lay-outs.

Trouwens, enl x32-code gebruikt een nogal controversiële methode om met systeemoproepen te werken, waardoor het risico ontstaat dat de normale werking wordt onderbroken na het verwerken van de implementaties van systeemoproepen.

Linus Torvalds zei dat hij zou instemmen met het verwijderen van x32 als er geen argumenten worden ingediend of als de systemen waarin de x32-subarchitectuur is toegepast, niet worden weergegeven.

Linus merkte ook op dat het gebruik van de x32-architectuur blijkbaar beperkt was tot extreme prestatietestss, aangezien ondersteuning voor deze subarchitectuur gepaard gaat met een groot aantal complicaties bij het onderhouden van distributies en de ontwikkelomgeving.

De post:

Hallo iedereen.

Ik overweeg serieus om een ​​patch in te dienen om x32-ondersteuning van Linux te verwijderen​ Hier zijn enkele problemen hiermee:

  1. Het is niet helemaal duidelijk dat het gebruikers heeft. Voor zover ik weet, wordt het ondersteund op Gentoo en Debian
  2. De manier waarop het oproepsysteem werkt, is heel vreemd. De meeste syscalls op x32 komen binnen via hun * native * (d.w.z. niet COMPAT_SYSCALL_DEFINE) met het toegangspunt, en dit is opzettelijk.

Adjtimex () gebruikt bijvoorbeeld de native invoer, niet de compat-invoer, omdat de x32 struct timex overeenkomt met de x86_64-indeling. Maar een handvol syscalls hebben aparte toegangspunten - dit zijn de syscalls die beginnen bij 512.

Deze komen binnen via de COMPAT_SYSCALL_DEFINE ingangspunten.

X32-syscalls die * niet * in het 512-bereik zijn, schenden elke schijn van de kernel-syscall-conventie.

In syscall-handlers geeft in_compat_syscall () true terug, maar het COMPAT_SYSCALL_DEFINE-item wordt niet aangeroepen, dit is krankzinnig en je loopt het risico dingen kapot te maken als mensen hun syscall-implementaties refactoren.

En bovenal probeert niemand deze dingen.

Op een gelegenheid Bij het testen van x32 concludeerde een van de Gentoo-ontwikkelaars dat de prestatieverbetering bij het overschakelen naar ABI x32 niet zo groot is als de synthetische tests laten zien Van de makers van ABI x32:

significante vooruitgang wordt alleen gezien in vergelijking met de vorige x86-architectuur, maar in vergelijking met de huidige x86-64-architectuur is de winst verwaarloosbaar (SPEC-tests door de makers van x32 vertoonden tot 40% versnelling in vergelijking met de klassieke ABI x86_64, tests met de H.264-codec vertoonde een versnelling van 15-20%).


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: AB Internet Networks 2008 SL
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.