Loading AI tools
проект по созданию свободного программного обеспечения, нацеленный на замену BIOS и UEFI Из Википедии, свободной энциклопедии
coreboot (ранее LinuxBIOS[3]) — проект по созданию свободного встроенного программного обеспечения для ряда ПК, одобренный Free Software Foundation. Целью проекта является замена проприетарных и закрытых систем BIOS и UEFI, используемых большинством персональных компьютеров, на легковесный, предназначенный исключительно для загрузки и запуска современных 32-битных и 64-битных операционных систем.
Coreboot | |
---|---|
Тип | встроенное программное обеспечение, загрузчик операционной системы и свободное и открытое программное обеспечение |
Авторы | Ronald G. Minnich, Eric Biederman, Li-Ta (Ollie) Lo, Stefan Reinauer, и сообщество coreboot |
Написана на | Си и язык ассемблера |
Первый выпуск | сентябрь 1999[1] |
Аппаратные платформы | ARM, IA-32 и x86-64 |
Последняя версия |
|
Репозиторий | review.coreboot.org/cgit… |
Состояние | актуальное, разрабатывается |
Лицензия | GNU GPL 2 |
Сайт | coreboot.org (англ.) |
Медиафайлы на Викискладе |
Так как coreboot инициализирует «железо», то проект должен быть адаптирован для каждого чипсета и каждой материнской платы. В результате coreboot доступен только для ограниченного количества аппаратных платформ и моделей материнских плат.
Один из вариантов coreboot — Libreboot, вариант coreboot, целью которого является полное отсутствие проприетарных микропрограмм (Блобов).
Типичная задача coreboot — загружать ядро Linux, но, кроме этого, coreboot может загружать и запускать исполняемые файлы в формате ELF, обычно называемые «полезной нагрузкой» (англ. payload). В качестве полезной нагрузки могут выступать, например, Etherboot, который способен загрузить Linux по сети или SeaBIOS — свободная реализация BIOS, позволяющая загружать Windows 2000/XP/Vista/7 и *BSD системы (ранее для этого использовалась нагрузка ADLO). Coreboot может загрузить операционную систему с любого поддерживаемого устройства, такого как Myrinet, QsNet, или SCSI.
Coreboot производит инициализацию аппаратного обеспечения, которую не может в полной мере выполнить операционная система, после чего передаёт управление модулю «полезной нагрузки» (Payload), который может выполнить дальнейшую загрузку ОС, либо выполнить некоторые другие полезные действия.
Coreboot поддерживает архитектуры x86, x86-64, ARM, ARM64, MIPS и RISC-V.
Отличительной особенностью coreboot по сравнению с Legacy BIOS является то, что версия для x86 начинает работать в защищённом режиме после выполнения всего лишь шестнадцати инструкций процессора, в то время как типичные BIOS для платформы x86 работают в основном в реальном режиме работы процессора. Совокупность этих факторов и простота внутреннего устройства делает загрузку с Coreboot очень быстрой (в настоящее время рекорд холодного старта с CoreBoot составляет около 3 секунд).
Хотя в названии LinuxBIOS присутствовало слово Linux, LinuxBIOS мог грузить и другие ядра операционных систем. Например, LinuxBIOS мог напрямую грузить ядро Plan 9. Поэтому он был переименован в coreboot.
Coreboot сам по себе является только маленькой программой, выполняющей инициализацию оборудования на материнской плате, далее управление передаётся одной из программ полезной нагрузки:
Так как coreboot должен инициализировать аппаратуру, то он должен быть адаптирован для поддержки каждого системного контроллера (чипсета) и каждой платы на основе такого контроллера. Добавление поддержки какой-либо новой платы осложняется трудностями отладки: отладочная информация выводится с помощью тех или иных аппаратных средств, но как организовать вывод, когда средства вывода ещё не инициализированы?
Coreboot использует несколько устройств и приёмов для упрощения отладки:
Наиболее сложной частью coreboot является код, который инициализирует ОЗУ и контроллер ОЗУ. Дело в том, что пока ОЗУ не инициализировано, его невозможно использовать. Очевидным способом инициализировать контроллер ОЗУ и саму оперативную память без обращений к ней является использование регистров общего назначения процессора. Для упрощения этой сложной задачи был разработан специальный компилятор языка C — romcc (англ. romcc), который порождает код, не производящий обращений к ОЗУ при своей работе. С помощью romcc компилируется код, который инициализирует ОЗУ путём обращения к SPD ROM на модулях DIMM по шине SMBus. После выполнения данного кода ОЗУ может быть использовано.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.