Журнал LinuxFormat - перейти на главную

LXF147:coreboot

Материал из Linuxformat
Перейти к: навигация, поиск

Что за штука… сoreboot?

Думаете, ваш компьютер вполне свободен? BIOS-то наверняка проприетарная. Джонатан Робертс вникает в проект, намеренный исправить дело.
Coreboot, говорите? Это про загрузку компьютера?
Вы совершенно правы. В частности, coreboot должен заменить устаревшие проприетарные BIOS, работающие на большинстве ПК, на современную альтернативу с открытым исходным кодом.
Минутку, а что такое BIOS?
Аббревиатура разворачивается так: Basic Input/Output System (то есть «базовая система ввода-вывода»). Это крохотная программа, которая хранится на микросхеме и вступает в работу сразу при включении питания. Система знакома каждому, кто хоть раз загружал компьютер: обычно это первый экран после «представления» видеокарты, как правило, с логотипом производителя.
Да уж, мне всегда кажется, что он там год маячит...
Ну, BIOS выполняет много работы, а на это требуется время.
Во-первых, базовая система выполняет несколько тестов: в частности, выясняет объем доступной памяти, инициализирует и регистрирует доступные устройства, а затем формирует среду для работы операционной системы.
Выполнив базовую настройку, BIOS определяет загрузочное устройство и передает управление ему.
Как все сложно! Но если эта штука сидит на большинстве существующих ПК, значит, работает хорошо? Зачем тогда ее заменять?
Действительно, работает, но к BIOS есть по меньшей мере три серьезных вопроса, требующие безотлагательного рассмотрения.
Каковы же эти вопросы?
Начнем с проблемы дублирования усилий. Большая часть инициализации устройств, выполняемой BIOS, была включена для поддержки устаревших операционных систем типа DOS. В них не хватало драйверов, и BIOS инициализировала для них оборудование и служила связующим звеном.
Но ведь в современных ОС драйверы есть?
Да. Операционные системы типа Windows, Linux и Mac OS поставляются с собственными драйверами. В результате по окончании работы BIOS весь процесс повторяется заново.
Эффективности тут явно мало, и поскольку современные ОС гораздо лучше поддерживают аппаратуру и загружают драйвера с большим умом, имеет смысл передать эту задачу на уровень операционной системы.
Выходит, это из-за BIOS мой компьютер тормозит?
Да. Для рядового пользователя это вроде и не вопрос – но представьте себе компьютерный кластер, где на каждую систему приходится по 128 ГБ ОЗУ и десяток сетевых портов. Здесь тестирование аппаратуры в BIOS займет немало времени.
Ну, здесь-то не помешало бы исправить положение, но ситуация все же не выглядит безнадежной. Что еще можно улучшить?
Как я уже упоминал, BIOS большинства ПК очень стары. Поэтому сегодня практически никто не знаком с их внутренней «кухней» и диагностическими средствами (кроме, конечно, Майка: его собственная ОС постоянно общается с BIOS).
Ой, так если у меня слетит BIOS, мне и подсказки никто не даст?
Вот именно, и лишь немногие вообще знают, с чего тут начать. То же самое произойдет, если понадобится расширить поддержку BIOS на какое-нибудь экзотическое устройство. BIOS написаны на языке ассемблера 8086, и расширения тоже надо писать на этом языке. Майку-то хорошо, но у большинства современных программистов в ассемблере опыта мало. Так что добавление поддержки нового оборудования может обернуться кошмаром.
Да, причина серьезная. А в чем последняя проблема?
Вероятно, последняя проблема серьезнее всех, но это зависит от вашей параноидальности. Проприетарная BIOS, которой комплектуется большинство современных систем, по определению получает неограниченный контроль над оборудованием компьютера в процессе загрузки.
Логично предположить, что, сдав дела операционной системе, BIOS уходит на покой. Как бы не так! BIOS продолжает работать, то есть сохраняет доступ к дискам и хранящимся на них данным и ко всем сетевым подключениям. Неконтролируемый двоичный код, написанный неизвестно кем – для поборников безопасности это страшно.
Ужас! И вот этот самый coreboot все исправит? Но как?
Да, исправит. Сперва планировали просто залить Linux на микросхему – туда, где обычно гнездится BIOS. Это устранило бы все названные проблемы: ведь Linux знакома многим людям, драйверы грузились бы только раз, а проверить открытый код мог бы каждый.
Поскольку планировалось заменить BIOS на Linux, проект назвали LinuxBIOS.
«Сперва» планировали? Выходит, случился облом?
Увы... Хотя Linux могла сделать значительную часть работы (загрузить драйверы и т. п.), оказалось, что устройства, еще не подключенные к электропитанию, она считает аннулированными.
К тому же выяснилось, что на некоторых системах Linux не в состоянии готовить к работе многоядерные процессоры и память. Поэтому команде coreboot пришлось писать специальный код, чтобы он настраивал аппаратуру на самом низшем уровне, а затем передавал управление Linux.
Ага, я понял... этот код составляет ядро [core] процесса загрузки [boot], от которого танцует остальное. Вот его и назвали coreboot.
Совершенно точно.
Но если пришлось переписывать код, не пропадут ли преимущества, которые планировались благодаря LinuxBIOS?
Не думаю. Начнем с того, что coreboot почти целиком написан на C и почти не содержит ассемблера. Язык С весьма популярен, поэтому модифицировать и совершенствовать код сможет масса программистов. Кроме того, исходный код coreboot открытый, и бесконтрольных участков двоичной абракадабры в системе уже не будет.
А коли работа по подготовке среды для Linux проводится минимальная, не будет и дублирования усилий.
Данная концепция неожиданно принесла и ряд побочных выгод.
Это каких же?
Закончив работу, coreboot попросту запускает «полезную нагрузку». Полезная нагрузка – это другой экземпляр программного обеспечения, хранящийся на одном чипе с coreboot и выполняющий особую функцию.
Таковым может быть ядро Linux (хотя объем современных чипов пока не дает такой возможности). А может быть и загрузчик типа Grub или SeaBIOS. Такой загрузчик вызовет хоть Windows, хоть Linux – любую операционную систему – с жесткого диска. Или это может быть одна из служебных программ, или игра... список можно продолжать до бесконечности.
Да, классная штука этот coreboot
быстрый, безопасный, универсальный. Можно ли его попробовать?
Можно, если у вас есть поддерживаемая аппаратура. Раньше ее список был не слишком велик, но недавно фирма AMD объявила, что все ее изделия будут выпускаться с поддержкой coreboot по умолчанию.
Чтобы узнать о coreboot побольше, выяснить, с чего начать, и просмотреть список поддерживаемой аппаратуры, посетите сайт проекта www.coreboot.org. Но помните, что замена BIOS – процесс непростой, и любая ошибка может загубить компьютер. Будьте осторожны и, прежде чем приступать, досконально изучите предмет.
Персональные инструменты
купить
подписаться
Яндекс.Метрика