Senibina Kernel x32 Linux mungkin dihentikan

Linux Kernel 4.19

Baru-baru ini e-mel dikeluarkan melalui senarai mel Linux Kernel dan e-mel ini mempunyai objektif utamanya keluarkan kod dari pelaksanaan subarkibina x32 (tidak boleh dikelirukan dengan x86 IA-32).

Yang membolehkan anda menggunakan model pengalamatan memori 32-bit (hibrid x86 dan x86_64) pada sistem x86 64-bit.

Apakah seni bina x32?

Penting untuk disebutkan bahawa sub-seni bina x32 adalah hibrida x86_64 ABI, yang membolehkan model pengalamatan memori 32-bit digunakan pada sistem 64-bit (pemproses beroperasi dalam mod 64-bit, tetapi menggunakan penunjuk 32-bit dan operasi aritmetik).

ABI X32 membolehkan aplikasi memanfaatkan sepenuhnya seni bina x86_64, seperti daftar tambahan dan arahan yang lebih pantas, PIC ABI.

Pada masa yang sama, ABI X32 menyokong penunjuk memori 32-bit, yang menjimatkan memori, menyumbang kepada pengisian cache pemproses yang lebih cekap, dan memberi kesan positif pada kelajuan keseluruhan pelaksanaan kod.

Batasan ABI X32 adalah mustahil untuk mengarahkan lebih daripada 4 GB memori dari aplikasi.

Sokongan X32 telah menjadi sebahagian daripada Kernel Linux sejak dilancarkan 3.4, dibentuk pada Mei 2012.

Pembangun akan membahaskan sama ada untuk meneruskan penyelenggaraan seni bina ini atau tidak

Menurut pemaju mencadangkan penghapusan teknologi x32 ia tidak dibenarkan dan tidak menemui aplikasi praktikal dalam susun atur perindustrian moden.

Selain itu, danl x32 code menggunakan kaedah yang cukup kontroversial untuk bekerja dengan panggilan sistem, yang menimbulkan risiko mengganggu operasi normal setelah memproses pelaksanaan panggilan sistem.

Linus Torvalds mengatakan bahawa dia akan bersetuju untuk membuang x32 jika tidak ada argumen yang dikemukakan atau jika sistem di mana subarchitecture x32 telah diterapkan tidak ditunjukkan.

Linus Dia juga menyatakan bahawa penggunaan seni bina x32 nampaknya terbatas pada ujian prestasi yang melampaus, kerana sokongan untuk subarchitecture ini dikaitkan dengan banyak komplikasi dalam menjaga pengedaran dan persekitaran pembangunan.

Surat:

Hello semua orang.

Saya dengan serius mempertimbangkan untuk menghantar patch untuk membuang sokongan x32 dari Linux. Berikut adalah beberapa masalah dengan ini:

  1. Tidak sepenuhnya jelas bahawa ia mempunyai pengguna. Setahu saya, ia disokong pada Gentoo dan Debian
  2. Cara sistem panggilan berfungsi sangat pelik. Sebilangan besar sysall pada x32 masuk melalui * asli * mereka (iaitu bukan COMPAT_SYSCALL_DEFINE) dengan titik masuk, dan ini disengajakan.

Sebagai contoh, adjtimex () menggunakan input asli, bukan input yang sesuai, kerana x32 struct timex sepadan dengan susun atur x86_64. Tetapi segelintir syscall mempunyai pintu masuk yang berasingan - ini adalah syscall yang bermula pada 512.

Ini masuk melalui titik masuk COMPAT_SYSCALL_DEFINE.

Sy32 X512 yang * tidak * dalam julat XNUMX melanggar setiap persamaan konvensyen kernel syscall.

Dalam pengendali syscall, in_compat_syscall () kembali benar, tetapi kemasukan COMPAT_SYSCALL_DEFINE tidak dipanggil ini tidak waras dan anda menghadapi risiko memecahkan sesuatu ketika orang-orang mengaktifkan semula pelaksanaan syscall mereka.

Dan yang paling penting, tidak ada yang mencuba perkara ini.

Pada satu kesempatan Semasa menguji x32, salah seorang pembangun Gentoo menyimpulkan bahawa peningkatan prestasi ketika beralih ke ABI x32 tidak sehebat yang ditunjukkan oleh ujian sintetik Dari pembuat ABI x32:

kemajuan yang ketara dilihat hanya jika dibandingkan dengan seni bina x86 sebelumnya, tetapi jika dibandingkan dengan seni bina x86-64 semasa, keuntungannya tidak dapat diabaikan (ujian SPEC oleh pencipta x32 menunjukkan percepatan hingga 40% berbanding dengan ujian ABI x86_64 klasik, dengan codec H.264 menunjukkan pecutan 15-20%).


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab untuk data: AB Internet Networks 2008 SL
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.