Linux kodola x32 arhitektūra var tikt pārtraukta

Linux Kernel 4.19

Nesen tika izlaists e-pasts izmantojot Linux kodola adresātu sarakstu, un šī e-pasta ziņojuma galvenais mērķis ir noņemt kodu no x32 apakšarhitektūras ieviešanas (nejaukt ar x86 IA-32).

Kas ļauj izmantot 32 bitu atmiņas adresēšanas modeli (hibrīds x86 un x86_64) x86 64 bitu sistēmās.

Kas ir x32 arhitektūra?

Ir svarīgi pieminēt, ka x32 apakšarhitektūra ir hibrīds x86_64 ABI, kas ļauj 32 bitu atmiņas adresēšanas modeli izmantot 64 bitu sistēmās (procesors darbojas 64 bitu režīmā, bet izmanto 32 bitu rādītājus un aritmētiskās darbības).

ABI X32 ļauj lietojumprogrammām pilnībā izmantot x86_64 arhitektūras priekšrocības, piemēram, papildu reģistrus un ātrākas instrukcijas, PIC ABI.

Tajā pašā laikā ABI X32 atbalsta 32 bitu atmiņas rādītājus, kas ietaupa atmiņu, veicina efektīvāku procesora kešatmiņas aizpildīšanu un pozitīvi ietekmē kopējo koda izpildes ātrumu.

ABI X32 ierobežojums ir tas, ka nav iespējams no lietojumprogrammas novirzīt vairāk nekā 4 GB atmiņas.

X32 atbalsts ir daļa no Linux kodola kopš tā 3.4 izlaišanas, kas izveidots 2012. gada maijā.

Izstrādātāji debatēs par to, vai turpināt šīs arhitektūras uzturēšanu vai nē

Saskaņā ar izstrādātāja ierosinājumu noņemt x32 tehnoloģiju tas nav attaisnojies un nav atradis praktisku pielietojumu mūsdienu rūpniecības izkārtojumos.

Bez tam, unl x32 kods izmanto diezgan pretrunīgu metodi, kā strādāt ar sistēmas zvaniem, kas rada risku pārtraukt normālu darbību pēc sistēmas zvana ieviešanas apstrādes.

Linuss Torvalds sacīja, ka viņš piekristu x32 noņemšanai, ja netiks iesniegti argumenti vai ja netiek uzrādītas sistēmas, kurās ir izmantota x32 subarhitektūra.

Linuss Viņš arī norādīja, ka x32 arhitektūras izmantošana acīmredzami aprobežojās ar ekstremālu veiktspējas testēšanus, jo šīs subarhitektūras atbalsts ir saistīts ar daudzām sarežģījumiem izplatījumu un attīstības vides uzturēšanā.

Pasts:

Sveiki visiem.

Es nopietni apsveru plākstera iesniegšanu, lai noņemtu x32 atbalstu no Linux. Šeit ir daži ar to saistītie jautājumi:

  1. Nav pilnīgi skaidrs, ka tam ir lietotāji. Cik es zinu, tas tiek atbalstīts Gentoo un Debian
  2. Zvanīšanas sistēmas darbība ir ļoti dīvaina. Lielākā daļa sistēmas zvanu uz x32 tiek ievadīti caur savu * vietējo * (t.i., nevis COMPAT_SYSCALL_DEFINE) ar ieejas punktu, un tas ir tīši.

Piemēram, adjtimex () izmanto vietējo ievadi, nevis atbilstošo ievadi, jo x32 struct timex sakrīt ar izkārtojumu x86_64. Bet nedaudzām syscalls ir atsevišķi ieejas punkti - tie ir syscalls, kas sākas ar 512.

Tie iekļūst caur COMPAT_SYSCALL_DEFINE ieejas punktiem.

X32 sistēmas izsaukumi, kas * nav * 512 diapazonā, pārkāpj katru kodola syscall konvencijas izskatu.

Syscall apstrādātājos in_compat_syscall () atgriež vērtību true, bet ieraksts COMPAT_SYSCALL_DEFINE netiek izsaukts, tas ir nenormāli, un jūs riskējat sabojāt lietas, kad cilvēki pārstrādā savu syscall ieviešanu.

Un galvenokārt šīs lietas neviens nemēģina.

Vienā reizē Pārbaudot x32, viens no Gentoo izstrādātājiem secināja, ka veiktspējas uzlabojumi, pārejot uz ABI x32, nav tik lieliski, kā liecina sintētiskie testi No ABI x32 veidotājiem:

būtisks progress ir redzams tikai salīdzinājumā ar iepriekšējo x86 arhitektūru, taču, salīdzinot ar pašreizējo x86-64 arhitektūru, ieguvums ir nenozīmīgs (x32 veidotāju SPEC testi parādīja līdz pat 40% paātrinājumu, salīdzinot ar klasisko ABI x86_64, testi ar H.264 kodeku parādīja paātrinājumu 15-20%).


Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: AB Internet Networks 2008 SL
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.