Mengapa sistem melaporkan lebih sedikit memori dalam mode UEFI daripada di BIOS lama?

0

Saya perhatikan bahwa pada mesin, jika firmware dikonfigurasikan dalam mode UEFI dan bukan Legacy BIOS, sistem operasi melaporkan sedikit total memori (ini ada di Linux, tetapi itu tidak membuat perbedaan?). Perbedaannya sangat kecil, sekitar 3,5 MB, tapi saya ingin tahu, kemana memori ini pergi?

Pemahaman saya adalah bahwa mode kompatibilitas BIOS Legacy sebenarnya bukan BIOS "nyata", melainkan lapisan shim kompatibilitas yang dimuat firmware untuk membuatnya terlihat ke OS seperti menggunakan BIOS. Semua kode UEFI masih ada di sana. Jadi seharusnya tidak ada perbedaan, atau jika ada, perbedaannya harus dengan cara lain karena kode kompatibilitas BIOS menggunakan sedikit memori.

janneb
sumber
1
Spekulasi: UEFI mungkin memuat perangkat lunak 'ekstra'. Beberapa aplikasi pengguna atau beberapa hal khusus vendor. Atau mungkin itu hanya driver grafis untuk menjalankan tampilan UEFI?
Ricardo S.
2
Bisa jadi ada dua hal yang terjadi di sini. Selain BIOS shim yang mengambil sebagian memori, mungkin ada UEFI shim yang menawarkan layanan boot aman (antara lain) ke sistem operasi untuk menyediakan fasilitas platform eksekusi tepercaya. Mungkin lingkungan ini 4MB, tetapi lingkungan BIOS hanya 512KB, yang akan menjelaskan perbedaannya. Tidak yakin, karenanya hanya komentar ...
Mokubai

Jawaban:

3

Perbedaan besar pada akhirnya adalah bahwa UEFI hampir selalu membutuhkan lebih banyak memori cadangan, karena:

  • Ini memiliki lebih banyak antarmuka daripada warisan BIOS. Contohnya termasuk antarmuka RTC yang jauh lebih kompleks, antarmuka variabel EFI, dan antarmuka loader kapsul EFI.
  • Biasanya lebih banyak kode daripada BIOS lama, sebagian besar untuk mendukung ABI tambahan.
  • Ini berjalan dalam mode terproteksi atau panjang (alih-alih mode nyata seperti legacy BIOS), yang dapat mengakses semua memori sistem, yang pada gilirannya membuat pengembang lebih malas tentang efisiensi memori.

Sebagian besar antarmuka CSM yang ditulis dengan baik (fungsi BIOS lawas di sebagian besar implementasi UEFI) sebenarnya akan membongkar sebagian besar atau semua kode UEFI yang tidak diperlukan saat Anda boot dalam mode lawas, sehingga semua memori tambahan yang dipesan akan dibebaskan.

Austin Hemmelgarn
sumber