Логическая структура BIOS

Программное обеспечение, встроенное в устройства можно разделить на категории, назовем их "уровнями". При включении электропитания после­довательно один за другим выполняется несколько уровней подпрограмм. Каждый из этих уровней в некоторой степени обособлен, что позволяет дос­тичь определенной независимости и в результате стабильности работы всей системы в целом. В чем "соль" такого подхода мы сейчас рассмотрим.

Первый уровень представляет собой набор подпрограмм, необходимых для запуска устройства (инициализации), в процессе которого проверяются та­кие параметры как работа тактовых генераторов, уровни рабочих напряже­ний, температура и прочее. В результате определяется возможность работы инициализируемого устройства, после чего активизируется очередной уро­вень программного обеспечения.

Первый уровень является "неприкосновенным" — в результате порчи ин­формации в области размещения подпрограмм, относящихся к нему, вам поможет только замена микросхемы постоянной памяти или ее "прошивка" на специальном программаторе. Во время обновления BIOS пользователем данный уровень обычно не затрагивается, т. к. производитель, как правило, вносит изменения в область более высоких уровней, которые мы рассмот­рим ниже.

На первом этапе инициализации практически любое устройство, будь то материнская плата или контроллер SCSI не проявляет абсолютно никаких "признаков жизни", как звуковые сигналы, моргание индикаторов и т. п.

Второй уровень подпрограмм предоставляет сервисные услуги — но диагно­стике, а иногда даже по устранению различных неполадок. На данном этапе осуществляется окончательная инициализация устройства и вывод результа­тов самодиагностики, что выражается в выводе звуковых сигналов на сис­темный динамик, сообщений на экран монитора или, в частном случае, оп­ределенных кодов на дисплей диагностического устройства.

CMOS — это своеобразная записная книжка (органайзер, если хотите), в которой можно делать «заметки» о том, в каких режимах должны работать компоненты материнской платы.

По сути, все программное обеспечение, записанное в микросхеме BIOS, яв­ляется не более чем архивом в формате LHA. Именно поэтому попытки ди-зассемблировать ее содержимое так часто оказывается неудачным, ведь для начала нужно осуществить распаковку содержимого. Внутри архива обычно содержатся следующие файлы:

  • original.tmp — непосредственно набор подпрограмм, составляющих осно­ву BIOS;
  • awardext.rom — подпрограммы, ответственные за вывод таблицы, из которой вы при загрузке компьютера можете получить информацию о текущей конфигурации ПК;
  • awardepa.bin — логотип Energy Star, выводимый в момент запуска компь­ютера в верхнем правом углу экрана монитора, может иметь название logo.bin и т. п.;
  • cpucode.bin — таблица микрокодов для процессоров Intel;
  • acpitbl.bin — набор подпрограмм поддержки ACPI;
  • vga.rom — набор подпрограмм (видео-BIOS), которые необходимы для работы интегрированного видео.

Естественно, обычным архиватором LHA распаковать файл «прошивки» не удастся, производители традиционно «позаботились» об этом, несколько изменив заголовок у архива. Для этого используются специальные програм­мы, например, MODBIN или CBROM.

Не менее естественно, что в BIOS все-таки имеется определенная область, в которой записаны программы в несжатом виде, в их обязанность входит первичная проверка и инициализация компонентов материнской платы, распаковка основного набора подпрограмм и их запуск. Эта область чаше всего называется BOOTBLOCK. Помимо всего прочего подпрограммы из данной области BIOS обладают возможностью ее аварийного восста­новления.