Trạng thái hiện tại của việc triển khai x32 ABI trong Ubuntu kể từ ngày 14.04 là gì?


11

Các 14.04 ghi chú phát hành bao gồm các câu sau:

Hỗ trợ X32 ABI (chế độ 64 bit với con trỏ 32 bit) cũng được giới thiệu.

Tôi nghĩ rằng điều này xứng đáng một chút giải thích. Khi bạn sử dụng công cụ tìm kiếm để tìm hiểu thêm về "x32 ABI", bạn có thể tìm thấy một bài viết Wikipedia tốt nhất, nhưng chủ yếu là Phoronix và Slashdot, dường như không hữu ích lắm.

Tôi muốn xem một số câu trả lời sâu sắc về:

  • Làm thế nào hoặc những gì của x32 ABI hiện đang được thực hiện trong 14.04?
    • Được bật theo mặc định trong 14.04 64-Bit hay có bất kỳ bước bổ sung nào cần thiết để thiết lập x32 ABI không?
    • Thành phần nào hoặc phần mềm nào có thể sử dụng x32 ABI?
  • Có lợi ích thực tế nào trên máy / cài đặt chạy x32 ABI không?
    • Mức tiêu thụ bộ nhớ so với cài đặt 32-bit và 64-bit mặc định như thế nào?

Lý tưởng nhất là x32 ABI đã mang lại sự kết hợp tốt nhất của cả hai thế giới: Hầu hết các cải tiến tốc độ của x86-64 và mức tiêu thụ bộ nhớ thấp hơn cho người dùng trên phần cứng 64 bit cũ hơn không có nhiều RAM .


Tôi tò mò về điều này bản thân mình. Một điều tôi có thể nói với bạn về việc sử dụng bộ nhớ x32 là nó sử dụng địa chỉ 32 bit (cùng giới hạn 4GB như x86). Do bộ xử lý 64 bit sử dụng địa chỉ bộ nhớ 64 bit, nên các tham chiếu bộ nhớ cần được lưu trữ trong 64 bit trong bộ nhớ - gấp đôi 32 bit cần thiết để lưu trữ các tham chiếu bộ nhớ ở chế độ 32 bit. Do đó, 64-bit hoàn toàn kém hơn về bộ nhớ trong một số trường hợp khi nhiều tham chiếu bộ nhớ (con trỏ) được sử dụng.
Chuck R

đây là một nghiên cứu về hiệu suất và x32: cds.cern.ch/record/1528222/files/LHCb-TALK-2013-060.pdf
Postadelmaga 19/03/2015

Câu trả lời:


5

Khi cài đặt 64 bit, bạn sẽ gặp phải sự khác biệt lớn trong việc sử dụng bộ nhớ (đặc biệt đối với các ứng dụng như chrome, firefox, mysql và java).

Đây là một tác dụng phụ nổi tiếng của hệ điều hành 64 bit dù sao 64bit cũng mang lại một số lợi thế khác.

Ở đây có x32 ABI: một tính năng kernel có nghĩa là chính xác để hạn chế vấn đề này.

X32 ABI là gì:
theo pdf này, nó cung cấp lợi thế bộ nhớ lớn so với HĐH bình thường 64 bit (thậm chí tăng cường 40%).

Bây giờ nếu tôi đã hiểu x32-ABI yêu cầu :

  • Hạt nhân Linux được biên dịch với CONFIG_X86_X32 = y
  • Gcc 4.7
  • Binutils 2,22
  • Glibc 2,16
  • Biên dịch lại tất cả các thư viện hệ thống, được yêu cầu bởi một ứng dụng, với gcc -mx32

Cách dùng thử
Hạt nhân mới có cờ yêu cầu theo mặc định, do đó bạn chỉ cần đóng gói được biên dịch theo đúng cách (ở đây Gentoo cho các quy tắc chắc chắn;)
Trên Ubuntu Tôi không chắc có kho lưu trữ / ppa nào cho điều này, dù sao thì Debian và Arch có một số giải pháp:

Debian

Cổng vòm


Tôi cho rằng nó cần thêm các tùy chọn kernel trong grub như được nói trong wiki Debian.
jarno

1
Từ quan điểm của người dùng cuối Ubuntu, việc cài đặt hệ thống Ubuntu x32-ABI dường như quá khó khăn :(
jarno
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.