See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
coreboot — Википедия

coreboot

Материал из Википедии — свободной энциклопедии

coreboot
Тип Микропрограмма (BIOS)
Разработчик Ronald G Minnich
ОС
Текущая версия V2
Лицензия GNU General Public License
Сайт www.coreboot.org

coreboot (ранее LinuxBIOS) — проект по созданию свободного программного обеспечения, одобренный Free Software Foundation. Целью проекта является замена проприетарных и закрытых BIOS, используемых большинством персональных компьютеров, на легковесный BIOS, предназначенный исключительно для загрузки и запуска современных 32 и 64 разрядных операционных систем. Проект LinuxBIOS был начат зимой 1999 года в лаборатории Advanced Computing Laboratory в Лос-Аламосе (см. Лос-Аламосская национальная лаборатория). Результаты работы проекта распространяются на условиях GNU GPL.

Портал:Свободное программное обеспечение
В Википедии есть портал
«Свободное программное обеспечение»

Содержание

[править] Общие сведения

Ronald G Minnich показывает рост числа пользователей Linuxbios
Ronald G Minnich показывает рост числа пользователей Linuxbios

Типичная задача coreboot — загружать ядро Linux, но, кроме этого, coreboot может загружать и запускать исполняемые файлы в формате ELF, например, etherboot, который способен загрузить Linux по сети Ethernet, или ADLO, который загружает Microsoft Windows NT 2000/XP. coreboot может загрузить практически любую операционную систему с любого поддерживаемого устройства, такого как Myrinet, QsNet, или SCSI.

coreboot производит инициализацию аппаратного обеспечения, которую не производит Linux, после чего передаёт управление Linux, предоставляя ему завершить инициализацию аппаратуры.

coreboot поддерживает платформы PowerPC и x86.

Уникальной особенностью coreboot является то, что версия coreboot для x86 начинает работать в 32-разрядном режиме после выполнения всего лишь шестнадцати инструкций процессора, в то время как типичные BIOS для платформы x86 работают исключительно в 16-разрядном режиме. Работа в 32-разрядном режиме делает загрузку с LinuxBIOS очень быстрой (в настоящее время рекорд холодного старта с LinuxBIOS составляет около 3 секунд).

Хотя в названии LinuxBIOS присутствовало слово Linux, LinuxBIOS мог грузить и другие ядра операционных систем. Например, LinuxBIOS мог напрямую грузить ядро Plan 9. Поэтому он был переименован в coreboot.

В то же время, LinuxBIOS нельзя использовать для запуска FreeBSD, так как ядро FreeBSD в начале своей работы использует вызовы BIOS, которые не поддерживаются LinuxBIOS.

[править] Разработка и отладка LinuxBIOS

Так как LinuxBIOS должен инициализировать аппаратуру, то он должен быть адаптирован для поддержки каждого системного контроллера (англ. chipset) и каждой платы на основе такого контроллера. Добавление поддержки какой-либо новой платы осложняется трудностями отладки: отладочная информация выводится с помощью тех или иных аппаратных средств, но как организовать вывод, когда средства вывода ещё не инициализированы?

LinuxBIOS использует несколько устройств и приёмов для упрощения отладки:

  • Перед инициализацией ОЗУ, LinuxBIOS инициализирует последовательный интерфейс, который может быть использован для вывода отладочной информации на подключённый к нему эмулятор терминала.
  • Используется POST Card, устройство, подключаемое к шине расширения компьютера и содержащее дисплей, который может выводить две цифры в шестнадцатеричной системе счисления. Программная работа с таким устройством довольно проста, например, на архитектуре x86 достаточно записать байт, который необходимо отобразить на индикаторе POST Card, по адресу 0x80 в адресном пространстве устройств ввода-вывода.
  • Устройство BIOS Savior, представляющее собой две микросхемы ПЗУ, содержащие BIOS и возможность выбрать для работы одно из них. Более дорогой альтернативой такому устройству является использование программатора микросхем ПЗУ.
  • Аппаратный эмулятор центрального процессора либо подключение к центральному процессору через интерфейс JTAG, позволяя таким образом знать результат работы каждой инструкции центрального процессора на самых ранних этапах работы компьютера.

[править] Инициализация ОЗУ

Наиболее сложной частью LinuxBIOS является код, который инициализирует ОЗУ и контроллер ОЗУ. Дело в том, что пока ОЗУ не инициализировано, его невозможно использовать. Очевидным способом инициализировать контроллер ОЗУ и саму оперативную память без обращений к ней является использование регистров общего назначения процессора. Для упрощения этой сложной задачи был разработан специальный компилятор языка Cromcc, который порождает код, не производящий обращений к ОЗУ при своей работе. С помощью romcc компилируется код, который инициализирует ОЗУ путём обращения к SPD ROM на модулях DIMM по шине SMBus. После выполнения данного кода ОЗУ может быть использовано.

[править] Смотрите также

[править] Ссылки


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -