Architektura Linux Kernel x32 może zostać wycofana

Linux Kernel 4.19

Ostatnio e-mail został wydany poprzez listę mailingową Linux Kernel, a ten e-mail jest głównym celem usunąć kod z implementacji podarchitektury x32 (nie mylić z x86 IA-32).

Co pozwala na użycie 32-bitowego modelu adresowania pamięci (hybryda x86 i x86_64) w 86-bitowych systemach x64.

Jaka jest architektura x32?

Należy wspomnieć, że podarchitektura x32 jest hybrydową architekturą x86_64 ABI, co pozwala na użycie 32-bitowego modelu adresowania pamięci w systemach 64-bitowych (procesor działa w trybie 64-bitowym, ale wykorzystuje 32-bitowe wskaźniki i operacje arytmetyczne).

ABIX32 pozwala aplikacjom w pełni wykorzystać architekturę x86_64, taką jak dodatkowe rejestry i szybsze instrukcje, PIC ABI.

Jednocześnie ABI X32 obsługuje 32-bitowe wskaźniki pamięci, co oszczędza pamięć, przyczynia się do wydajniejszego wypełniania pamięci podręcznej procesora i ma pozytywny wpływ na ogólną szybkość wykonywania kodu.

Ograniczeniem ABI X32 jest brak możliwości kierowania z aplikacji więcej niż 4 GB pamięci.

Obsługa X32 jest częścią jądra Linuksa od wydania 3.4, utworzonego w maju 2012.

Deweloperzy będą debatować, czy kontynuować utrzymanie tej architektury, czy nie

Według dewelopera proponującego usunięcie technologii x32 nie znalazło to uzasadnienia i nie znalazło praktycznego zastosowania w nowoczesnych układach przemysłowych.

Poza tym iKod l x32 wykorzystuje dość kontrowersyjną metodę pracy z wywołaniami systemowymi, co stwarza ryzyko przerwania normalnego działania po przetworzeniu implementacji wywołań systemowych.

Linus Torvalds powiedział, że zgodzi się na usunięcie x32, jeśli nie zostaną przedstawione żadne argumenty lub jeśli systemy, w których zastosowano podarchitekturę x32, nie są prezentowane.

Linus Wskazał również, że użycie architektury x32 było najwyraźniej ograniczone do ekstremalnych testów wydajnościs, ponieważ obsługa tej podarchitektury wiąże się z wieloma komplikacjami związanymi z utrzymaniem dystrybucji i środowiska programistycznego.

Poczta:

Witam wszystkich.

Poważnie rozważam przesłanie poprawki usuwającej obsługę x32 z Linuksa. Oto kilka problemów z tym:

  1. Nie jest do końca jasne, czy ma użytkowników. O ile wiem, jest obsługiwany w Gentoo i Debianie
  2. Sposób działania systemu wywołującego jest bardzo dziwny. Większość wywołań systemowych na x32 wchodzi przez swój * natywny * (tj. Nie COMPAT_SYSCALL_DEFINE) z punktem wejścia i jest to zamierzone.

Na przykład, adjtimex () używa natywnego wejścia, a nie kompatybilnego wejścia, ponieważ x32 struct timex pasuje do układu x86_64. Ale kilka wywołań systemowych ma oddzielne punkty wejścia - są to wywołania systemowe, które zaczynają się od 512.

Te wchodzą przez punkty wejścia COMPAT_SYSCALL_DEFINE.

Wywołania systemowe X32, które * nie * mieszczą się w zakresie 512, naruszają wszelkie pozory konwencji wywołań systemowych jądra.

W programach obsługi wywołań syscall in_compat_syscall () zwraca wartość true, ale wpis COMPAT_SYSCALL_DEFINE nie jest wywoływany, jest to szalone i istnieje ryzyko zepsucia rzeczy, gdy ludzie refaktoryzują swoje implementacje wywołań systemowych.

A przede wszystkim nikt tego nie próbuje.

Pewnego razu Podczas testowania x32, jeden z deweloperów Gentoo doszedł do wniosku, że poprawa wydajności po przejściu na ABI x32 nie jest tak duża, jak pokazują testy syntetyczne Od twórców ABI x32:

Znaczący postęp widać tylko w porównaniu z poprzednią architekturą x86, ale w porównaniu z obecną architekturą x86-64 zysk jest znikomy (testy SPEC twórców x32 wykazały do ​​40% przyspieszenia w porównaniu z klasycznym ABI x86_64, testy z kodekiem H.264 wykazał przyspieszenie 15-20%).


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: AB Internet Networks 2008 SL
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.