Программа начального старта
Программа начального старта (ПНС), она же загрузчик (boot — «бут») — встроенное программное обеспечение вычислительных машин архитектуры Эльбрус и МЦСТ-R, выполняющее инициализацию аппаратуры и запуск операционной системы. Является функциональным аналогом Базовой системы ввода-вывода (BIOS) компьютеров архитектуры x86.
ПНС хранится в перезаписываемом постоянном запоминающем устройстве (ПЗУ) материнской платы компьютера и поставляется в составе материнской платы (вычислительного модуля), а также может быть обновлена впоследствии.
Подробнее на сайте МЦСТ: Программа начального старта
Разновидности
Существует 2 основных разновидности ПНС:
- унифицированный бут (unified boot) — стабильная ветвь развития Программы, предоставляющая унифицированный набор возможностей и пользовательских интерфейсов на всех поддерживаемых аппаратных платформах (возможны небольшие отличия для некоторых платформ с учётом их специфики);
- экспериментальный бут (experimental boot) — отдельные ветви развития Программы для перспективных моделей процессоров, где создаются и обкатываются новые решения на этапе проектирования будущего процессора и в первое время после начала опытного производства микросхем; для таких ветвей развития Программы характерны новые уникальные функции и повышенная детализация отладочных средств, но в то же время возможно некоторое отставание от внедрения функций из унифицированной ветви и существование собственных дефектов (багов), не свойственных стабильному унифицированному варианту.
Также ПНС подразделяется на следующие виды:
- по модели процессора — несмотря на то, что унифицированная разновидность ПНС предоставляет единообразный набор функций на всех поддерживаемых аппаратных платформах, каждая модель процессора требует учёта своих особенностей, а кроме того машинный код Программы более эффективен, когда скомпилирован с оптимизацией под конкретную модель процессора;
- по модели материнской платы (или семейству моделей, или специализированных компьютеров) — с учётом особенностей конкретных моделей оборудования, в том числе с особыми значениями параметров по умолчанию; сейчас чисто декларативные особенности постепенно выносятся в дерево устройств, однако некоторые различия в поведении проще реализовать в программном коде, нежели описать формальными данными;
- по дополнительной функциональности — например, с возможностью использования тех или иных средств доверенной загрузки (СДЗ), с возможностью разбиения ПЗУ на разделы и использования МикроОС, и т. д.
При обновлении ПНС крайне важно выбрать правильный образ Программы — не просто предназначенный для той или иной модели процессора, но совместимый с материнской платой и функционирующий в нужном режиме. Если ПНС оказалась заменена неподходящим вариантом, то новая ПНС может либо вообще запуститься на данном оборудовании, либо не запустить операционную систему, либо сильно ограничить возможности взаимодействия с компьютером — например, если выбран вариант Программы с блокировкой USB-портов и т. д. В таком случае для исправления ситуации и записи в ПЗУ правильного варианта Программы может потребоваться использование резервных средств — вплоть до использования внешнего программатора, подключённого к другому компьютеру, что для большинства пользователей означает необходимость отправки компьютера в сервисный центр.
Альтернативы
Помимо «классической» Программы начального старта, запускаемой при старте процессора и занимающейся инициализацией аппаратуры и запуском операционной системы, существует несколько программ схожего назначения, дублирующих или заменяющих функции ПНС:
- АПМДЗ — пользовательский интерфейс средства доверенной загрузки, позволяющий надёжно контролировать целостность файлов операционной системы перед её запуском;
- Coreboot + TianoCore — экспериментальная реализация UEFI для процессоров Эльбрус, впервые опробованная на Эльбрус-1С+ в статусе альфа-версии и находящаяся в начальной стадии портирования на следующие поколения процессоров, в том числе для возможности использования высокоуровневых программных загрузчиков типа GRUB;
- Lintel — двоичный транслятор уровня системы с собственной реализацией BIOS для запуска операционных систем в машинных кодах x86 (x86-64), а также для выполнения программного кода из областей PCI Option ROM установленных карт расширения;
- МикроОС — минифицированная Linux-система, используемая в качестве загрузчика с расширенными возможностями, какие только способно предоставить ПО для Linux — начиная от драйверов оборудования и заканчивая графическими оболочками и служебными утилитами для восстановления и обслуживания.
Подробности см. в описании этих программ.