Top.Mail.Ru
Загрузка

Coreboot придет на смену BIOS и UEFI

В ближайшие несколько лет способ загрузки компьютера может кардинально измениться. Альтернативная прошивка, известная как coreboot, по мере своего развития будет становиться все более популярной. Несомненно, coreboot — это гигантский скачок вперед для всего открытого аппаратного составляющего современных компьютеров. И здесь стоит отметить то, что на аппаратном обеспечении, где она может быть реализована, coreboot загружает систему в три-четыре раза быстрее, чем обычные BIOS или UEFI.

Первоначально известный как LinuxBIOS, coreboot был основан в 1999 году в Лос-Аламосской национальной лаборатории, научно-исследовательском центре, наиболее известном своей ролью в разработке атомной бомбы. Сегодня основными разработчиками coreboot являются такие производители, как AMD и SiS, производители материнских плат, такие как MSI, а также различные участники Google Summer of Code.

Поддерживаемые архитектуры процессоров включают x86-64, ARM, ARM64 и RISC-V, а также Geode от AMD и другие платформы с программным обеспечением на кристалле. Помимо Linux, coreboot напрямую поддерживает BSD, OpenBSD, Windows 2000 и более поздние версии Windows. Использовать coreboot можно совместно с различными операционными системами, указанными в технической спецификации. Кроме того, coreboot вдохновил ряд других проектов, таких как Libreboot и librecore, в которых большое внимание уделяется акцент на свободе программного обеспечения и архитектурах, отличных от x86. Как видно из вышесказанного, coreboot поддерживается широким спектром аппаратного обеспечения и разрабатывается альянсом ученых, производителей аппаратных частей и сообществом свободных разработчиков.

Разработчики давно осознали растущую потребность в новой прошивке. Согласно сайту coreboot, размер BIOS когда-то составлял в среднем около 100 КБ, но сейчас средний размер приближается к 8 МБ, и он почти наверняка содержит устаревший и избыточный код, что серьезно замедляет время загрузки.

«На настольных компьютерах и ноутбуках coreboot может загрузить операционную системы менее чем за секунду. Для серверов он может сократить время загрузки на несколько минут», — утверждается на сайте coreboot.

Coreboot разработан в соответствии с современными стандартами безопасности, и, будучи меньше обычного BIOS, он представляет собой меньшую цель для взлома системы безопасности. Еще одним преимуществом является то, что, в соответствии с принципами открытого исходного кода, «архитектура coreboot разработана таким образом, что процесс обновления не вызывает никаких затруднений. Обновление прошивки будет не более трудным, чем установка какого-нибудь приложения на мобильный телефон». Во всех отношениях coreboot — это своевременный пересмотр традиционной концепции прошивки компьютерных плат.

Принцип работы Coreboot

Coreboot разработан таким образом, чтобы предоставить абсолютный минимум инструкций для запуска современной операционной системы. Минимальная структура означает, что coreboot должен быть модифицирован для каждого чипсета и материнской платы, которые он поддерживает, что, конечно же, задерживает прогресс, но повышает впоследствии эффективность работы.

Coreboot выполняется в пять обязательных этапов плюс дополнительный этап на компьютерах с архитектурой x86 (в виде временной шкалы показан на рисунке ниже):

  • bootblock: Первый этап написан на языке ассемблера и предназначен для установки среды C, используемой для остальной части процесса coreboot. Задачи включают инициализацию Cache-as-RAM, которая использует кэш процессора в качестве памяти для кучи и стека, необходимых среде C. На системах x86 этап bootblock также переключает процессор из 16-битного реального режима в 32-битный защищенный режим.
  • verstage: Необязательный этап, который запускает корневой сертификат, если используется верифицированная загрузка.
  • romstage: Подготавливает систему к прямому доступу к DRAM.
  • postcar: Сносит память Cache-as-RAM и загружает ramstage.
  • ramstage: Инициализирует аппаратное обеспечение, включая PCI, встроенные и графические устройства, модули доверенной платформы и центральный процессор. Таблицы инициализации подготавливаются для операционной системы, а аппаратное и микропрограммное обеспечение блокируется.
  • payloads: Загружает фрагмент программного обеспечения, хранящегося в памяти микропрограммы, который инициализирует процесс запуска операционной системы. Две часто используемые полезные нагрузки — SeaBIOS (реализация BIOS x86) и TianoCore (версия UEFI с открытым исходным кодом). Загрузчик GRUB2 также может служить в качестве полезной нагрузки coreboot. Учитывая скорость работы coreboot, пользователи Linux могут с недоумением обнаружить, что невозможно прочитать вывод во время загрузки. И чтобы просмтотреть события, произошедшие во время загрузки, им придется открыть журнал загрузки (/var/log/boot.log).

Рисунок также иллюстрирует, как этапы работы coreboot вписываются в этапы кросс-платформенной спецификации прошивки EDK II.

System76: Пример реализации

Согласно Википедии, компьютеры с coreboot уже доступны на некоторых Chromebook на базе x86, а также от One Laptop per Child, Minifree (бывший Gluglug), PC Engines, Purism, System76 и Star Labs. Большинство из этих компьютеров — ноутбуки, некоторые — прошедшие процесс восстановленния, но список постоянно растет в течение последних нескольких лет.

За последние несколько лет System76 стала крупным производителем компьютеров с Linux. Первоначально System76 поставляла свои компьютеры со стандартным BIOS. Однако постепенно она перешла на coreboot для своих ноутбуков. По состоянию на март 2023 года, все шесть моделей ноутбуков компании используют coreboot. Пока нет официальной информации о том, когда coreboot появится на настольных компьютерах, серверах и миникомпьютерах компании, но можно предположить, что это лишь вопрос времени.

После традиционных BIOS и UEFI, coreboot на ноутбуке Darter Pro от System76 может шокировать пользователя. BIOS ранней версии Darter Pro содержал 38 элементов верхнего уровня, включая спецификации, а также настройки поддержки Secure Boot, Thunderbolt 3 и виртуализации. Текущее же меню coreboot Darter Pro, доступ к которому осуществляется путем удержания клавиши Esc при запуске системы, является олицитворением аскетичности.

В текущем виде coreboot на компьютерах System76 кажется незавершенной, поэтому, возможно, в ближайшие месяцы в меню загрузчика добавят новые пункты. На странице разработки GitHub пока нет никакой информации по этому поводу. Данная реализация прошивки предлагает только ту информацию, которая по мнению разработчиков необходима пользователям. Но даже в этом минимуме не все пункты меню подлежат изменению. Если сравнить меню coreboot от System76 с конфигурацией другой сборки coreboot, можно увидеть, что System76 выбирает актуальность и простоту в своей сборке.

Большая часть обычной информации в BIOS доступна в System76 Open Firmware, вместе с инструкциями по настройке и прошивке прошивки, а также предложениями по восстановлению, если что-то пошло не так. Управление таким оборудованием, как клавиатура, вентилятор и батарея, доступно через System76 Open EC Firmware (встроенный контроллер), иногда в виде сочетаний клавиш, а иногда в виде настольных приложений. Стоит отметить, что реализации coreboot будут отличаться друг от друга, так например, ноутбук Librem 14 от Purism делает акцент на том, что они «отключли механизм управления от Intel», используют меньше проприетарного двоичного кода и ориентированы на безопасность. Но независимо от приоритетов, конечной целью реализации coreboot является обеспечение более простого и эффективного способа запуска компьютера.

Добро пожаловать в будущее

Coreboot сталкивается с серьезными препятствиями. Часто разработчикам приходится работать с проприетарным кодом, который отнимает много времени и иногда ставит под угрозу саму философию открытого кода проекта. Консерватизм корпораций, которые отдают предпочтение устоявшейся структуре BIOS и UEFI, также никак не помогают в разработке. Однако, вероятно, самым большим препятствием является тот факт, что каждый чипсет и каждая материнская плата требуют собственной реализации. Но несмотря на все издержки, разработка продолжается, и отличительной чертой этой работы является то, что проект имеет полную, хорошо организованную и четкую документацию.

Преимущества Coreboot настолько очевидны, что можно смело утверждать — будущее именно за ним. Только прдставьте себе, как компьютер загружается в разы быстрее, а прошивка или обновление микропрограммы будет настолько простой, что даже самые консервативно настроенные люди поменяют свои взгляды. Так или иначе в ближайшем будущем мы еще услышим о coreboot.

svg

Что вы думаете?

Показать комментарии / Оставить комментарий

Комментировать

svg
Быстрая навигация
  • 01

    Coreboot придет на смену BIOS и UEFI