Intel опубликовал Slim Boootloader, открытую прошивку для платформы Apollo Lake
Компания Intel опубликовала открытый проект Slim Boootloader, в рамках которого подготовлена открытая прошивка, которая может выступать в роли замены BIOS для инициализации оборудования и организации процесса загрузки ОС. Slim Boootloader позиционируется как безопасное, легковесное и высоко оптимизированное решение, которое можно использовать совместно с инструментами и библиотеками фреймворка для разработки UEFI-прошивок EDK II. Исходные тексты Slim Boootloader открыты под лицензией BSD.
Slim Bootloader может выполнять работу по первичной инициализации основных аппаратных компонентов после включения системы, с последующей передачей управления загрузчику, отвечающему за запуск основной операционной системы. Slim Bootloader может применяться OEM-производителями, разработчиками устройств и просто энтузиастами для подготовки оптимизированных решений для загрузки специализированных систем, обеспечивая высокую скорость загрузки и минимальный размер прошивки.
В настоящее время Slim Boootloader поддерживает только аппаратные платформы на базе микроархитектуры Apollo Lake, включая плату UP Squared, эталонную систему Intel Leaf Hill и модуль MinnowBoard 3, а также загрузку виртуальных машин через QEMU.
Slim Boootloader изначально развивается как модульная система, в которой компоненты инициализации оборудования и загрузки операционной системы разделены, что позволяет добиться хорошей расширяемости и гибкости в настройке. Slim Boootloader может загружать различные операционные системы и имеет встроенные средства для обновления прошивки, контроля целостности (Boot Guard) и верификации загружаемых компонентов по цифровой подписи (Root of Trust). Для диагностики и отладки предоставляется встроенный интерфейс командной строки.
При использовании Slim Boootloader процесс загрузки разбивается на стадии:
- Stage 1A - начальная инициализации, до доступности памяти;
- Stage 1B - инициализации основной памяти;
- Stage 2 - инициализация CPU, контроллеров ввода/вывода, устройств и другого оборудования;
- Payload - загрузка, проверка и запуск образов ОС или вызов обработчика обновления прошивки.
Поддерживаются следующие виды обработчиков (payload):
- Встроенный загрузчик, соответствующий спецификации MultiBoot и подходящий для загрузки Linux, гипервизора, Android или исполняемых файлов в формате ELF или PE;
- Встроенный обработчик обновления прошивки, автоматизирующий безопасную установку обновлений;
- Внешний обработчик UEFI, базирующийся на наработках TianoСore (открытая реализация UEFI) и подходящий для загрузки Windows. Обработчик предоставляет сервисы для Secure boot, SMM и UEFI runtime;
- Режим запуска произвольных обработчиков для реализации специфичной функциональности.