Я заметил, что на машине, если встроенное ПО настроено в режиме UEFI вместо Legacy BIOS, операционная система сообщает об уменьшении общего объема памяти (это в Linux, но что не должно иметь значения?). Разница очень маленькая, около 3,5 МБ, но мне интересно, куда уходит эта память?

Насколько я понимаю, режим совместимости с Legacy BIOS на самом деле не "настоящий" BIOS, а скорее слой совместимости, который загружается микропрограммой, чтобы она выглядела как ОС, использующая BIOS. Весь код UEFI все еще там. Таким образом, не должно быть никакой разницы, или, если она есть, разница должна быть другой, так как код совместимости BIOS использует крошечный объем памяти.

1 ответ1

3

В конечном итоге большая разница заключается в том, что UEFI почти всегда требуется больше зарезервированной памяти, потому что:

  • У него больше интерфейсов, чем у устаревшего BIOS. Примеры включают гораздо более сложный интерфейс RTC, интерфейс переменных EFI и интерфейс загрузчика капсул EFI.
  • Обычно это намного больше кода, чем в устаревшем BIOS, в основном для поддержки дополнительных ABI.
  • Он работает в защищенном или длинном режиме (вместо реального режима, такого как устаревший BIOS), который может получить доступ ко всей системной памяти, что, в свою очередь, делает разработчиков намного ленивее об эффективности памяти.

Большинство хорошо написанных интерфейсов CSM (унаследованная функциональность BIOS в большинстве реализаций UEFI) фактически выгружает большую часть или весь код UEFI, который не требуется при загрузке в устаревшем режиме, поэтому вся эта дополнительная зарезервированная память освобождается.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .