X32 ABI

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 25 decembrie 2021; verificările necesită 3 modificări .

x32 ABI  este un proiect de interfață de aplicație binară în curs de dezvoltare pentru Linux , care permite compilarea programelor pentru x32 ABI și rularea în modul x86-64 pe 64 de biți folosind pointeri și câmpuri de date pe 32 de biți [1] [2] [3] . Deși acest lucru limitează spațiul de adrese virtuale al programului la maximum 4 GB, reduce și cantitatea de memorie pe care o ocupă programele și, în unele cazuri, le poate face să ruleze mai rapid [1] [2] [3] . Cele mai bune rezultate în timpul testării au fost obținute în testul 181.mcf SPEC CPU 2000, pentru care rezultatul pentru versiunea x32 a ABI a fost cu 32% mai rapid decât pentru versiunea x86-64 [3] [4] . Cu alte cuvinte, x32 ABI este convenabil pentru programele care nu folosesc mai mult de 4 GB de memorie virtuală.

Istorie

Mai multe persoane au discutat despre beneficiile x86-64 ABI cu pointeri pe 32 de biți de la lansarea lui Athlon 64 în 2003 (în special Donald Knuth în 2008 [5] ). Apoi, au existat puține progrese vizibile public în implementarea unui astfel de mod până în 27 august 2011, când H. Peter Anvin a anunțat pe lista de corespondență a nucleului Linux că el și HJ Lu lucrează la x32-ABI [6] .

În aceeași zi, Linus Torvalds și-a exprimat îngrijorarea că utilizarea unei valori de timp de 32 de biți în x32 ABI ar putea duce la probleme în viitor [7] [8] . Acest lucru se datorează faptului că utilizarea unei valori de timp pe 32 de biți va depăși valoarea timpului în 2038 [7] [8] . Dezvoltatorii x32 ABI plănuiesc să schimbe timpii la 64 de biți [3] [9] .

ABI x32 a fost inclus în versiunea 3.4 a nucleului Linux. [zece]

În decembrie 2018, x32 ABI a fost considerat învechit și se pregătea pentru eliminarea completă a suportului din nucleul Linux. [unsprezece]

Note

  1. 12 Thorsten Leemhuis . Kernel Log: x32 ABI are dezavantaje pe 64 de biți , www.h-online.com (13 septembrie 2011). Arhivat din original pe 28 octombrie 2011. Preluat la 1 noiembrie 2011.
  2. 1 2 x32 - un ABI nativ pe 32 de biți pentru x86-64 , linuxplumbersconf.org. Arhivat din original pe 5 mai 2012. Preluat la 12 iunie 2012.
  3. 1 2 3 4 x32-abi , Site-uri Google. Arhivat din original la 30 octombrie 2011. Preluat la 1 noiembrie 2011.
  4. 181.mcf SPEC CPU2000 Benchmark Description File , Standard Performance Evaluation Corporation (14 octombrie 1999). Arhivat din original pe 8 septembrie 2018. Preluat la 1 noiembrie 2011.
  5. Donald Knuth. Știri recente: A Flame About 64-bit Pointers (februarie 2008). Preluat la 15 mai 2012. Arhivat din original la 26 septembrie 2012.
  6. H. Peter Anvin. RFD: numere de apel de sistem ABI x32 (27 august 2012). Preluat la 15 mai 2012. Arhivat din original la 26 septembrie 2012.
  7. 12 Jonathan Corbet . Apelul de sistem x32 ABI , LWN.net (29 august 2011). Arhivat din original pe 7 mai 2022. Preluat la 1 noiembrie 2011.
  8. 12 Linus Torvalds . Re: RFD: numere de apel de sistem ABI x32 , LWN.net (26 august 2011). Arhivat din original la 1 decembrie 2017. Preluat la 1 noiembrie 2011.
  9. H. Peter Anvin . Re: RFD: numere de apel de sistem ABI x32 , LWN.net (29 august 2011). Arhivat din original pe 16 noiembrie 2011. Preluat la 1 noiembrie 2011.
  10. Linux 3.4 - Linux Kernel Newbies . Preluat la 12 august 2012. Arhivat din original la 15 august 2012.
  11. LKML: Andy Lutomirski: Putem renunța la suportul Linux x32? . Preluat la 12 mai 2020. Arhivat din original la 8 noiembrie 2020.

Link -uri