Компания Microsoft разработала открытую универсальную платформу для разработки UEFI-прошивок в рамках инициативы Project Mu. Это позволит стандартизировать прошивки и расширить их функциональные возможности.
UEFI (Unified Extensible Firmware Interface, унифицированный интерфейс расширяемой прошивки) – интерфейс, который обеспечивает обмен данными между операционной системой и микропрограммами, управляющими низкоуровневыми функциями. Говоря проще, UEFI – это современный аналог BIOS, но с куда более широким набором инструментов.
Проверен на практике
Microsoft уже сама неоднократно опробовала свою модульную систему. Специалисты компании создали в Project Mu прошивки UEFI для устройств серий Hyper-V и Surface. Это топовые планшеты, ноутбуки и настольные моноблоки, которые покупают в основном корпоративные клиенты.
Фактически Project Mu реализует концепцию FaaS (Firmware as a Service). Название выбрано по аналогии с WaaS (Windows as a Service) – в таком формате разработчик сейчас продвигает Windows 10. Существуют и другие aaS-продукты вроде «блокчейн как сервис» и т. д.
Ускорение разработки
Project Mu – это полноценная среда разработки UEFI для компьютеров, которая имеет простой графический интерфейс и экранную клавиатуру на случай, если недоступна физическая. Project Mu обеспечивает создание новых прошивок и поддержку существующих решений в актуальном состоянии.
Project Mu также предоставляет высокопроизводительный загрузчик, инструменты для безопасного управления настройками прошивки, среду тестирования и анализа прошивок и подборку уже готовых примеров меню UEFI и BIOS. Безопасность обеспечивает TianoCore.
В редакторе Project Mu можно создавать обновления и выпускать патчи, чтобы оперативно реагировать на требования рынка и отзывы пользователей. А так как это ПО с открытым исходным кодом, разработчикам не нужно заключать договора и покупать лицензии на используемые в их прошивках разработки сторонних компаний – это также ускорит процесс.
Как это работает
Project Mu включает масштабируемую систему сборки, написанную на Python. Кроме того, в наборе есть система управления бинарными пакетами на базе менеджера NuGet, инструментарий для аудита, проверки функциональности и оценки производительности прошивки. Отдельно отметим фреймворк Microsoft для проведения unit-тестов.
Собрать готовую прошивку можно будет с помощью компилятора Visual Studio. Решение поддерживает кодирование бинарных объектов методом Base64 и функции верификации компонентов по цифровым подписям на базе расширения.
В дальнейшем в Project Mu также добавится система экранных уведомлений. Разработчики намерены создать графический интерфейс анализа производительности и дополнительные наборы примеров меню BIOS.
Исходный код Project Mu есть на GitHub. В комплекте – базовый набор инструкций для создания прошивок.
Система доступна всем абсолютно бесплатно. Единственное условие – готовые прошивки должны распространяться как ПО с открытым исходным кодом.