После загрузки Linux освобождает память загрузчика Tianocore.

Я использую Tianocore для загрузки Linux, я понимаю, что Linux может использовать сервисы Tianocore Runtime (перезагрузка, update_capsule и т. д.), это означает, что какая-то часть кода Tianocore остается нетронутой Linux. Linux никогда не коснется этой памяти.

Мой вопрос, это какая-то часть кода Tianocore (связанная со службами времени выполнения) или весь Tianocore остается нетронутым ядром Linux даже после загрузки?

и как ядро ​​​​Linux узнает об областях памяти, содержащих образ Tianocore?


person user28264    schedule 14.10.2015    source источник
comment
Я голосую за то, чтобы закрыть этот вопрос как не по теме, потому что речь идет не о конкретной проблеме программирования, а о деталях реализации Linux.   -  person MSalters    schedule 14.10.2015
comment
Согласен, но если бы его можно было переформулировать, чтобы он соответствовал некоторым весьма полезным ответам.   -  person unixsmurf    schedule 14.10.2015
comment
TeanoCore — пример реализации кода. Это не означает, что прошивка UEFI на вашей платформе реализована именно так. TeanoCore — это просто справочный код для поставщиков и разработчиков UEFI. Да Службы времени выполнения UEFI (как часть встроенного ПО UEFI, загружаемого в DRAM) остаются активными до тех пор, пока платформа не будет включена и не будет доступна для ОС, и не существует стандарта UEFI, в котором указано, где именно находится физический адрес точки доступа к среде выполнения UEFI. services и сколько памяти она занимает.   -  person Alex    schedule 14.10.2015


Ответы (1)


Существует множество типов памяти, которые могут быть выделены реализацией UEFI (используя AllocatePool или AllocatePages). BootServices), и некоторые из них останутся нетронутыми ОС с поддержкой UEFI, другие будут освобождены. Все области памяти, которые не должны быть освобождены, также будут добавлены в карту памяти e820, чтобы предотвратить их повреждение устаревшими ОС.

Обычно после события ExitBS не освобождается только небольшая часть выделенной памяти: код и данные служб времени выполнения, таблицы ACPI и регионы MMIO.

person CodeRush    schedule 16.10.2015