Arhitektura Linux Kernel x32 može se ukinuti

Linux Kernel 4.19

Nedavno objavljen je e-mail kroz Linux Kernel mailing listu i ovaj e-mail ima za glavni cilj uklonite kôd iz implementacije podarhitekture x32 (ne treba ga zamijeniti s x86 IA-32).

Što vam omogućava upotrebu 32-bitnog modela adresiranja u memoriji (hibridni x86 i x86_64) na x86 64-bitnim sistemima.

Šta je x32 arhitektura?

Važno je napomenuti da je x32 podarhitektura hibridni x86_64 ABI, koji omogućava upotrebu 32-bitnog modela adresiranja memorije na 64-bitnim sistemima (procesor radi u 64-bitnom načinu, ali koristi 32-bitne pokazivače i aritmetičke operacije).

ABI X32 omogućava aplikacijama da u potpunosti iskoriste x86_64 arhitekturu, kao što su dodatni registri i brže upute, PIC ABI.

U isto vrijeme, ABI X32 podržava 32-bitne memorijske pokazivače, što štedi memoriju, doprinosi efikasnijem punjenju predmemorije procesora i pozitivno utječe na ukupnu brzinu izvršavanja koda.

Ograničenje ABI X32 je nemogućnost usmjeravanja više od 4 GB memorije iz aplikacije.

Podrška za X32 dio je Linux kernela od njegovog izdanja 3.4, formiranog u maju 2012.

Programeri će raspravljati hoće li nastaviti s održavanjem ove arhitekture ili ne

Prema programeru koji predlaže uklanjanje x32 tehnologije nije opravdano i nije pronašlo praktičnu primjenu u modernim industrijskim rasporedima.

Osim toga, il x32 kôd koristi prilično kontroverznu metodu rada sa sistemskim pozivima, što stvara rizik od prekida normalnog rada nakon obrade implementacija sistemskog poziva.

Linus Torvalds rekao je da bi pristao na uklanjanje x32 ako se ne dostave argumenti ili ako nisu predstavljeni sistemi u kojima je primijenjena podarhitektura x32.

Linus takođe je primetio da je upotreba x32 arhitekture očigledno bila ograničena na testiranje ekstremnih performansis, budući da je podrška ovoj podarhitekturi povezana sa velikom količinom komplikacija u održavanju distribucija i razvojnog okruženja.

Mail:

Zdravo svima.

Ozbiljno razmišljam da pošaljem zakrpu za uklanjanje x32 podrške sa Linuxa. Evo nekoliko problema s tim:

  1. Nije potpuno jasno da ima korisnike. Koliko znam, podržan je na Gentoou i Debianu
  2. Način rada sistema za pozivanje je vrlo čudan. Većina syscalls-a na x32 ulazi putem svog * izvornog * (tj. Ne COMPAT_SYSCALL_DEFINE) s ulaznom točkom, i to je namjerno.

Na primjer, adjtimex () koristi izvorni ulaz, a ne compat ulaz, jer se x32 struct timex podudara s izgledom x86_64. Ali nekolicina syscalls-a ima zasebne ulazne točke - to su syscalls-ovi koji počinju na 512.

Oni ulaze kroz ulazne točke COMPAT_SYSCALL_DEFINE.

X32 syscalls koji nisu * u * opsegu 512 krše svaki privid konvencije syscall kernela.

U rukovateljima syscall-om in_compat_syscall () vraća true, ali unos COMPAT_SYSCALL_DEFINE nije pozvan, ovo je suludo i riskirate da slomite stvari kad ljudi refaktoriraju svoje implementacije syscall-a.

I iznad svega, niko ne pokušava ove stvari.

Jednom prilikom Prilikom testiranja x32, jedan od Gentoo programera zaključio je da poboljšanje performansi pri prelasku na ABI x32 nije tako veliko kao što pokazuju sintetički testovi Od proizvođača ABI x32:

Značajan napredak se vidi samo u odnosu na prethodnu x86 arhitekturu, ali u usporedbi sa trenutnom x86-64 arhitekturom, dobitak je zanemariv (SPEC testovi kreatora x32 pokazali su do 40% ubrzanja u odnosu na klasične ABI x86_64, testovi sa H.264 kodekom pokazao je ubrzanje od 15-20%).


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Odgovoran za podatke: AB Internet Networks 2008 SL
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.