На конференции по микропрограммному обеспечению с открытым исходным кодом, которая состоялась на этой неделе в германском городе Эрлангене, Intel анонсировала проект Slim Bootloader. Разработка компании имеет открытый исходный код и оптимизирована для систем с критической зависимостью от скорости загрузки.
Bootloader, или загрузчик, отвечает за то, чтобы запускалась операционная система. Иногда для того, чтобы пользователи не «мухлевали» с запуском другой ОС на устройстве, производитель блокирует доступ к Bootloader. Например, желающим перепрошить смартфон на Android, приходится разблокировать загрузчик самостоятельно, а внедрение технологии Secure Boot в UEFI способом, требуемым Microsoft, могло ограничить свободу пользователей в выборе ОС. Но Slim Bootloader открывает для разработчиков совсем другие перспективы.
«EFI» освобожденный
Создатели Slim Bootloader рассказали участникам конференции, что разрабатывали продукт с учетом модульности: такой формат позволяет добавлять загрузчику новые функции. Открытый исходный Slim Bootloader дает программистам возможность строить на его основе собственные проекты.
Slim Bootloader – это реализация Extensible Firmware Interface (EFI) на базе Coreboot и доступная под лицензией BSD. Где EFI – программная, интерфейсная прослойка между прошивкой материнской платы и операционной системой. Новые компьютеры используют именно этот стандарт вместо традиционного BIOS. Обе эти программы запускаются перед тем, как загрузится ОС, но EFI поддерживает жесткие диски большего объема, быстрее грузится, обладает графическим интерфейсом и поддерживает мышь.
Проект Coreboot, ранее известный как LinuxBIOS, призван заменить прошивки BIOS или UEFI в «простых» устройствах и предназначен для минимального количества задач. А лицензия BSD относится к семейству лицензий для бесплатного ПО, налагает минимальные ограничения на использование и перераспределение охваченного ПО.
Легкий, быстрый, настраиваемый, безопасный
Все существующие на данный момент загрузчики ОС условно делятся на две группы: монолитные, которые сочетают процесс аппаратной инициализации и функциональность загрузки, и модульные, с поэтапным формированием загрузочного потока. Slim Bootloader относится к модульным прошивкам, он инициализирует оборудование, после чего запускает процессы для загрузки ОС. Это обеспечивает гибкость и возможность настройки уникальных сценариев использования.
Последовательность вызова функций Slim Bootloader выглядит следующим образом:
Акцент при работе над проектом Slim Bootloader делался на скорость загрузки. При этом в документации отмечен ряд показателей влияющих на скорость: тип загрузочного носителя, алгоритмы подписи, хеширование, использование аппаратного ускорения, конфигурация «железа», алгоритм сжатия, экран заставки, количество параметров загрузки.
За безопасность ПО отвечают модули: Boot Guard, Verified Boot, Measured Boot, Firmware Update и Triggering Firmware Update.
Применение и перспективы
Первоначально проект предназначен для встроенных устройств. Slim Bootloader уже используется в качестве загрузчика по умолчанию на платформе Intel Apollo Lake. Чипы этой линейки предназначены для непосредственной запайки в системную плату и поставляются в комплекте с ней. Такие процессоры используются в платах UP Squared, Intel Leaf Hill и MinnowBoard.
Загрузчик также можно использовать вместе с программой QEMU, предназначенной для эмуляции различных ОС с поддержкой аппаратной виртуализации.
Программа-эмулятор выдает себя за то, для чего она используется. Например, эмуляторы приставок или дисковода.
По заявлениям производителей, прошивка легко масштабируется на широкий спектр устройств, от ПК и мобильных устройств до серверов и устройств IoT. Несмотря на поддержку большинства современных ОС, аппаратно Slim Bootloader пока совместим только с процессорами серии Intel Apollo Lake, что значительно сужает его сферу применения.