- •Основы bios
- •Io.Sys получит необходимые данные, он загружает указанные драйверы в память и связыва_
- •446 Глава 5. Bios: базовая система ввода5вывода
- •Аппаратная и программная части bios
- •448 Глава 5. Bios: базовая система ввода5вывода
- •Системная bios
- •Микросхемы rom
- •128 Кбайт от конца первого мегабайта. Поскольку емкость rom обычно равна 128 Кбайт,
- •Затенение rom
- •32_Разрядные драйверы в оперативную память, заменяя ими 16_разрядный код bios, кото_
- •450 Глава 5. Bios: базовая система ввода5вывода
- •Перепрограммирование prom
- •Память eprom
- •454 Глава 5. Bios: базовая система ввода5вывода
- •Память eeprom, или Flash rom
- •Замечание
- •Производители rom bios
- •Intel — крупнейший заказчик микросхем bios — перешла от устройств Phoenix к ami, затем
- •456 Глава 5. Bios: базовая система ввода5вывода
- •Bios oem"производителей
- •Vectra pc компании Hewlett_Packard используется bios компании Phoenix. Обратите внима_
- •Bios компании ami
Io.Sys получит необходимые данные, он загружает указанные драйверы в память и связыва_
ет их с BIOS. Другими словами, драйверы загружались с диска в ОЗУ и связывались с BIOS,
благодаря чему появлялась возможность в любой момент их вызвать.
К этому моменту в BIOS оказывались данные из ПЗУ системной платы и адаптеров,
а также драйверы, загруженные с диска в ОЗУ на ранних этапах загрузки. Таким образом,
BIOS содержит данные, которые физически расположены в трех разных местах системы, но
при этом работают как одно целое, поскольку все программы связываются посредством про_
Стр. 4 44
Основы BIOS 445
цедур BIOS. Операционная система или приложение при взаимодействии с каким_либо уст_
ройством (например, при необходимости считать данные с компакт_диска) обращается к оп_
ределенному программному прерыванию, после чего в соответствии с таблицей векторов пре_
рываний вызов направляется к определенной части BIOS (т. е. драйверу), касающейся работы
устройства. При этом не имеет значения, где именно хранится драйвер — в ПЗУ системной
платы, ПЗУ адаптера или ОЗУ.
Итак, базовая система ввода_вывода — это комбинация всех типов BIOS, а также загру_
жаемые драйверы устройств. Часть BIOS, содержащаяся в микросхеме на системной плате
или платах адаптеров, называется firmware (именно из_за наличия этих микросхем пользова_
тели чаще всего относят BIOS к аппаратной части компьютера).
По мере эволюции ПК выпускалось все больше различных типов устройств и их моделей.
Это означало необходимость предварительной загрузки все большего количества драйверов.
Добавление драйверов в ПЗУ системной платы — задача довольно сложная, поскольку мик_
росхемы ПЗУ чаще всего несъемные, а их объем достаточно ограничен. Архитектура PC
предполагала использование ПЗУ системной платы объемом всего 128 Кбайт, причем боль_
шая часть этого объема уже используется для хранения драйверов, процедуры POST, про_
граммы BIOS Setup, а также программы загрузки. Запись драйвера в ПЗУ адаптера также
сложная и дорогостоящая задача, а объем ПЗУ адаптеров ограничен теми же 128 Кбайт, из
которых 32 Кбайт используется видеоадаптером. Поэтому многие компании решили писать
драйверы, которые загружаются в ОЗУ во время загрузки системы.
С течением времени с диска загружалось все больше и больше драйверов, в том числе та_
ких, которые заменяют драйверы, хранящиеся в ПЗУ системной платы. Например, в Win_
dows 95 был представлен новый 32_разрядный драйвер жесткого диска, который использо_
вался вместо 16_разрядного драйвера, хранящегося в ПЗУ системной платы. При этом 16_раз_
рядный драйвер использовался только с момента включения компьютера и до того момента,
как в ОЗУ загружался 32_разрядный драйвер, а также изменялась таблица векторов прерыва_
ний. Windows 95/98/Me допускали использование как 16_, так и 32_разрядных драйверов.
Современные 32_разрядные драйверы загружаются непосредственно с жесткого диска, за_
меняя все драйверы в ПЗУ системной платы. Это относится к любому компьютеру, работаю_
щему под управлением Windows NT/2000/XP, в котором не применяются 16_разрядные
драйверы, размещенные в ПЗУ (ROM) системной платы или адаптера устройства. Код ПЗУ
системной платы необходим лишь для обеспечения успешной загрузки 32_разрядных драйве_
ров и ядра операционной системы, после чего ПЗУ отключается.
То же самое справедливо и в отношении 64_разрядных версий Windows, которые требуют
использования только 64_разрядных драйверов, не допуская применения 32_ или 16_разряд_
ных драйверов. На самом деле именно необходимость использования только 64_разрядных
драйверов в значительной мере замедляет распространение систем, работающих под управле_
нием 64_разрядной Windows.
Завершение загрузки, например, 32_разрядной Windows XP означает прекращение вызо_
вов любых подпрограмм в ПЗУ системной платы или адаптеров. В дальнейшем вызовы на_
правляются только драйверам устройств, загруженным в ОЗУ системы. При включении ком_
пьютера функции BIOS преимущественно располагаются в ПЗУ, а после загрузки Win_
dows XP — в ОЗУ системы.
Описываемая тенденция будет развиваться и в дальнейшем. ПЗУ системной платы приме_
няется на базовом этапе запуска системы для инициализации аппаратного обеспечения, а также
для реализации системы защиты в виде паролей, вводимых при запуске компьютера, и для на_
чальной настройки некоторых конфигурационных параметров. Тем не менее после загрузки
операционной системы за дело берется совершенно другой набор системных драйверов.
Компьютерную систему можно представить в виде нескольких аппаратных и программ_
ных слоев, которые взаимодействуют друг с другом. В целом существует четыре основных
слоя, каждый из которых можно разбить на подуровни. Эта концепция представлена в графи_
ческом виде на рис. 5.1.
Стр. 4 45
