Lehet, hogy a Linux Kernel x32 architektúrája megszűnik

Linux Kernel 4.19

nemrég e-mailt adtak ki a Linux kernel levelezőlistán keresztül, és ennek az e-mailnek a fő célja távolítsa el a kódot az x32 alarchitektúra megvalósításából (nem tévesztendő össze az x86 IA-32-vel).

Ez lehetővé teszi a 32 bites memória címzési modell használatát (hibrid x86 és x86_64) 86 bites x64 rendszereken.

Mi az x32 architektúra?

Fontos megemlíteni, hogy az x32 alarchitektúra egy hibrid x86_64 ABI, amely lehetővé teszi 32 bites memória címzési modell használatát 64 bites rendszerekben (a processzor 64 bites módban működik, de 32 bites mutatókat és számtani műveleteket használ).

ABI X32 lehetővé teszi az alkalmazások számára, hogy teljes mértékben kihasználják az x86_64 architektúra előnyeit, például további regisztereket és gyorsabb utasításokat, a PIC ABI-t.

Ugyanakkor az ABI X32 támogatja a 32 bites memóriamutatókat, amelyek memóriát takarítanak meg, hozzájárulnak a processzor gyorsítótárának hatékonyabb kitöltéséhez, és pozitív hatással vannak a kódfuttatás általános sebességére.

Az ABI X32 korlátozása az, hogy lehetetlen több mint 4 GB memóriát irányítani az alkalmazásból.

Az X32 támogatás a 3.4 májusában megalakult 2012 kiadás óta része a Linux Kernelnek.

A fejlesztők megvitatják, hogy folytatják-e ennek az architektúrának a fenntartását, vagy sem

A fejlesztő szerint az x32 technológia eltávolítását javasolja nem volt indokolt, és nem talált gyakorlati alkalmazást a modern ipari elrendezésekben.

Emellett ésAz x32 kód meglehetősen ellentmondásos módszert alkalmaz a rendszerhívásokkal, ami a normál működés megszakításának kockázatát jelenti a rendszerhívás-implementációk feldolgozása után.

Linus Torvalds szerint beleegyezik az x32 eltávolításába, ha nem terjesztenek elő érveket vagy ha nincsenek bemutatva azok a rendszerek, amelyekben az x32 szubarchitektúrát alkalmazták.

Linus Megjegyezte azt is, hogy az x32 architektúra használata nyilvánvalóan extrém teljesítménytesztekre korlátozódotts, mivel ennek a szubarchitektúrának a támogatása nagyon sok bonyodalommal jár az elosztások és a fejlesztői környezet fenntartásában.

Az üzenet:

Hi all.

Komolyan fontolgatom egy javítás beküldését az x32 támogatás Linux rendszerről történő eltávolításához. Íme néhány probléma ezzel kapcsolatban:

  1. Nem teljesen világos, hogy vannak-e felhasználói. Ha jól tudom, a Gentoo és a Debian támogatja
  2. A hívó rendszer működése nagyon furcsa. Az x32 rendszeren futó legtöbb syscall a * natív * (azaz nem COMPAT_SYSCALL_DEFINE) úton lép be a belépési ponttal, és ez szándékos.

Például az adjtimex () a natív bemenetet használja, nem pedig a compat bemenetet, mert az x32 struct timex megegyezik az x86_64 elrendezéssel. De néhány rendszerhívásnak külön belépési pontja van - ezek azok a hívások, amelyek 512-nél kezdődnek.

Ezek a COMPAT_SYSCALL_DEFINE belépési pontokon keresztül lépnek be.

Az 32 tartományban * nem * lévő X512 rendszerhívások megsértik a kernel syscall konvenciójának minden látszatát.

A syscall-kezelőkben az in_compat_syscall () true értéket ad vissza, de a COMPAT_SYSCALL_DEFINE bejegyzést nem hívják elő, ez őrültség, és fennáll annak a veszélye, hogy megtörik a dolgok, amikor az emberek újrakezdik a syscall-implementációikat.

És mindenekelőtt senki nem próbálja meg ezeket a dolgokat.

Egy alkalommal Az x32 tesztelésekor az egyik Gentoo fejlesztő arra a következtetésre jutott, hogy az ABI x32-re váltáskor a teljesítmény javulása nem olyan nagy, mint a szintetikus tesztek mutatják Az ABI x32 készítőitől:

jelentős előrelépés csak a korábbi x86 architektúrához képest tapasztalható, de a jelenlegi x86-64 architektúrához képest a nyereség elhanyagolható (az x32 készítőinek SPEC tesztjei akár 40% -os gyorsulást mutattak, összehasonlítva a klasszikus ABI x86_64 tesztekkel a H.264 kodekkel 15-20% -os gyorsulást mutatott).


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: AB Internet Networks 2008 SL
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.