Не BIOS единым... Часть 2
Сегодня в продолжение темы альтернатив нынешним BIOS (см. «МБ» №4’2008) я расскажу о проекте coreboot, который, в отличие от только начинающего свой путь EFI, уже активно используется энтузиастами.
Бывает же…
В первой части статьи «Не BIOS единым…» среди прочих альтернатив был упомянут LinuxBIOS. Уже при написании того материала я собрал некоторую информацию об этом интересном проекте (знакомом мне, впрочем, и раньше). Каково же было моё удивление, когда спустя всего неделю, проходя по старым ссылкам, я не увидел знакомого названия. Добравшись, наконец, до официального сайта, я узнал, что как раз в этот период (точнее – 15 января 2008 года) разработчики решили сменить название проекта, уже давно выросшего за рамки первоначальной идеологии (об этом – дальше). Итак, встречайте: coreboot, альтернативная система базового ввода-вывода.
Историческая справка
Проект LinuxBIOS, ныне именующийся coreboot, стартовал в начале 1999 года в Национальной лаборатории Лос-Аламоса (Los Alamos Computer Science Institute) при финансовой поддержке этой лаборатории, а также Office of Science министерства энергетики США. Как и многие OpenSource-проекты, он начинался на базе уже написанного кода – проекта FreeBIOS. Изначально разработчики сделали упор на создание более надёжной и безопасной, чем существующие BIOS, системы для управления загрузкой больших вычислительных кластеров, работающих под управлением операционных систем семейства Linix – отсюда первоначальное название. Однако по мере подключения к разработке всё новых энтузиастов, система начала расширяться и получила возможность работы со многими серийными образцами оборудования, а также возможность загрузки ОС, отличных от Linux (в том числе – линейки Windows). Многочисленные разработчики рассматривали LinuxBIOS как средство, обеспечивающее дополнительные характеристики BIOS (наподобие безопасности), а также поддержку различных операционных систем, не ограничиваясь только Linux.
Принципы
Главная задача любой BIOS – загрузка операционной системы. В этом отношении coreboot отличается от себе подобных лишь одним штрихом: она загружает непосредственно ядро ОС, не передавая управление её загрузчику. Это позволяет сэкономить время при запуске компьютера. Изначально coreboot предназначен для загрузки ядра Linux, которое включается в его код. Однако по мере расширения, в проект была добавлена возможность загрузки исполнимых файлов в формате ELF, что позволило исполнять при загрузке такие программы, как Etherboot (загрузка Linux через локальную сеть), ADLO (загрузка Windows и OpenBSD) или GRUB2 (теоретически с его помощью можно загрузить практически любую операционную систему с любого поддерживаемого устройства).
При этом, coreboot, в отличие от привычных нам BIOS, производит лишь базовую инициализацию оборудования, оставляя всё остальное на откуп операционной системе. Если учесть, что большинство современных ОС в любом случае производят инициализацию, дублируя таким образом функции BIOS, то отказ от лишних шагов при загрузке позволяет сэкономить ещё несколько секунд. Вообще, от включения питания компьютера до полной загрузки ядра ОС проходит не более трёх секунд (в случае с Linux через три секунды после включения питания система полностью готова к работе).
Как вы понимаете, использование ядра Linux даёт coreboot немало преимуществ. Главное – такой BIOS поддерживает любое оборудование, поддерживаемое Linux Kernel – а значит, у пользователя больше не будет проблем при обновлении конфигурации – достаточно скачать свежую версию coreboot (а обновляется он, заметим, регулярно, как и само ядро Linux).
Установка
Пожалуй, главное отличие coreboot от рассмотренного на прошлой неделе проекта EFI – возможность перехода на первый с существующих BIOS. На coreboot перейти не так просто, хотя и ничего совсем невероятного в этом тоже нет. Для начала вам необходимо удостовериться, что ваша материнская плата может использовать нестандартный BIOS. Для этого загляните в соответствующий раздел официального сайта. Пока список плат для настольных систем невелик (версия coreboot V2), но уже скоро должна увидеть свет новая, третья версия, с выходом которой этот список значительно расширится. Благо, производители материнских плат стали очень активно сотрудничать с проектом, предоставляя разработчиками необходимую техническую документацию.
Если вы убедились, что ваша плата годится для модернизации (главное, чтобы была возможность замены микросхемы BIOS на ходу), можно переходить к следующему шагу – замене чипа, содержащего код старой BIOS (Flash-ROM) чипом памяти Disk-on-Chip. DoC – это чипы памяти, которые можно форматировать, как обычные дисковые накопители. Они имеют объём 8 Мбайт и устанавливаются в стандартный 32-штырьковый разъём, используемый 2-Мбайт чипом BIOS. Компании Linux Labs, Cluster Labs, CW Linux, i-TECH Corp., Linux NetworX и O.N.E. Technologies продают чипы Disk-on-Chip с уже предустановленной coreboot. А скажем, на материнской плате Gigabyte M57SLI-S4 и некоторых других изначально установлены чипы BIOS, готовые к загрузке этой системы. Если же вы приобретёте пустой чип, то систему на него придётся установить самостоятельно. Подробнее об этой процедуре можно прочитать на официальном сайте. Дело в том, что этот процесс требует установленной Linux (подойдёт любой дистрибутив) и сборки ядра для компоновки его в составе coreboot. При этом, ядро рабочей Linux должно иметь поддержку MTD (Memory Technology Devices). Скачать исходный код или бинарный файл coreboot можно со страницы qa.coreboot.org.
Когда у вас в руках окажется собранный coreboot, останется только произвести замену чипа BIOS на пустой чип DoC (при включённом питании компьютера) и записать альтернативный BIOS на этот чип.
Заключение
Безусловно, проект coreboot заслуживает внимания. На мой взгляд, у него ничуть не меньше перспектив, чем у EFI. Вполне возможно, что уже очень скоро привычные всем Award и AMI повсеместно сменятся EFI и coreboot. Ждём?
При написании статьи использовались материалы сайтов coreboot.org, izcity.com и overclockers.ru.