„Linux Kernel x32“ architektūra gali būti nutraukta

Linux Kernel 4.19

Įtraukta Pastaruoju metu laiškas buvo išleistas per „Linux“ branduolio adresų sąrašą ir šio el. laiško pagrindinis tikslas pašalinti kodą iš x32 subarchitektūros įgyvendinimo (nereikia painioti su x86 IA-32).

Tai leidžia naudoti 32 bitų atminties adresavimo modelį (hibridinis x86 ir x86_64) x86 64 bitų sistemose.

Kas yra x32 architektūra?

Svarbu paminėti, kad x32 subarchitektūra yra hibridinė x86_64 ABI, kuris leidžia 32 bitų atminties adresavimo modelį naudoti 64 bitų sistemose (procesorius veikia 64 bitų režimu, tačiau naudoja 32 bitų rodykles ir aritmetines operacijas).

„ABI X32“ leidžia programoms visiškai išnaudoti x86_64 architektūros pranašumus, pvz., papildomus registrus ir greitesnes instrukcijas, PIC ABI.

Tuo pačiu metu „ABI X32“ palaiko 32 bitų atminties rodykles, kurios taupo atmintį, prisideda prie efektyvesnio procesoriaus talpyklos užpildymo ir teigiamai veikia bendrą kodo vykdymo greitį.

„ABI X32“ apribojimas yra neįmanoma nukreipti iš programos daugiau nei 4 GB atminties.

„X32“ palaikymas yra „Linux“ branduolio dalis nuo jo 3.4 išleidimo, kuris buvo suformuotas 2012 m. Gegužės mėn.

Kūrėjai diskutuos, ar tęsti šios architektūros priežiūrą, ar ne

Pasak kūrėjo, siūlančio pašalinti x32 technologiją tai nebuvo pateisinama ir nerado praktinio pritaikymo šiuolaikiniame pramoniniame išdėstyme.

Be to, ir„x32“ kode naudojamas gana prieštaringas darbo su sistemos skambučiais metodas, kuris sukuria riziką nutraukti įprastą veikimą apdorojus sistemos skambučių diegimą.

Linusas Torvaldsas sutiko pašalinti x32, jei nebus pateikta jokių argumentų arba jei nepateikiamos sistemos, kuriose pritaikyta x32 subarchitektūra.

Linus taip pat pažymėjo, kad x32 architektūros naudojimas akivaizdžiai apsiribojo ekstremaliais našumo testaiss, nes šios subarchitektūros palaikymas yra susijęs su daugybe komplikacijų palaikant paskirstymus ir kūrimo aplinką.

Paštas:

Sveiki visi.

Aš rimtai svarstau pateikti pataisą, kaip pašalinti „x32“ palaikymą iš „Linux“. Štai keletas su tuo susijusių problemų:

  1. Nėra visiškai aišku, ar ji turi vartotojų. Kiek žinau, tai palaiko „Gentoo“ ir „Debian“
  2. Skambinimo sistemos veikimo būdas yra labai keistas. Dauguma „x32“ sisteminių skambučių įvedami per savo * gimtąją * (t. Y. Ne COMPAT_SYSCALL_DEFINE) su įėjimo tašku, ir tai yra tyčia.

Pvz., „Adjtimex“ () naudoja vietinį įvestį, o ne „kaas“ įvestį, nes „x32 struct timex“ sutampa su „x86_64“ išdėstymu. Tačiau keli sisteminiai skambučiai turi atskirus įėjimo taškus - tai yra tie, kurie prasideda nuo 512.

Jie patenka per COMPAT_SYSCALL_DEFINE įėjimo taškus.

X32 sisteminiai skambučiai, kurie nėra * 512 diapazone, pažeidžia kiekvieną branduolio sisteminio skambučio pavyzdį.

Syscall tvarkytuvuose in_compat_syscall () grąžinama teisinga reikšmė, tačiau COMPAT_SYSCALL_DEFINE įrašas nėra iškviečiamas, tai yra beprotiška ir rizikuojate sugadinti dalykus, kai žmonės pertvarkys savo „syscall“ diegimą.

Ir visų pirma, šių dalykų niekas nebando.

Vieną kartą Testuodamas „x32“, vienas iš „Gentoo“ kūrėjų padarė išvadą, kad našumo pagerėjimas pereinant prie „ABI x32“ nėra toks didelis, kaip rodo sintetiniai testai. Iš „ABI x32“ kūrėjų:

Didelė pažanga pastebima tik lyginant su ankstesne „x86“ architektūra, tačiau, palyginti su dabartine „x86-64“ architektūra, padidėjimas yra nereikšmingas („x32“ kūrėjų SPEC testai parodė, kad pagreitis yra 40%, palyginti su klasikiniu „ABI x86_64“, testai su H.264 kodeku parodė pagreitį 15-20%).


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Už duomenis atsakingas: AB Internet Networks 2008 SL
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.