Warum meldet das System im UEFI-Modus weniger Speicher als im alten BIOS?

723
janneb

Mir ist aufgefallen, dass auf einem Computer das Betriebssystem etwas weniger Arbeitsspeicher meldet, wenn die Firmware im UEFI-Modus anstelle des Legacy-BIOS konfiguriert ist (dies ist unter Linux, aber das sollte keinen Unterschied machen?). Der Unterschied ist mit 3,5 MB sehr klein, aber ich frage mich, wo diese Erinnerung bleibt.

Ich verstehe, dass der Legacy-BIOS-Kompatibilitätsmodus eigentlich kein "echtes" BIOS ist, sondern eher eine Kompatibilitäts-Shim-Schicht, die von der Firmware geladen wird, um das Betriebssystem so aussehen zu lassen, als würde es ein BIOS verwenden. Der gesamte UEFI-Code ist noch vorhanden. Es sollte also keinen Unterschied geben, oder wenn es einen gibt, sollte der Unterschied umgekehrt sein, da der BIOS-Kompatibilitätscode nur ein kleines bisschen Speicher benötigt.

0
Spekulation: Die UEFI lädt möglicherweise "zusätzliche" Software. Eine Benutzeranwendung oder eine herstellerspezifische Sache. Oder sind es vielleicht nur die grafischen Treiber, um den UEFI-Look auszuführen? Ricardo S. vor 5 Jahren 1
Es könnte sein, dass hier zwei Dinge passieren. Abgesehen davon, dass der BIOS-Shim etwas Speicher beansprucht, könnte es auch einen UEFI-Shim geben, der dem Betriebssystem (ua) sichere Startdienste zur Verfügung stellt, um die vertrauenswürdigen Ausführungsplattformeinrichtungen bereitzustellen. Es kann sein, dass diese Umgebung 4 MB groß ist, die BIOS-Umgebung jedoch nur 512 KB, was den Unterschied ausmachen würde. Nicht sicher, daher nur ein Kommentar ... Mokubai vor 5 Jahren 2

1 Antwort auf die Frage

3
Austin Hemmelgarn

Der große Unterschied besteht letztendlich darin, dass UEFI fast immer mehr reservierten Speicher benötigt, weil:

  • Es hat mehr Schnittstellen als das alte BIOS. Beispiele sind die wesentlich komplexere RTC-Schnittstelle, die EFI-Variablenschnittstelle und die EFI-Kapsellader-Schnittstelle.
  • Es ist normalerweise viel mehr Code als das alte BIOS, hauptsächlich um die zusätzlichen ABIs zu unterstützen.
  • Es läuft im geschützten oder langen Modus (anstelle des Real-Modus wie das alte BIOS), der auf den gesamten Arbeitsspeicher des Systems zugreifen kann, was wiederum die Entwickler in Sachen Speichereffizienz fauler macht.

Die meisten gut geschriebenen CSM-Schnittstellen (die Legacy-BIOS-Funktionalität in den meisten UEFI-Implementierungen) entladen den Großteil oder den gesamten UEFI-Code, der beim Booten im Legacy-Modus nicht erforderlich ist, so dass der zusätzliche reservierte Speicher freigegeben wird.