2

Я читаю книгу (Мастеринг встраиваемого Linux-программирования, 2-е изд). В главе о загрузчиках объясняется процесс загрузки с U-Boot и с прошивкой UEFI.

Похоже, что шаги загрузки точно такие же, за исключением того, что на последнем шаге загружается прошивка U-Boot или UEFI и загружается образ Linux в ОЗУ.

Так в чем же разница? Почему бы выбрать U-Boot вместо UEFI или наоборот?

2 ответа2

3

Самым большим отличием является то, что UEFI по сути является операционной системой, а U-Boot - просто загрузчиком. U-Boot делает только то, что делает систему загрузочной, и предоставляет немного больше, чтобы упростить отладку проблем с загрузкой. UEFI, с другой стороны, предоставляет большой набор API-интерфейсов времени выполнения, которые делают MS-DOS простым по сравнению с ним, и в отличие от U-Boot, который в значительной степени отвлекает вас после передачи выполнения, UEFI остается на месте.

Помимо этого, существуют различия в лицензировании (U-Boot немного более открыт, чем UEFI), различия в форматах файлов (U-Boot использует настраиваемый минималистичный формат файлов изображений, UEFI использует исполняемые файлы PE32+) и различия в фактическом состоянии система при передаче обслуживания и средства конфигурирования (UEFI часто имеет встроенные опции конфигурации прошивки, в то время как U-Boot обычно требует пересоздания прошивки и ее перепрошивки).

3

Спецификация UEFI описывает API, который может предоставлять микропрограмма. Этот API может использоваться приложениями и драйверами, загруженными прошивкой.

Прошивка с открытым исходным кодом Das U-Boot содержит частичную реализацию спецификации UEFI. Полная реализация с открытым исходным кодом предлагается TianoCore EDK II. Такие компании, как Phoenix, предлагают прошивку UEFI с закрытым исходным кодом.

В 64-битной архитектуре ARM дистрибутивы Linux Suse и Fedora используют U-Boot для загрузки GRUB как UEFI-приложения из U-Boot, которое, в свою очередь, загружает и запускает ядро Linux через вызовы API UEFI. Сам Linux имеет заглушку UEFI, поэтому его можно запускать как приложение UEFI.

Спецификация UEFI определяет среду выполнения, которая остается в памяти до перезагрузки системы. Среда выполнения UEFI предлагает такие услуги, как изменение переменных UEFI, загрузка новой прошивки и перезагрузка системы. В соответствии со спецификацией UEFI U-Boot также содержит среду выполнения UEFI. Но на сегодняшний день функциональность ограничена перезагрузкой системы.

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