Apa status saat ini dari implementasi x32 ABI di Ubuntu pada 14,04?

11

The 14,04 catatan rilis berisi kalimat berikut:

Dukungan ABI X32 (mode 64-bit dengan pointer 32-bit) juga diperkenalkan.

Saya pikir ini pantas mendapat sedikit penjelasan. Ketika Anda menggunakan mesin pencari untuk mencari tahu lebih banyak tentang "x32 ABI", Anda mungkin menemukan artikel Wikipedia yang terbaik, tetapi kebanyakan Phoronix dan Slashdot, yang sepertinya tidak terlalu berguna.

Saya ingin melihat beberapa jawaban mendalam tentang:

  • Bagaimana atau bagaimana ABI x32 saat ini diterapkan pada 14.04?
    • Apakah ini diaktifkan secara default di 14,04 64-Bit atau apakah ada langkah tambahan yang diperlukan untuk pengaturan x32 ABI?
    • Komponen apa atau perangkat lunak apa yang dapat menggunakan ABI x32?
  • Apakah ada manfaat sebenarnya pada mesin / instalasi yang menjalankan x32 ABI?
    • Bagaimana konsumsi memori dibandingkan dengan instalasi default 32-Bit dan 64-Bit?

Idealnya, ABI x32 seharusnya menyatukan yang terbaik dari kedua dunia: Sebagian besar peningkatan kecepatan x86-64 dan konsumsi memori yang lebih rendah untuk pengguna pada perangkat keras 64-Bit yang lebih tua yang tidak memiliki banyak RAM .

LiveWireBT
sumber
Saya ingin tahu tentang ini sendiri. Satu hal yang dapat saya ceritakan tentang penggunaan memori x32 adalah ia menggunakan pengalamatan 32-bit (batas 4GB sama dengan x86). Karena prosesor 64-bit menggunakan pengalamatan memori 64-bit, referensi memori perlu disimpan dalam memori 64-bit - dua kali 32-bit yang diperlukan untuk menyimpan referensi memori dalam mode 32-bit. Oleh karena itu, 64-bit secara implisit lebih buruk pada memori dalam beberapa kasus ketika banyak referensi memori (pointer) digunakan.
Chuck R
di sini sebuah studi tentang kinerja dan x32: cds.cern.ch/record/1528222/files/LHCb-TALK-2013-060.pdf
Postadelmaga

Jawaban:

5

Pada instalasi 64bit, Anda akan mengalami perbedaan besar dalam penggunaan memori (terutama untuk aplikasi seperti chrome, firefox, mysql dan aplikasi java).

Ini adalah efek samping yang dikenal dari OS 64bit pula 64bit membawa juga beberapa keuntungan lainnya.

Ini dia x32 ABI: fitur kernel yang dimaksudkan untuk membatasi masalah ini.

Apa itu x32 ABI:
menurut pdf ini memberikan keunggulan memori yang besar dibandingkan dengan OS normal 64bit (bahkan peningkatan 40%).

Sekarang jika saya mengerti x32-ABI membutuhkan :

  • Linux Kernel 3.4 dikompilasi dengan CONFIG_X86_X32 = y
  • Gcc 4.7
  • Binutils 2.22
  • Glibc 2.16
  • Mengkompilasi ulang semua pustaka sistem, yang diperlukan oleh aplikasi, dengan gcc -mx32

Cara Mencoba
Kernel baru memiliki flag yang diperlukan secara default sehingga Anda hanya perlu mengkompilasi paket dengan cara yang benar (di sini Gentoo untuk aturan yang pasti;)
Di Ubuntu saya tidak yakin ada repositori / ppa untuk ini, toh Debian dan Arch punya beberapa solusi:

Debian

Lengkungan

Postadelmaga
sumber
Saya kira itu perlu menambahkan opsi kernel di grub seperti yang diceritakan dalam wiki Debian.
jarno
1
Dari sudut pandang pengguna akhir Ubuntu, menginstal sistem Ubuntu x32-ABI tampaknya terlalu sulit :(
jarno