Jaki jest obecny stan wdrożenia x32 ABI w Ubuntu na dzień 14.04?

11

Informacje o wersji 14.04 zawierają następujące zdanie:

Wprowadzono także obsługę AB32 X32 (tryb 64-bitowy z 32-bitowymi wskaźnikami).

Myślę, że to zasługuje na nieco więcej wyjaśnień. Gdy korzystasz z wyszukiwarki, by dowiedzieć się więcej o „x32 ABI”, możesz znaleźć artykuł w Wikipedii w najlepszym wypadku, ale głównie Phoronix i Slashdot, które nie wydają się zbyt przydatne.

Chciałbym zobaczyć kilka wnikliwych odpowiedzi na:

  • Jak lub co z x32 ABI jest obecnie zaimplementowane w 14.04?
    • Czy jest domyślnie włączony w wersji 14.04 64-bit lub czy są wymagane dodatkowe kroki, aby skonfigurować x32 ABI?
    • Jakie komponenty lub oprogramowanie może używać x32 ABI?
  • Czy istnieją rzeczywiste korzyści z komputera / instalacji z systemem x32 ABI?
    • Jakie jest zużycie pamięci w porównaniu z domyślnymi instalacjami 32-bitowymi i 64-bitowymi?

Idealnie, ABI x32 powinien połączyć to, co najlepsze z obu światów: Większość ulepszeń szybkości x86-64 i niższe zużycie pamięci dla użytkowników na starszych urządzeniach obsługujących 64-bity, które nie miały dużo pamięci RAM .

LiveWireBT
źródło
Jestem tego ciekawy. Jedną z rzeczy, które mogę powiedzieć o zużyciu pamięci x32, jest to, że używa ona adresowania 32-bitowego (taki sam limit 4 GB jak x86). Ponieważ 64-bitowe procesory używają 64-bitowego adresowania pamięci, odwołania do pamięci muszą być przechowywane w 64-bitowych pamięciach - dwa razy więcej niż 32-bitowe potrzebne do przechowywania odniesień do pamięci w trybie 32-bitowym. Dlatego 64-bit jest domyślnie gorszy dla pamięci w niektórych przypadkach, gdy używanych jest wiele odwołań do pamięci (wskaźników).
Chuck R
tutaj studium na temat wydajności i x32: cds.cern.ch/record/1528222/files/LHCb-TALK-2013-060.pdf
Postadelmaga

Odpowiedzi:

5

W przypadku instalacji 64-bitowej występują duże różnice w zużyciu pamięci (szczególnie w aplikacjach takich jak Chrome, Firefox, MySQL i Java).

Jest to dobrze znany efekt uboczny 64-bitowych systemów operacyjnych. W każdym razie 64-bitowy ma również inne zalety.

Oto nadchodzi x32 ABI: funkcja jądra, która ma dokładnie na celu ograniczenie tego problemu.

Co to jest x32 ABI:
zgodnie z tym plikiem pdf zapewnia dużą przewagę pamięci w porównaniu z 64-bitowym normalnym systemem operacyjnym (nawet 40% rozszerzenia).

Teraz, jeśli zrozumiałem x32-ABI wymaga :

  • Jądro Linuksa 3.4 skompilowane z CONFIG_X86_X32 = y
  • Gcc 4.7
  • Binutils 2.22
  • Glibc 2.16
  • Ponowna kompilacja wszystkich bibliotek systemowych wymaganych przez aplikację za pomocą gcc -mx32

Jak wypróbować
Nowe jądro ma domyślnie wymaganą flagę, więc potrzebujesz tylko skompilowanego pakietu we właściwy sposób (tutaj Gentoo dla pewnych reguł;)
W Ubuntu nie jestem pewien, czy jest tam jakieś repozytorium / ppa, w każdym razie Debian i Arch mieć jakieś rozwiązanie:

Debian

Łuk

Postadelmaga
źródło
Podejrzewam, że wymaga dodania opcji jądra w grub, tak jak powiedziano na wiki Debiana.
jarno
1
Z punktu widzenia użytkownika końcowego Ubuntu instalacja systemu Ubuntu x32-ABI wydaje się zbyt trudna :(
jarno