Источники информации по EFI разработке на C++/C

Тема в разделе "WASM.BEGINNERS", создана пользователем Kotoxik, 5 янв 2024.

Метки:
  1. Kotoxik

    Kotoxik New Member

    Публикаций:
    0
    Регистрация:
    4 янв 2024
    Сообщения:
    4
    Добрый день. Кто-нибудь знает хорошие книги по EFI разработке? Или имеет в наличии какие либо документы? Подойдёт любая информация, очень хочу попробовать построить достойное приложение с возможностью масштабирования и расширения.
     
  2. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.454
    Адрес:
    Россия, Нижний Новгород
    Начать стоит со спецификациий UEFI: https://uefi.org/specifications
    Их там несколько, тебе нужна "UEFI Specification": там узнаешь про основные термины, про этапы загрузки и про протоколы для Boot- и Runtime-драйверов.
    Boot-драйвер - это который загружается до запуска операционки, делает своё дело и перестаёт существовать после передачи управления загрузчику.
    Runtime-драйвер - это драйвер, который продолжает жить параллельно с операционкой.
    Если нужен драйвер, работающий в System Management Mode, тебе понадобится спецификация "UEFI Platform Initialization" (или PI).

    UEFI-драйвер - это обычный PE-файл с расширением .efi, в который UEFI при запуске передаёт таблицу "сервисов" - функций, которые реализуют спецификацию UEFI.
    Части этой спецификации называются протоколами, которые ты можешь запросить, используя уникальные для каждого протокола GUID'ы.
    Эталонной реализацией UEFI является проект EDKII (он же Tianocore): вендоры почти всегда основывают свои прошивки именно на нём.
    В EDKII каждый протокол лежит в отдельном "пакете" (Pkg), ты можешь добавлять свои собственные протоколы, которые другие модули смогут запросить по твоему GUID'у. В этом UEFI похож на виндовый COM.
    Наличие протоколов в прошивке опционально: для реализации обязателен только пакет Mde (Module Development Environment). Там лежат самые базовые функции - например, аллокаторы.

    Также можешь почитать туториал с хабра: Разработка 64-битного графического UEFI-приложения в Visual Studio / Хабр (habr.com)
     
    Mikl___ нравится это.