GNU/Linux >> Belajar Linux >  >> Linux

Linux – Apa Memori Tinggi dan Memori Rendah Di Linux?

Saya tertarik dengan perbedaan antara Highmem dan Lowmem:

  1. Mengapa ada perbedaan seperti itu?
  2. Apa yang kita peroleh dengan melakukannya?
  3. Fitur apa yang dimiliki masing-masing?

Jawaban yang Diterima:

Pada arsitektur 32-bit, rentang ruang alamat untuk menangani RAM adalah:

0x00000000 - 0xffffffff

atau 4'294'967'295 (4 GB).

Kernel linux membaginya menjadi 3/1 (bisa juga 2/2, atau 1/3 ) masing-masing menjadi ruang pengguna (memori tinggi) dan ruang kernel (memori rendah).

Rentang ruang pengguna:

0x00000000 - 0xbfffffff

Setiap proses pengguna yang baru melahirkan mendapatkan alamat (rentang) di dalam area ini. Proses pengguna umumnya tidak dipercaya dan oleh karena itu dilarang untuk mengakses ruang kernel. Selanjutnya, mereka dianggap tidak mendesak, sebagai aturan umum, kernel mencoba untuk menunda alokasi memori untuk proses tersebut.

Rentang ruang kernel:

0xc0000000 - 0xffffffff

Proses kernel mendapatkan alamatnya (rentang) di sini. Kernel dapat langsung mengakses alamat 1 GB ini (well, bukan 1 GB penuh, ada 128 MB yang dicadangkan untuk akses memori tinggi).

Proses yang muncul di ruang kernel tepercaya, mendesak, dan dianggap bebas kesalahan, permintaan memori diproses secara instan.

Setiap proses kernel juga dapat mengakses rentang ruang pengguna jika diinginkan. Dan untuk mencapai ini, kernel memetakan alamat dari ruang pengguna (memori tinggi) ke ruang kernelnya (memori rendah), 128 MB yang disebutkan di atas secara khusus disediakan untuk ini.

Apakah pembagiannya 3/1, 2/2, atau 1/3 dikendalikan oleh CONFIG_VMSPLIT_... pilihan; Anda mungkin dapat memeriksa di bawah /boot/config* untuk melihat opsi mana yang dipilih untuk kernel Anda.


Linux
  1. Linux – Perbedaan Antara Ruang Pengguna dan Ruang Kernel?

  2. Linux – Sumber Entropi Apa yang Digunakan oleh Kernel Linux?

  3. tumpukan kernel dan tumpukan ruang pengguna

  1. Apa itu halaman yang dipetakan memori dan halaman anonim?

  2. Apa itu memori tinggi dan memori rendah di Linux?

  3. Apa sebenarnya header kernel Linux itu?

  1. Linux – Apakah Kernel Linux/unix yang Berbeda Dapat Dipertukarkan?

  2. Apa yang dilakukan parameter kernel acpi_osi=linux dan acpi_backlight=vendor?

  3. Apa gunanya memiliki bagian kernel di ruang memori virtual proses Linux?