Добрый день. Кто-нибудь знает хорошие книги по EFI разработке? Или имеет в наличии какие либо документы? Подойдёт любая информация, очень хочу попробовать построить достойное приложение с возможностью масштабирования и расширения.
Начать стоит со спецификациий 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)