Coreboot
Coreboot (раніше LinuxBIOS) — проєкт зі створення вільних прошивок і BIOS, схвалений Free Software Foundation. Метою проєкту є заміна власницьких і закритих BIOS, використовуваних більшістю персональних комп'ютерів, на легковаговий BIOS, призначений виключно для завантаження і запуску сучасних 32- і 64-розрядних операційних систем. Проєкт LinuxBIOS був початий взимку 1999 в лабораторії Advanced Computing Laboratory в Лос-Аламосі. Результати роботи проєкту поширюються на умовах GNU GPL. Загальні відомостіТипова задача coreboot — завантажувати ядро Linux, але, крім цього, coreboot може завантажувати і запускати виконувані файли в форматі ELF, зазвичай звані «корисним завантаженням» (англ. payload). Корисними завантаженнями можуть виступати, наприклад, iPXE[en], який здатний завантажити Linux по мережі або SeaBIOS[en] — вільна реалізація BIOS, що дозволяє завантажувати Windows 2000/XP/Vista/7 і *BSD системи (раніше для цього використовувалася завантаження ADLO). Coreboot може завантажити операційну систему з будь-якого підтримуваного пристрою, такого як Myrinet, QsNet[en] або SCSI. Coreboot виконує ініціалізацію апаратного забезпечення, яку не може виконати операційна система, після чого передає управління ядру ОС, надаючи йому можливість завершити ініціалізацію апаратури. Coreboot підтримує платформи PowerPC і x86. Унікальною особливістю coreboot є те, що версія для x86 починає працювати в 32-розрядному режимі після виконання всього лише шістнадцяти інструкцій процесора, тоді як типові BIOS для платформи x86 працюють виключно в 16-розрядному режимі. Робота в 32-розрядному режимі робить завантаження з LinuxBIOS дуже швидким (нині[коли?] рекорд холодного старту з LinuxBIOS становить близько 3 секунд). Хоча у назві LinuxBIOS присутнє слово Linux, LinuxBIOS може завантажувати ядра інших операційних систем. Наприклад, LinuxBIOS може безпосередньо завантажувати ядро Plan 9. Тому він був перейменований в coreboot. Корисне завантаженняCoreboot сам по собі є лише маленькою програмою, що виконує ініціалізацію обладнання на материнській платі, далі управління передається одній з програм корисного завантаження:
Розробка та налагодження corebootОскільки coreboot повинен ініціалізувати апаратуру, то він повинен бути адаптований для підтримки кожного системного контролера (чипсета) і кожної плати на основі такого контролера. Додавання підтримки будь-якої нової плати ускладнюється труднощами налагодження: налагоджувальна інформація виводиться за допомогою тих чи інших апаратних засобів, але як організувати виведення, коли засоби виведення ще не ініціалізовані? Coreboot використовує декілька пристроїв і прийомів для спрощення налагодження:
Ініціалізація ОЗПНайскладнішою частиною coreboot є код, який ініціалізує оперативну пам'ять і її контролер. Справа в тому, що поки ОЗП не ініціалізований, його неможливо використовувати. Очевидним способом ініціалізації контролера ОЗП і самої оперативної пам'яті без звернень до неї є використання регістрів загального призначення процесора. Для спрощення цього складного завдання був розроблений спеціальний компілятор мови C — romcc, який породжує код, що під час виконання не здійснює звернень до оперативної пам'яті. За допомогою romcc компілюється код, який ініціалізує ОЗП шляхом звернення до SPD ROM на модулях DIMM по шині SMBus. Після виконання даного коду ОЗП можна використовувати. Підтримувані платформиКрім x86 і x86-64, Coreboot підтримує процесори AMD Geode. Підтримка почалася з процесора з Geode GX, розробленого AMD для OLPC, Artec Group потім додана підтримка Geode LX для своєї моделі DBE61 ThinCan[en]. Нещодавно, код був прийнятий AMD і далі удосконалений для OLPC після переходу на платформу Geode LX. Цей код нині є подальшим розвитком у Coreboot спільноті щоб підтримати інші рішення AMD Geode. Coreboot можуть бути прошиті на платформі AMD Geode за допомогою Flashrom. З цього початкового розвитку на платформах на базі AMD Geode, Coreboot підтримка була розширена для багатьох процесорів AMD і чипсетів. Список процесорів включає сім'ю 0Fh і 10h K8, також Family 14h на ядрі Bobcat[en], AMD APU. Coreboot підтримка поширюється також на чипсетах AMD серій RS690, RS7xx, SB600 і SB8x. Примітки
Див. такожПосилання
|