Coreboot (раніше LinuxBIOS) — проєкт зі створення вільних прошивок і BIOS, схвалений Free Software Foundation. Метою проєкту є заміна власницьких і закритих BIOS, використовуваних більшістю персональних комп'ютерів, на легковаговий BIOS, призначений виключно для завантаження і запуску сучасних 32- і 64-розрядних операційних систем. Проєкт LinuxBIOS був початий взимку 1999 в лабораторії Advanced Computing Laboratory в Лос-Аламосі. Результати роботи проєкту поширюються на умовах GNU GPL.
coreboot | |
Тип | Firmware |
---|---|
Автор | Ronald G. Minnich, Eric Biederman, Olli Lo, Stefan Reinauer, спільнота coreboot |
Перший випуск | 1999 |
Стабільний випуск | 4.13 (20 листопада 2020 ) |
Платформа | x86 х86-64, ARMv7 |
Мова програмування | головним чином C, лише близько 1 % ASM |
Стан розробки | активний |
Ліцензія | GPLv2 |
Репозиторій | review.coreboot.org/cgit/coreboot.git |
Вебсайт | coreboot.org |
|
Загальні відомості
Типова задача coreboot — завантажувати ядро Linux, але, крім цього, coreboot може завантажувати і запускати виконувані файли в форматі ELF, зазвичай звані «корисним завантаженням» (англ. payload). Корисними завантаженнями можуть виступати, наприклад, [en], який здатний завантажити Linux по мережі або [en] — вільна реалізація BIOS, що дозволяє завантажувати Windows 2000/XP/Vista/7 і *BSD системи (раніше для цього використовувалася завантаження ADLO). Coreboot може завантажити операційну систему з будь-якого підтримуваного пристрою, такого як Myrinet, [en] або SCSI.
Coreboot виконує ініціалізацію апаратного забезпечення, яку не може виконати операційна система, після чого передає управління ядру ОС, надаючи йому можливість завершити ініціалізацію апаратури.
Coreboot підтримує платформи PowerPC і x86.
Унікальною особливістю coreboot є те, що версія для x86 починає працювати в 32-розрядному режимі після виконання всього лише шістнадцяти інструкцій процесора, тоді як типові BIOS для платформи x86 працюють виключно в 16-розрядному режимі. Робота в 32-розрядному режимі робить завантаження з LinuxBIOS дуже швидким (нині[] рекорд холодного старту з LinuxBIOS становить близько 3 секунд).
Хоча у назві LinuxBIOS присутнє слово Linux, LinuxBIOS може завантажувати ядра інших операційних систем. Наприклад, LinuxBIOS може безпосередньо завантажувати ядро Plan 9. Тому він був перейменований в coreboot.
Корисне завантаження
Coreboot сам по собі є лише маленькою програмою, що виконує ініціалізацію обладнання на материнській платі, далі управління передається одній з програм корисного завантаження:
- [en] — вільна реалізація BIOS, що підтримує стандартні системні виклики. Дозволяє завантажувати операційну систему з твердого диска або CD/DVD дисковода. На даний момент випробувана з ОС Linux, NetBSD, FreeDOS, і Windows XP/Vista/7. Завантаження інших x86-сумісних операційних систем також повинне працювати.
- ADLO — реалізація BIOS, що використовує напрацювання проєкту Bochs з підтримкою більшості стандартних системних викликів. Дозволяє завантажувати Windows 2000, OpenBSD. В даний час витіснена SeaBIOS.
- GRUB — популярний завантажувач ОС, що дозволяє завантажувати ядра дуже багатьох операційних систем (зокрема Linux) з широкого діапазону файлових систем, і що володіє безліччю додаткових функцій.
- LILO — простий завантажувач ОС з підтримкою файлових систем.
- — мережевий завантажувач ОС, що дозволяє завантажувати ОС по мережі в рамках технології PXE.
- [en] і [en] — вільні реалізації BIOS.
- Ядро Linux — також може виступати як корисне завантаження.
- TianoCore — вільна реалізація UEFI.
Розробка та налагодження coreboot
Оскільки coreboot повинен ініціалізувати апаратуру, то він повинен бути адаптований для підтримки кожного системного контролера (чипсета) і кожної плати на основі такого контролера. Додавання підтримки будь-якої нової плати ускладнюється труднощами налагодження: налагоджувальна інформація виводиться за допомогою тих чи інших апаратних засобів, але як організувати виведення, коли засоби виведення ще не ініціалізовані?
Coreboot використовує декілька пристроїв і прийомів для спрощення налагодження:
- Перед ініціалізацією оперативної пам'яті coreboot ініціалізує послідовний інтерфейс, який може бути використаний для виведення налагоджувальної інформації на підключений до нього емулятор термінала.
- Використовується POST-карта — пристрій, що підключається до шини розширення комп'ютера і містить дисплей, який може виводити інформацію, зазвичай, це дві цифри в шістнадцятковій системі числення. Програмна робота з таким пристроєм досить проста, наприклад, на архітектурі x86 достатньо записати байт, який необхідно відобразити на індикаторі POST-карти, за адресою 0x80 в адресному просторі пристроїв введення-виведення.
- Пристрій BIOS Savior, що являє собою дві мікросхеми ПЗП, які містять BIOS і можливість вибрати для роботи одну з них. Дорожчою альтернативою такому пристрою є використання програматора мікросхем ПЗП.
- Апаратний емулятор центрального процесора або підключення до центрального процесора через інтерфейс JTAG, дозволяє таким чином знати результат роботи кожної інструкції центрального процесора на початкових етапах роботи комп'ютера.
Ініціалізація ОЗП
Найскладнішою частиною coreboot є код, який ініціалізує оперативну пам'ять і її контролер. Справа в тому, що поки ОЗП не ініціалізований, його неможливо використовувати. Очевидним способом ініціалізації контролера ОЗП і самої оперативної пам'яті без звернень до неї є використання регістрів загального призначення процесора. Для спрощення цього складного завдання був розроблений спеціальний компілятор мови C — romcc, який породжує код, що під час виконання не здійснює звернень до оперативної пам'яті. За допомогою romcc компілюється код, який ініціалізує ОЗП шляхом звернення до SPD ROM на модулях DIMM по шині SMBus. Після виконання даного коду ОЗП можна використовувати.
Підтримувані платформи
Крім x86 і x86-64, Coreboot підтримує процесори AMD Geode. Підтримка почалася з процесора з Geode GX, розробленого AMD для OLPC, Artec Group потім додана підтримка Geode LX для своєї моделі DBE61 [en]. Нещодавно, код був прийнятий AMD і далі удосконалений для OLPC після переходу на платформу Geode LX. Цей код нині є подальшим розвитком у Coreboot спільноті щоб підтримати інші рішення AMD Geode. Coreboot можуть бути прошиті на платформі AMD Geode за допомогою Flashrom.
З цього початкового розвитку на платформах на базі AMD Geode, Coreboot підтримка була розширена для багатьох процесорів AMD і чипсетів. Список процесорів включає сім'ю 0Fh і 10h K8, також Family 14h на ядрі [en], AMD APU. Coreboot підтримка поширюється також на чипсетах AMD серій RS690, RS7xx, SB600 і SB8x.
Примітки
- . coreboot. 15 жовтня 2013. Архів оригіналу за 7 вересня 2015. Процитовано 1 лютого 2014.
Див. також
- [en]
- [en]
- Extensible Firmware Interface
Посилання
- Домашня сторінка coreboot.org, а також wiki [ 25 липня 2008 у Wayback Machine.](англ.)
- Motherboards supported in coreboot v2 [ 16 травня 2008 у Wayback Machine.](англ.)
- відкриття системи BIOS для Linux [ 28 квітня 2014 у Wayback Machine.]
- А. Кухар (квітень 2004)
- Open BIOSes for Linux [ 7 січня 2007 у Wayback Machine.] (англ.) IBM
- Google Linux BIOS [ 19 березня 2012 у Wayback Machine.](рос.) LOR 2006
- інтерв'ю з Ronald G. Minnich, одним з основних розробників проєкту LinuxBIOS [ 26 липня 2013 у Wayback Machine.]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Coreboot ranishe LinuxBIOS proyekt zi stvorennya vilnih proshivok i BIOS shvalenij Free Software Foundation Metoyu proyektu ye zamina vlasnickih i zakritih BIOS vikoristovuvanih bilshistyu personalnih komp yuteriv na legkovagovij BIOS priznachenij viklyuchno dlya zavantazhennya i zapusku suchasnih 32 i 64 rozryadnih operacijnih sistem Proyekt LinuxBIOS buv pochatij vzimku 1999 v laboratoriyi Advanced Computing Laboratory v Los Alamosi Rezultati roboti proyektu poshiryuyutsya na umovah GNU GPL Coreboot ARMcorebootTipFirmwareAvtorRonald G Minnich Eric Biederman Olli Lo Stefan Reinauer spilnota corebootPershij vipusk1999Stabilnij vipusk4 13 20 listopada 2020 3 roki tomu 2020 11 20 Platformax86 h86 64 ARMv7Mova programuvannyagolovnim chinom C lishe blizko 1 ASMStan rozrobkiaktivnijLicenziyaGPLv2Repozitorijreview coreboot org cgit coreboot gitVebsajtcoreboot org Mediafajli u VikishovishiZagalni vidomostiRonald G Minnich pokazuye zrostannya chisla koristuvachiv Linuxbios Tipova zadacha coreboot zavantazhuvati yadro Linux ale krim cogo coreboot mozhe zavantazhuvati i zapuskati vikonuvani fajli v formati ELF zazvichaj zvani korisnim zavantazhennyam angl payload Korisnimi zavantazhennyami mozhut vistupati napriklad en yakij zdatnij zavantazhiti Linux po merezhi abo en vilna realizaciya BIOS sho dozvolyaye zavantazhuvati Windows 2000 XP Vista 7 i BSD sistemi ranishe dlya cogo vikoristovuvalasya zavantazhennya ADLO Coreboot mozhe zavantazhiti operacijnu sistemu z bud yakogo pidtrimuvanogo pristroyu takogo yak Myrinet en abo SCSI Coreboot vikonuye inicializaciyu aparatnogo zabezpechennya yaku ne mozhe vikonati operacijna sistema pislya chogo peredaye upravlinnya yadru OS nadayuchi jomu mozhlivist zavershiti inicializaciyu aparaturi Coreboot pidtrimuye platformi PowerPC i x86 Unikalnoyu osoblivistyu coreboot ye te sho versiya dlya x86 pochinaye pracyuvati v 32 rozryadnomu rezhimi pislya vikonannya vsogo lishe shistnadcyati instrukcij procesora todi yak tipovi BIOS dlya platformi x86 pracyuyut viklyuchno v 16 rozryadnomu rezhimi Robota v 32 rozryadnomu rezhimi robit zavantazhennya z LinuxBIOS duzhe shvidkim nini koli rekord holodnogo startu z LinuxBIOS stanovit blizko 3 sekund Hocha u nazvi LinuxBIOS prisutnye slovo Linux LinuxBIOS mozhe zavantazhuvati yadra inshih operacijnih sistem Napriklad LinuxBIOS mozhe bezposeredno zavantazhuvati yadro Plan 9 Tomu vin buv perejmenovanij v coreboot Korisne zavantazhennyaCoreboot sam po sobi ye lishe malenkoyu programoyu sho vikonuye inicializaciyu obladnannya na materinskij plati dali upravlinnya peredayetsya odnij z program korisnogo zavantazhennya en vilna realizaciya BIOS sho pidtrimuye standartni sistemni vikliki Dozvolyaye zavantazhuvati operacijnu sistemu z tverdogo diska abo CD DVD diskovoda Na danij moment viprobuvana z OS Linux NetBSD FreeDOS i Windows XP Vista 7 Zavantazhennya inshih x86 sumisnih operacijnih sistem takozh povinne pracyuvati ADLO realizaciya BIOS sho vikoristovuye napracyuvannya proyektu Bochs z pidtrimkoyu bilshosti standartnih sistemnih viklikiv Dozvolyaye zavantazhuvati Windows 2000 OpenBSD V danij chas vitisnena SeaBIOS GRUB populyarnij zavantazhuvach OS sho dozvolyaye zavantazhuvati yadra duzhe bagatoh operacijnih sistem zokrema Linux z shirokogo diapazonu fajlovih sistem i sho volodiye bezlichchyu dodatkovih funkcij LILO prostij zavantazhuvach OS z pidtrimkoyu fajlovih sistem merezhevij zavantazhuvach OS sho dozvolyaye zavantazhuvati OS po merezhi v ramkah tehnologiyi PXE en i en vilni realizaciyi BIOS Yadro Linux takozh mozhe vistupati yak korisne zavantazhennya TianoCore vilna realizaciya UEFI Rozrobka ta nalagodzhennya corebootOskilki coreboot povinen inicializuvati aparaturu to vin povinen buti adaptovanij dlya pidtrimki kozhnogo sistemnogo kontrolera chipseta i kozhnoyi plati na osnovi takogo kontrolera Dodavannya pidtrimki bud yakoyi novoyi plati uskladnyuyetsya trudnoshami nalagodzhennya nalagodzhuvalna informaciya vivoditsya za dopomogoyu tih chi inshih aparatnih zasobiv ale yak organizuvati vivedennya koli zasobi vivedennya she ne inicializovani Coreboot vikoristovuye dekilka pristroyiv i prijomiv dlya sproshennya nalagodzhennya Pered inicializaciyeyu operativnoyi pam yati coreboot inicializuye poslidovnij interfejs yakij mozhe buti vikoristanij dlya vivedennya nalagodzhuvalnoyi informaciyi na pidklyuchenij do nogo emulyator terminala Vikoristovuyetsya POST karta pristrij sho pidklyuchayetsya do shini rozshirennya komp yutera i mistit displej yakij mozhe vivoditi informaciyu zazvichaj ce dvi cifri v shistnadcyatkovij sistemi chislennya Programna robota z takim pristroyem dosit prosta napriklad na arhitekturi x86 dostatno zapisati bajt yakij neobhidno vidobraziti na indikatori POST karti za adresoyu 0x80 v adresnomu prostori pristroyiv vvedennya vivedennya Pristrij BIOS Savior sho yavlyaye soboyu dvi mikroshemi PZP yaki mistyat BIOS i mozhlivist vibrati dlya roboti odnu z nih Dorozhchoyu alternativoyu takomu pristroyu ye vikoristannya programatora mikroshem PZP Aparatnij emulyator centralnogo procesora abo pidklyuchennya do centralnogo procesora cherez interfejs JTAG dozvolyaye takim chinom znati rezultat roboti kozhnoyi instrukciyi centralnogo procesora na pochatkovih etapah roboti komp yutera Inicializaciya OZPNajskladnishoyu chastinoyu coreboot ye kod yakij inicializuye operativnu pam yat i yiyi kontroler Sprava v tomu sho poki OZP ne inicializovanij jogo nemozhlivo vikoristovuvati Ochevidnim sposobom inicializaciyi kontrolera OZP i samoyi operativnoyi pam yati bez zvernen do neyi ye vikoristannya registriv zagalnogo priznachennya procesora Dlya sproshennya cogo skladnogo zavdannya buv rozroblenij specialnij kompilyator movi C romcc yakij porodzhuye kod sho pid chas vikonannya ne zdijsnyuye zvernen do operativnoyi pam yati Za dopomogoyu romcc kompilyuyetsya kod yakij inicializuye OZP shlyahom zvernennya do SPD ROM na modulyah DIMM po shini SMBus Pislya vikonannya danogo kodu OZP mozhna vikoristovuvati Pidtrimuvani platformiKrim x86 i x86 64 Coreboot pidtrimuye procesori AMD Geode Pidtrimka pochalasya z procesora z Geode GX rozroblenogo AMD dlya OLPC Artec Group potim dodana pidtrimka Geode LX dlya svoyeyi modeli DBE61 en Neshodavno kod buv prijnyatij AMD i dali udoskonalenij dlya OLPC pislya perehodu na platformu Geode LX Cej kod nini ye podalshim rozvitkom u Coreboot spilnoti shob pidtrimati inshi rishennya AMD Geode Coreboot mozhut buti proshiti na platformi AMD Geode za dopomogoyu Flashrom Z cogo pochatkovogo rozvitku na platformah na bazi AMD Geode Coreboot pidtrimka bula rozshirena dlya bagatoh procesoriv AMD i chipsetiv Spisok procesoriv vklyuchaye sim yu 0Fh i 10h K8 takozh Family 14h na yadri en AMD APU Coreboot pidtrimka poshiryuyetsya takozh na chipsetah AMD serij RS690 RS7xx SB600 i SB8x Primitki coreboot 15 zhovtnya 2013 Arhiv originalu za 7 veresnya 2015 Procitovano 1 lyutogo 2014 Div takozh en en Extensible Firmware InterfacePosilannyaDomashnya storinka coreboot org a takozh wiki 25 lipnya 2008 u Wayback Machine angl Motherboards supported in coreboot v2 16 travnya 2008 u Wayback Machine angl vidkrittya sistemi BIOS dlya Linux 28 kvitnya 2014 u Wayback Machine A Kuhar kviten 2004 Open BIOSes for Linux 7 sichnya 2007 u Wayback Machine angl IBM Google Linux BIOS 19 bereznya 2012 u Wayback Machine ros LOR 2006 interv yu z Ronald G Minnich odnim z osnovnih rozrobnikiv proyektu LinuxBIOS 26 lipnya 2013 u Wayback Machine