GNU/Linux >> Belajar Linux >  >> Linux

Apa perbedaan antara PAE 32-bit dan kernel 64-bit?

Kernel melihat memori fisik dan memberikan pandangan ke proses. Jika Anda pernah bertanya-tanya bagaimana suatu proses dapat memiliki ruang memori 4 GB jika seluruh mesin Anda hanya memiliki RAM 512 MB, itulah alasannya. Setiap proses memiliki ruang memori virtualnya sendiri. Alamat di ruang alamat itu dipetakan ke halaman fisik atau ke ruang swap. Jika untuk menukar ruang, mereka harus ditukar kembali ke memori fisik sebelum proses Anda dapat mengakses halaman untuk mengubahnya.

Contoh dari Torvalds dalam jawaban XQYZ (DOS highmem) tidak terlalu dibuat-buat, meskipun saya tidak setuju dengan kesimpulannya bahwa PAE pada umumnya adalah hal yang buruk. Itu memecahkan masalah tertentu dan memiliki kelebihan - tetapi semua itu bersifat argumentatif. Misalnya pelaksana perpustakaan mungkin tidak menganggap implementasinya mudah, sedangkan pengguna perpustakaan itu mungkin menganggap perpustakaan ini sangat berguna dan mudah digunakan. Torvalds adalah pelaksana, jadi dia pasti mengatakan apa yang dikatakan pernyataan itu. Untuk pengguna akhir, ini menyelesaikan masalah dan itulah yang menjadi perhatian pengguna akhir.

Untuk satu PAE membantu memecahkan masalah warisan lainnya pada mesin 32bit. Ini memungkinkan kernel untuk memetakan memori 4 GB penuh dan bekerja di sekitar lubang memori BIOS yang ada di banyak mesin dan menyebabkan kernel 32bit murni tanpa PAE untuk "melihat" hanya memori 3,1 atau 3,2 GB, meskipun fisiknya 4 GB.

Bagaimanapun, untuk kernel 64bit itu adalah hubungan simetris antara halaman fisik dan halaman virtual (mengesampingkan ruang swap dan detail lainnya). Namun, kernel PAE memetakan antara pointer 32bit dalam ruang alamat proses dan alamat 36bit dalam memori fisik. Lebih banyak pembukuan diperlukan di sini. Kata kunci:"Tabel Halaman yang Diperluas". Tapi ini lebih merupakan pertanyaan pemrograman. Inilah perbedaan utamanya. Lebih banyak pembukuan dibandingkan dengan ruang alamat linier penuh. Untuk PAE, potongannya sebesar 4 GB seperti yang Anda sebutkan.

Selain itu keduanya PAE dan 64bit memungkinkan untuk halaman besar (bukan halaman standar 4 KB dalam 32bit).

Bab 3 Volume 1 dari Panduan Prosesor Intel memiliki beberapa ikhtisar dan Bab 3 Volume 3A ("Manajemen Memori Mode Terproteksi") memiliki detail lebih lanjut, jika Anda ingin membacanya.

Bagi saya sepertinya ini adalah perbedaan besar yang tampaknya diabaikan oleh banyak orang.

Kamu benar. Namun, mayoritas orang adalah pengguna, bukan pelaksana . Itu sebabnya mereka tidak akan peduli. Dan selama Anda tidak membutuhkan banyak memori untuk aplikasi Anda, banyak orang tidak peduli (terutama karena ada lapisan kompatibilitas).


Anda mungkin ingin melihat apa yang dikatakan Linus Torwalds tentangnya di sini:

PAE membalikkan fakta yang sangat sederhana itu, dan mengacaukan segalanya secara meriah. Siapa pun yang datang dengan ide itu sama sekali tidak kompeten, dan telah melupakan semua rasa sakit DOS HIGHMEM. Ada alasan yang sangat bagus mengapa kami meninggalkan 286, dan mulai menggunakan 386, alih-alih memasukkan HIGHMEM dengan jendela ke ruang fisik yang lebih besar.

[...]

Jadi ulangi setelah saya:PAE tidak pernah benar-benar memperbaiki apa pun. Itu adalah sebuah kesalahan. Itu hanya kegagalan total, dan hasil dari para insinyur yang tidak memahami perangkat lunak.


Linux
  1. Apa perbedaan antara buffer dan memori cache di Linux?

  2. Apa perbedaan antara menulis ke file dan memori yang dipetakan?

  3. Apa perbedaan antara strtok_r dan strtok_s di C?

  1. Apa perbedaan antara fsck dan e2fsck?

  2. Apa perbedaan antara adduser dan useradd?

  3. Apa perbedaan antara ls dan l?

  1. Apa perbedaan antara `su -` dan` su --login`?

  2. Apa perbedaan antara $(CC) dan $CC?

  3. Apa perbedaan antara rute dan rute ip?