Программа начального старта
Программа начального старта (ПНС), она же загрузчик (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 — начиная от драйверов оборудования и заканчивая графическими оболочками и служебными утилитами для восстановления и обслуживания.
Подробности см. в описании этих программ.
Определение текущей версии
Из самой Программы начального старта:
- Остановите автоматический запуск операционной системы, нажав клавишу «Пробел» при появлении на экране обратного отсчёта.
- Войдите в режим командной строки, нажав клавишу «`» / «~» (обратный апостроф, тильда).
- Введите команду
get version boot
и нажмите «Ввод».
Key pressed. Autoboot canceled. CPU#00: Starting menu. BOOT SETUP Press command letter, or press 'h' to get help :` ENHANCED CMD MODE Enter command, 'help' to get help, or Esc to exit # get version boot BOOT E2C3 VERSION: release-2.30.15.1-E2C3 ::::::: ( unified-boot/release-2.30.15.1-E2C3 commit ea087aac1, 202507141139 ) BUILT BY root TARGET: mitx_t ON Jul 15 2025 AT 18:43:50 COMPILER: lcc:1.25.23:Apr--7-2022:e2k-v6-linux.cross:x86_64-linux gcc (GCC) 7.3.0 compatible
Из операционной системы семейства Linux:
- Запустите любую программу эмуляции терминала, например Xfce terminal, либо переключитесь на любой текстовый терминал Linux и войдите в систему.
- Введите команду
cat /proc/bootdata
и нажмите «Ввод».
# cat /proc/bootdata boot_ver=' release-2.30.15.1-E2C3 ::::::: ( unified-boot/release-2.30.15.1-E2C3 commit ea087aac1, 202507141139 )(mitx_t) built on Jul 15 2025 mb_type='unknown' (0x0) chipset_type='?????' cpu_type='E2C3' cache_lines_damaged=0 uuid='12b655ee-38f6-4755-a9ec-430b89f82548' mac='98:A7:B0:07:80:40'
В приведённом примере номером версии ПНС является release-2.30.15.1-E2C3, что означает «стабильный выпуск ПНС версии 2.30.15.1 для процессора Эльбрус-2С3». Разновидность ПНС в данном случае — mitx_t, что означает «для материнских плат семейства МЦСТ 1Э2С3-TmITX».
Прошивка нового образа
Рекомендуется следовать подробным инструкциям службы технической поддержки или из документации. Здесь процедура описана только в общих чертах.
Из операционной системы семейства Linux на самом обновляемом компьютере:
- Запустить любую программу эмуляции терминала, например Xfce terminal, либо переключиться на любой текстовый терминал Linux и войти в систему.
- Переключиться на учётную запись администратора командой
su
(либо запускать следующую команду через программуsudo
). - Ввести команду
flashboot.sh 'файл_образа.bin'
и нажать «Ввод». (Если в ответ выдаётся сообщение от отсутствии программыflashboot.sh
, и в составе ОС нет утилитыflashrom
и/или ядерного модуля spidev, значит обновление ПНС из такой ОС не предусмотрено.) - Дождаться успешного завершения процесса перезаписи ПЗУ и перезапустить компьютер командой reboot либо иным образом. (Для некоторых моделей микросхем ПЗУ требуется полное обесточивание компьютера после перепрошивки, чтобы процессор снова мог читать ПНС из ПЗУ.)
Внешним программатором (рекомендуется DediProg SF100 или иной ISP-программатор для шины SPI) с другого компьютера:
- Обесточить обновляемый компьютер.
- Подключить программатор к технологическому разъёму «BOOT» обновляемой материнской платы, соблюдая полярность и не путая с другими разъёмами доступа к ПЗУ (например, ПЗУ видеоконтроллера, менеджера удалённого управления, модуля доверенной загрузки и т. п.).
- Подготовить файл образа:
- Создать файл, размер которого соответствует ёмкости микросхемы. Все незаполненные биты должны быть взведены в единицу (байты 0xFF).
- Поместить образ ПНС в самое начало файла — по смещению 0.
- Поместить дерево устройств по смещению 0x700000 (7 Мбайт); для Эльбрус-2С3 и 16С — по смещению 0x4A0000 (4,625 Мбайт).
- Прошить новый образ ПНС в ПЗУ:
- из Linux, используя утилиту
flashrom
(свободное ПО для Linux):flashrom --programmer 'dediprog' --write 'файл_образа.bin'
- из Linux, используя утилиту
dpcmd
(фирменное ПО для Linux):dpcmd --auto 'файл_образа.bin'
- из Windows: использовать фирменное ПО программатора согласно его руководству по эксплуатации.
- из Linux, используя утилиту
- Дождаться успешного завершения процесса перезаписи ПЗУ.
- Отключить программатор от технологического разъёма «BOOT».
- Подать питание на обновляемый компьютер.
Следует иметь в виду, что после обновления все настройки ПНС как правило сбрасываются на значения по умолчанию: вывод на экран может пойти через первый видеоконтроллер (интегрированный, если такой есть) или, наоборот, последний (порядок нумерации PCI устройств специфичен для каждой модели материнской платы), активируются все консольные порты, сбросится пароль и другая защита доступа, система будет пытаться загрузиться с первого подходящего накопителя.