Arhitectura Linux Kernel x32 poate fi întreruptă

Linux Kernel 4.19

recent a fost lansat un e-mail prin intermediul listei de mail Linux Kernel și acest e-mail are ca obiectiv principal eliminați codul din implementarea subarhitecturii x32 (nu trebuie confundat cu x86 IA-32).

Ceea ce vă permite să utilizați modelul de adresare a memoriei pe 32 de biți (hibrid x86 și x86_64) pe sistemele x86 pe 64 de biți.

Ce este arhitectura x32?

Este important de menționat că subarhitectura x32 este un hibrid x86_64 ABI, care permite utilizarea unui model de adresare a memoriei pe 32 de biți pe sistemele pe 64 de biți (procesorul funcționează în modul pe 64 de biți, dar folosește pointeri pe 32 de biți și operații aritmetice).

ABI X32 permite aplicațiilor să profite din plin de arhitectura x86_64, cum ar fi registre suplimentare și instrucțiuni mai rapide, PIC ABI.

În același timp, ABI X32 acceptă indicatori de memorie pe 32 de biți, care economisește memorie, contribuie la umplerea mai eficientă a cache-ului procesorului și are un efect pozitiv asupra vitezei generale de execuție a codului.

Limita ABI X32 este imposibilitatea de a direcționa mai mult de 4 GB de memorie de la aplicație.

Suportul X32 face parte din Linux Kernel de la lansarea sa 3.4, format în mai 2012.

Dezvoltatorii vor dezbate dacă vor continua sau nu cu întreținerea acestei arhitecturi

Potrivit dezvoltatorului, propune eliminarea tehnologiei x32 nu a fost justificată și nu a găsit o aplicație practică în aspectele industriale moderne.

În plus, șiCodul x32 folosește o metodă destul de controversată de a lucra cu apelurile de sistem, ceea ce creează riscul întreruperii funcționării normale după procesarea implementărilor apelului de sistem.

Linus Torvalds a spus că va fi de acord să elimine x32 dacă nu sunt prezentate argumente sau dacă nu sunt prezentate sistemele în care a fost aplicată subarhitectura x32.

Linus a remarcat, de asemenea, că utilizarea arhitecturii x32 a fost aparent limitată la testarea performanțelor extremes, deoarece suportul acestei subarhitecturi este asociat cu o mulțime de complicații pentru menținerea distribuțiilor și a mediului de dezvoltare.

Posta:

Bună tuturor.

Mă gândesc serios să trimit un patch pentru a elimina suportul x32 de pe Linux. Iată câteva probleme cu acest lucru:

  1. Nu este pe deplin clar că are utilizatori. Din câte știu, este acceptat pe Gentoo și Debian
  2. Modul în care funcționează sistemul de apelare este foarte ciudat. Cele mai multe accesări de pe x32 intră prin * nativ * (adică nu COMPAT_SYSCALL_DEFINE) cu punctul de intrare, iar acest lucru este intenționat.

De exemplu, adjtimex () folosește intrarea nativă, nu intrarea compat, deoarece structura x32 timex se potrivește cu aspectul x86_64. Dar o mână de accesări au puncte de intrare separate - acestea sunt accesările care încep de la 512.

Acestea intră prin punctele de intrare COMPAT_SYSCALL_DEFINE.

X32 syscalls care nu sunt * în intervalul 512 încalcă orice aparență a convenției kernel syscall.

În handlerele syscall, in_compat_syscall () returnează true, dar intrarea COMPAT_SYSCALL_DEFINE nu este invocată, aceasta este o nebunie și riscați să spargeți lucrurile atunci când oamenii își refactorizează implementările syscall.

Și mai presus de toate, nimeni nu încearcă aceste lucruri.

Cu o ocazie Când a testat x32, unul dintre dezvoltatorii Gentoo a ajuns la concluzia că îmbunătățirea performanței la trecerea la ABI x32 nu este la fel de mare precum arată testele sintetice De la producătorii ABI x32:

Progres semnificativ se observă numai în comparație cu arhitectura x86 anterioară, dar în comparație cu arhitectura actuală x86-64, câștigul este neglijabil (testele SPEC ale creatorilor de x32 au prezentat o accelerație de până la 40% în comparație cu clasicul ABI x86_64, testele cu codecul H.264 a arătat o accelerație de 15-20%).


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: AB Internet Networks 2008 SL
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.