основная загрузка
![]() | этой статьи Фактическая точность оспаривается . ( Май 2023 г. ) |
![]() | |
Оригинальный автор(ы) | Рональд Г. Минних, Эрик Бидерман, Ли-Та (Олли) Ло, Стефан Рейнауэр и сообщество coreboot |
---|---|
Первоначальный выпуск | 1999 год |
Стабильная версия | |
Репозиторий | |
Написано в | В основном C , около 1% в сборке и опционально SPARK |
Платформа | ИА-32 , x86-64 , ARMv7 , [3] ARMv8, MIPS , RISC-V , POWER8 |
Тип | Прошивка |
Лицензия | лицензия GPLv2 [4] |
Веб-сайт | www ![]() |
coreboot , ранее известный как LinuxBIOS , [5] — это программный проект, направленный на замену проприетарной прошивки ( BIOS или UEFI ), присутствующей в большинстве компьютеров, на облегченную прошивку, предназначенную для выполнения только минимального количества задач, необходимых для загрузки и запуска современной 32-битной или 64-битной операционной системы .
Поскольку coreboot инициализирует голое оборудование, его необходимо портировать на каждый чипсет и материнскую плату , которые он поддерживает. В результате coreboot доступен только для ограниченного числа аппаратных платформ и моделей материнских плат.
Одним из вариантов coreboot является Libreboot , дистрибутив программного обеспечения, частично свободный от проприетарных больших двоичных объектов , предназначенный для конечных пользователей.
История
[ редактировать ]Проект coreboot начался с цели создать BIOS, который бы запускался быстро и разумно обрабатывал ошибки. [6] Он лицензируется на условиях GNU General Public License версии 2 (GPLv2). Основными участниками являются LANL , SiS , AMD , Coresystems и Linux Networx, Inc, а также производители материнских плат MSI , Gigabyte и Tyan , которые предлагают coreboot наряду со своим стандартным BIOS или предоставляют спецификации аппаратных интерфейсов для некоторых своих материнских плат. Google частично спонсирует проект coreboot. [7] CME Group , кластер фьючерсных бирж , начал поддерживать проект coreboot в 2009 году. [8]
За исключением первых трех моделей, все Chromebook используют coreboot. [9] Код Das U-Boot был ассимилирован для обеспечения поддержки процессоров на основе набора инструкций ARM . [10]
В июне 2019 года coreboot начала использовать АНБ программное обеспечение Ghidra для своих по обратному проектированию усилий для решения проблем , связанных с прошивкой , после выпуска пакета в качестве бесплатного программного обеспечения с открытым исходным кодом . [11]
Поддерживаемые платформы
[ редактировать ]Архитектуры ЦП, поддерживаемые coreboot, включают IA-32 , x86-64 , ARM , ARM64 , MIPS и RISC-V . Поддерживаемые «система на кристалле» платформы (SOC) включают AMD Geode , начиная с процессора Geode GX, разработанного для OLPC . Artec Group добавила поддержку Geode LX для своей модели ThinCan DBE61; этот код был принят AMD и дополнительно улучшен для OLPC после обновления до платформы Geode LX, а также доработан сообществом coreboot для поддержки других вариантов Geode. coreboot можно прошить на платформу Geode с помощью Flashrom .
После первоначальной разработки платформ на базе AMD Geode поддержка базовой загрузки была расширена на многие процессоры и наборы микросхем AMD. В список процессоров вошли семейства 0Fh и 10h ( K8 ядро Bobcat ), а с недавнего времени и семейство 14h ( ядро , Fusion APU ). Поддержка coreboot также распространяется на чипсеты AMD: RS690 , RS7xx , SB600 и SB8xx.
В Универсальной инкапсулированной программной архитектуре AMD ( AGESA ) — «протокол начальной загрузки , с помощью которого инициализируются системные устройства на материнских платах AMD64» — был открыт исходный код в начале 2011 года с целью обеспечить необходимые функции для инициализации системы базовой загрузки на оборудовании AMD64. [12] Однако по состоянию на 2014 год такие выпуски так и не стали основой для будущих разработок AMD и впоследствии были остановлены. [13]
Устройства, на которые можно предварительно загрузить coreboot или одну из его производных, включают:
- Леново / IBM
- Libreboot T400 и X200 (переименованные в ThinkPad T400 и X200 соответственно, доступные в Minifree, ранее известной как Gluglug). [14] [15]
- Группа компаний «Артек»
- ThinCan модели DBE61, DBE62 и DBE63, а также безвентиляторное оборудование сервера/маршрутизатора производства PC Engines . [16]
- Пуризм
- Ноутбуки Librem поставляются с coreboot. [17] [18]
- Другие
- На некоторых компьютерах System76 используется прошивка Coreboot TianoCore, включая прошивку встроенного контроллера с открытым исходным кодом .
- Dasharo предлагает альтернативный дистрибутив прошивки на основе coreboot для компьютеров от MSI , NovaCustom и Nitrokey , среди прочих. [19] [20] [21]
- В качестве альтернативы StarLabs Systems использует прошивку coreboot. [22]
Дизайн
[ редактировать ]coreboot обычно загружает ядро Linux , но может загружать любой другой автономный исполняемый файл ELF , например iPXE , gPXE или Etherboot, который может загружать ядро Linux по сети или SeaBIOS. [23] который может загружать ядро Linux, Windows 2000 и новее, а также BSD; Поддержка Windows 2000/ XP и OpenBSD ранее предоставлялась ADLO. [24] [25] coreboot также может загружать ядро с любого поддерживаемого устройства, например Myrinet, Quadrics или кластера межсоединений SCI. Также возможна прямая загрузка других ядер , например ядра Plan 9 . Вместо непосредственной загрузки ядра coreboot может передать управление выделенному загрузчику, такому как версия GNU GRUB 2 с поддержкой coreboot.
coreboot написан в основном на C с небольшим количеством ассемблерного кода . Выбор C в качестве основного языка программирования упрощает аудит кода по сравнению с BIOS современного ПК, который обычно пишется на ассемблере. [26] что приводит к повышению безопасности. Существует поддержка сборки и выполнения для написания частей coreboot на Ada. [27] для дальнейшего повышения планки безопасности, но в настоящее время она используется лишь время от времени. Исходный код распространяется под лицензией GNU GPL версии 2 .
coreboot выполняет абсолютно минимальный объем инициализации оборудования, а затем передает управление операционной системе . В результате после того, как операционная система взяла управление на себя, код основной загрузки не выполняется. Особенностью coreboot является то, что версия x86 запускается в 32-битном режиме после выполнения всего десяти инструкций. [28] (почти все остальные биосы x86 работают исключительно в 16-битном режиме). Это похоже на современную прошивку UEFI , которая используется на новом оборудовании ПК.
Инициализация DRAM
[ редактировать ]Самое сложное оборудование, которое инициализирует coreboot, — это контроллеры DRAM и DRAM . В некоторых случаях техническая документация по этому вопросу ограничена соглашением о неразглашении или недоступна. Инициализация ОЗУ особенно сложна, поскольку до инициализации ОЗУ ее нельзя использовать. ЦП Следовательно, для инициализации контроллеров DRAM и DRAM код инициализации может иметь только регистры общего назначения или кэш-память в качестве временного хранилища.
romcc, C компилятор , использующий регистры вместо оперативной памяти, облегчает задачу. Используя romcc, относительно легко обеспечить доступ по SMBus к ПЗУ SPD DRAM модулей DIMM , что позволяет использовать ОЗУ.
В новых процессорах x86 кэш процессора можно использовать в качестве ОЗУ до тех пор, пока не будет инициализирована DRAM. Кэш процессора должен быть инициализирован в Cache-as-RAM. [29] [30] также, но для этого требуется меньше инструкций, чем для инициализации DRAM. Кроме того, инициализация режима Cache-as-RAM специфична для архитектуры ЦП и, следовательно, является более общей, чем инициализация DRAM, которая специфична для каждого набора микросхем и материнской платы.
Для большинства современных платформ x86 для настройки DRAM используются только двоичные компоненты с закрытым исходным кодом, предоставляемые поставщиком. Для систем Intel требуется FSP-M, тогда как у AMD в настоящее время поддержка отсутствует. Двоичный код AGESA в настоящее время используется для проприетарной прошивки UEFI в системах AMD, и ожидается, что эта модель будет перенесена на любую будущую поддержку базовой загрузки, связанную с AMD. [31]
Разработка и отладка coreboot
[ редактировать ]
Существуют также эмуляторы ЦП , которые либо заменяют ЦП , либо подключаются через порт JTAG , например, Sage SmartProbe. [32] [33] быть примером. Код можно создать или загрузить в эмуляторы BIOS, а не перепрограммировать устройство BIOS.
Полезная нагрузка
[ редактировать ]coreboot может загружать полезную нагрузку, которая может быть записана с использованием libpayload Вспомогательная библиотека . Существующие полезные нагрузки включают следующее:
- Depthcharge используется Google для ChromeOS [34]
- Ветка Das U-Boot использовалась Google для ChromiumOS. в прошлом [35]
Европейская конференция Coreboot
[ редактировать ]Одной из физических встреч является Европейская конференция Coreboot, которая была организована в октябре 2017 года и длилась три дня.
История конференции
[ редактировать ]Событие и год | Дата | Принимающий город | Место проведения | Ресурсы | Темы |
---|---|---|---|---|---|
ЕСС2017 | 26.10. – 29.10 | Бохум , Германия | РУБ Конгресс-центр | https://ecc2017.com |
Варианты
[ редактировать ]coreboot имеет несколько вариантов исходной кодовой базы, каждый из которых преследует несколько разные цели:
- Libreboot — вариант, основной целью которого является удаление некоторых [36] бинарные капли.
- osboot — вариант, аналогичный Libreboot, в котором отменена политика использования только некоторых больших двоичных объектов для повышения поддержки и стабильности оборудования. [37] По состоянию на ноябрь 2022 года объединен с libreboot. [38]
- MrChromebox разработал модифицированную версию coreboot для устройств на базе ChromeOS. [39]
- GNU Boot — вариант, основной задачей которого является удаление всех двоичных объектов. [40]
- каноэбот [41]
- Dasharo — дистрибутив на основе coreboot, разработанный 3mdeb. [42] Они стремятся облегчить производителям поставку продуктов с coreboot. [43] [44]
- Черепа – вариант, ориентированный на простоту установки. [45]
- Heads — вариант, направленный на физическую безопасность и использование бесплатного программного обеспечения, рекомендуемый для использования с QubesOS . [46] [47] [ нужна ссылка ]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Мартин Рот (23 мая 2024 г.). «Выпуск coreboot 24.05» . Проверено 23 мая 2024 г.
- ^ «Выпуски» . coreboot . nd
- ^ "РУКА" . coreboot. 15 октября 2013 года . Проверено 1 февраля 2014 г.
- ^ «лицензия coreboot» . github.com . 1991 год . Проверено 13 октября 2018 г.
- ^ «[LinuxBIOS] Добро пожаловать в coreboot» . 12 января 2008 г.
- ^ Антон Борисов: BIOS с открытым исходным кодом — десять. Интервью с разработчиками coreboot . Архивировано 16 сентября 2012 года на Wayback Machine . Х , 2009.
- ^ «Google спонсирует проект LinuxBIOS» . Архивировано из оригинала 6 февраля 2012 года . Проверено 29 сентября 2023 г.
{{cite web}}
: CS1 maint: bot: исходный статус URL неизвестен ( ссылка ) - ^ «Группа CME погружается в Coreboot и другие проекты Linux с открытым исходным кодом» . Уолл-стрит и технологии . Архивировано из оригинала 12 августа 2010 года . Проверено 23 сентября 2015 г.
- ^ «Хромбуки» . coreboot. 16 января 2014 года. Архивировано из оригинала 8 мая 2016 года . Проверено 17 февраля 2014 г.
- ^ «GSoC2011 (неделя 1): анализ загрузочного кода U-boot ARM | блоги разработчиков coreboot» . 5 июня 2011 года . Проверено 12 апреля 2014 г.
- ^ «Coreboot nutzt NSA-Tool zum Reverse Engineering» . Golem.de . Проверено 4 мая 2023 г.
- ^ «Технические подробности выпуска исходного кода AMD coreboot» . АМД . 28 февраля 2011 г. Архивировано из оригинала 25 марта 2014 г. Проверено 1 февраля 2016 года .
- ^ Гриффит, Брюс (5 ноября 2014 г.). «Библиотеки AMD AGESA, предназначенные только для двоичных файлов» . Проверено 8 мая 2017 г.
- ^ «Минифри» . Министерство Свободы - Товары . Архивировано из оригинала 25 сентября 2015 года . Проверено 24 сентября 2015 г.
- ^ «Глюглуг» . fsf.org . Архивировано из оригинала 23 сентября 2015 года . Проверено 23 сентября 2015 г.
- ^ «pcengines/coreboot» . Гитхаб . Проверено 16 сентября 2019 г.
- ^ «Прошивка coreboot на устройствах Purism Librem» . Проверено 19 июня 2020 г.
- ^ «Ноутбуки Purism будут использовать прошивку «Heads» для защиты от руткитов и взлома (обновлено)» . 27 февраля 2018 года . Проверено 19 июня 2020 г.
- ^ «Новая прошивка Dasharo v1.1 для платы MSI Z690 — Phoronix» . 22 ноября 2022 г. Проверено 27 октября 2023 г.
- ^ «Обновление прошивки NovaCustom-Dasharo, октябрь 2023 г. (ADL v1.7.0 и TGL v1.5.0) — NovaCustom» . 19 сентября 2023 г. Проверено 27 октября 2023 г.
- ^ «NitroPC Pro сертифицирован Qubes! — Nitrokey» . 24 сентября 2023 г. Проверено 27 октября 2023 г.
- ^ Обзор Starbook mk v - fossbytes
- ^ SeaBIOS (ранее известный как LegacyBIOS) — это устаревшая реализация BIOS с открытым исходным кодом.
- ^ «Дополнительный уровень coreboot (ADLO)» . Архивировано из оригинала 25 ноября 2010 года.
- ^ SEBOS, Загрузчик с улучшенной безопасностью для операционных систем, Фаза 2. Архивировано 19 июня 2007 г. на Wayback Machine , добавление служб BIOS ПК в основную загрузку через Bochs BIOS (ссылка отмечена как недействующая 18 июля 2008 г. См. )
- ^ Сравнение UEFI и устаревшего BIOS , демонстрируя то же преимущество UEFI.
- ^ согласитесь добавить эту поддержку
- ^ «Код раннего запуска coreboot v3» . Архивировано из оригинала 10 июля 2012 года . Проверено 17 августа 2008 г.
- ^ Инхай Лу; Ли-Та Ло; Грегори Р. Уотсон; Рональд Г. Минних (15 января 2009 г.). «CAR: использование кэша в качестве оперативной памяти в BIOS Linux» (PDF) . qmqm.pl. Архивировано из оригинала (PDF) 3 марта 2016 года . Проверено 25 февраля 2014 г.
- ^ «Среда использования кэша процессора в качестве оперативной памяти (CAR)» (PDF) .
- ^ Гриффит, Брюс (5 ноября 2014 г.). «[coreboot] Библиотеки AMD AGESA, предназначенные только для двоичных файлов» . Проверено 8 сентября 2019 г.
- ^ «Sage Electronic Engineering — отладчик SmartProbe JTAG, Sage EDK, coreboot и встроенные системы и разработка программного обеспечения» . www.se-eng.com . Архивировано из оригинала 15 марта 2011 года.
{{cite web}}
: CS1 maint: неподходящий URL ( ссылка ) - ^ «Часто задаваемые вопросы о Sage SmartProbe» . С.Дацковский . Проверено 30 апреля 2021 г.
- ^ «Depthcharge: загрузчик ChromeOS» . docs.google.com . Проверено 26 октября 2015 г.
- ^ «Измените код u-boot, чтобы разрешить сборку полезной нагрузки основной загрузки. [chromiumos/ Third_party/u-boot-next: chromeos-v2011.03]» . 24 июля 2011 г.
- ^ «Политика сокращения двоичных BLOB-объектов» . 1 ноября 2023 года. Архивировано из оригинала 1 ноября 2023 года . Проверено 1 ноября 2023 г.
- ^ «Проект osboot» . 15 марта 2021 г. Архивировано из оригинала 15 марта 2021 г. Проверено 26 мая 2023 г.
- ^ «Libreboot – Osboot теперь является частью Libreboot» . 19 декабря 2022 года. Архивировано из оригинала 19 декабря 2022 года . Проверено 26 мая 2023 г.
- ^ «Как установить ChromeOS Flex на Chromebook» . Андроид Полиция . 17 апреля 2022 г. Проверено 30 мая 2023 г.
- ^ «Сводка загрузки GNU» . 30 октября 2023 года. Архивировано из оригинала 30 октября 2023 года . Проверено 30 октября 2023 г.
- ^ «Проект Каноэбот» . 16 ноября 2023 года. Архивировано из оригинала 16 ноября 2023 года . Проверено 16 ноября 2023 г.
- ^ «3mdeb Sp. z oo — Консультации по разработке встраиваемых прошивок» . 29 января 2024 года. Архивировано из оригинала 16 февраля 2024 года . Проверено 16 февраля 2024 г.
- ^ «Дашаро • GitHub» . 22 октября 2023 года. Архивировано из оригинала 16 февраля 2024 года . Проверено 16 февраля 2024 г.
- ^ «О Дашаро — Вселенная Дашаро» . 9 февраля 2024 года. Архивировано из оригинала 16 февраля 2024 года . Проверено 16 февраля 2024 г.
- ^ Кепплингер-Новакович, Мартин (28 мая 2024 г.), слияние / черепа , получено 29 мая 2024 г.
- ^ «О головах» . Головы . Проверено 29 мая 2024 г.
- ^ linuxboot/heads , LinuxBoot, 28 мая 2024 г. , получено 29 мая 2024 г.
Дальнейшее чтение
[ редактировать ]- Внутри процесса загрузки Linux , М. Джонс, IBM
- Открытые BIOS для Linux , Питер Сибах (только архив)
- LinuxBIOS готов стать массовым , Брюс Байфилд
- Первая материнская плата для настольных ПК, поддерживающая LinuxBIOS: GIGABYTE M57SLI-S4 от Брэндона Ховарда
- Видеозапись выступления Рона Миннича по LinuxBIOS с конференции FOSDEM 2007.
- Coreboot Your Service , Linux Journal , октябрь 2009 г.
- media.ccc.de — Поиск «Питер Штуге»
Внешние ссылки
[ редактировать ]СМИ, связанные с Coreboot, на Викискладе?
- Официальный сайт