Главная страницаОбратная связьКарта сайта

Основы BIOS .Аппаратная и программная части BIOS

BIOS: базовая система: Основы BIOS ввода-вывода.Аппаратная и программная части BIOS


Основы BIOS

Пользователи зачастую не видят разницы между программной и аппаратной частями компьютера. Это можно объяснить высокой степенью интеграции компонентов системы. Точное представление различия между компонентами компьютера дает ключ к пониманию роли BIOS.

За аббревиатурой BIOS” скрывается понятие базовой системы ввода-вывода. По существу, BIOS представляет собой промежуточный слой” между программной и аппаратной частями системы. Большинство пользователей знакомы с BIOS по другому термину — драйверы устройств или просто драйверы. По своей сути BIOS представляет собой совокупность всех драйверов устройств, связывающих программные и аппаратные средства компьютера.

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

В микросхеме ПЗУ также были записаны программа POST (Power On Self Test — тестирование при включении) и программа самозагрузки. Последняя инициирует загрузку операционной системы, проверяя загрузочный сектор на дискете или на жестком диске. После загрузки операционная система обращается к процедурам низкого уровня (драйверам) BIOS, необходимым для взаимодействия с различными системными устройствами. В начале компьютерной эры в BIOS хранились абсолютно все драйверы устройств, в том числе драйвер клавиатуры, видеоадаптера MDA/CGA, последовательного и параллельного портов, контроллера гибких дисков, контроллера жестких дисков, джойстика и т.д.

После загрузки операционной системы загружать драйверы для работы с устройствами не нужно, так как они уже находятся в ПЗУ. Эта идея была неплоха, однако лишь до тех пор, пока в системе не устанавливалось новое устройство, драйвера которого в ПЗУ не существует. В этом случае есть два выхода. Если вы установили новую плату адаптера, она может быть оснащена собственной микросхемой ПЗУ, содержащей необходимый драйвер. ПЗУ системной платы запрограммировано таким образом, чтобы обнаруживать ПЗУ адаптеров и при обнаружении новых драйверов связывать соответствующие новые функции с существующей BIOS. В результате можно сказать, что ПЗУ системной платы аккумулирует” данные, хранящиеся в ПЗУ отдельных адаптеров, в результате чего обеспечивается коллективная” функциональность.

Подобный метод добавления драйверов использовался для целого ряда устройств, например видеоадаптеров, которые должны быть полностью функциональными с момента включения компьютера. Код BIOS, хранящийся в ПЗУ системной платы, содержит драйверы только для монохромного видеоадаптера MDA компании IBM, а также цветного видеоадаптера CGA. При установке видеоадаптера иного типа драйверы, хранящиеся в ПЗУ системной платы, оказывались бесполезными. Конечно, это не вызывало проблем, если новый видеоадаптер был оснащен собственной микросхемой ПЗУ, содержимое которой добавлялось в BIOS сразу же после включения компьютера.

Если же использовалось устройство другого типа, существовал иной способ добавления драйвера в коллекцию” драйверов BIOS. Дело в том, что на ранних этапах загрузки файл загрузки операционной системы (Io.sys) обращался к файлу конфигурации (Config.sys), содержащему сведения о драйверах устройств. Файл Config.sys вместе со всеми указанными в нем драйверами должен находиться на загрузочном диске. После того как файл Io.sys получит необходимые данные, он загружает указанные драйверы в память и связывает их с BIOS. Другими словами, драйверы загружались с диска в ОЗУ и связывались с BIOS, благодаря чему появлялась возможность в любой момент их вызвать.

К этому моменту в BIOS оказывались данные из ПЗУ системной платы и адаптеров, а также драйверы, загруженные с диска в ОЗУ на ранних этапах загрузки. Таким образом, BIOS содержит данные, которые физически расположены в трех разных местах системы, но при этом работают как единое целое, поскольку все программы связываются посредством процедур BIOS. Операционная система или приложение при взаимодействии с каким-либо


432


Глава 5. BIOS: базовая система ввода-вывода


устройством (например, при необходимости считать данные с компакт-диска) обращается к определенному программному прерыванию, после чего в соответствии с таблицей векторов прерываний вызов направляется к определенной части BIOS (т.е. к драйверу), связанной с работой устройства. При этом не имеет значения, где именно хранится драйвер — в ПЗУ системной платы, адаптера или ОЗУ. Память всегда остается памятью, и если известен адрес, по которому находится нужная программа, ее всегда можно вызвать.

Итак, базовая система ввода-вывода — это комбинация всех типов ПЗУ материнской платы и плат расширения, а также драйверов устройств, загруженных с диска. Часть BIOS, содержащаяся в микросхеме на системной плате или платах адаптеров, называется прошивкой (firmware) (именно из-за наличия этих микросхем пользователи чаще всего относят BIOS к аппаратной части компьютера). После выключения питания компьютера все данные, находящиеся в оперативной памяти компьютера, стираются; нетронутым остается только содержимое ПЗУ. После включения компьютера снова выполняется процесс загрузки, и в память с диска загружаются все отсутствующие драйверы.

По мере эволюции ПК выпускалось все больше различных типов устройств и их моделей. Это означало необходимость предварительной загрузки все большего количества драйверов. Добавление драйверов в ПЗУ системной платы — задача довольно сложная, поскольку микросхемы ПЗУ чаще всего несъемные, а их объем достаточно ограничен. Архитектура PC предполагала использование ПЗУ системной платы объемом всего 128 Кбайт, причем боль-шая часть этого объема уже используется для хранения драйверов, процедуры POST и программ настройки BIOS и загрузки. Запись драйвера в ПЗУ адаптера — также сложная и дорогостоящая задача, а объем ПЗУ адаптеров ограничен теми же 128 Кбайт, из которых 32 Кбайт используются самим видеоадаптером. Поэтому многие компании решили создавать драйверы, которые загружаются в ОЗУ при запуске системы.

С течением времени с диска загружалось все больше и больше драйверов, в том числе таких, которые заменяют драйверы, хранящиеся в ПЗУ системной платы. Например, в Windows 95 был представлен новый 32-разрядный драйвер жесткого диска, который использовался вместо 16-разрядного, хранящегося в ПЗУ системной платы. При этом 16-разрядный драйвер использовался только с момента включения компьютера до того момента, когда в ОЗУ загружался 32-разрядный драйвер, а также изменялась таблица векторов прерываний. Windows 95/98/Me допускали использование как 16-, так и 32-разрядных драйверов, облегчая тем самым переход к 32-разрядным операциям.

Современные 32- и 64-разрядные драйверы загружаются непосредственно с жесткого диска, заменяя все драйверы в ПЗУ системной платы. Это относится к любому компьютеру, работающему под управлением Windows NT/2000/XP или Vista. Эти операционные системы вообще не используют 16-разрядные драйверы, размещенные в ПЗУ (ROM) системной платы или адаптера устройства. Код ПЗУ системной платы необходим лишь для обеспечения успешной загрузки 32-разрядных драйверов и ядра операционной системы, после чего ПЗУ отключается. Другими словами, после загрузки операционной системы все необходимые драйверы (т.е. BIOS) уже находятся в оперативной памяти. Основные функции ПЗУ материнской платы — запуск системы, инициализация необходимых для загрузки системы устройств, а также проверка пароля для входа в систему и выполнение базовой настройки устройств. После загрузки системы управление передается загруженному в память набору драйверов.

Компьютерную систему можно представить в виде нескольких аппаратных и программных слоев, которые взаимодействуют друг с другом. Существует четыре основных слоя, каждый из которых можно разбить на подуровни. Эта концепция представлена в графическом виде на рис. 5.1.

В представленной на рис. 5.1 архитектуре программное обеспечение взаимодействует с операционной системой с помощью интерфейса прикладного программирования (Application Programming Interface или API). Этот интерфейс специфичен для каждой операционной системы; он состоит из набора команд и функций, которые операционная система может выпол­нить для приложения. К примеру, приложение может отдать приказ операционной системе
загрузить или сохранить файл. Такой порядок избавляет приложения от необходимости знать специфику работы с конкретным оборудованием, установленным в компьютере, и его набором команд. Оно имеет дело только с операционной системой, выступающей посредником между приложением и аппаратной частью. Поскольку приложение оказывается полностью изолированным от оборудования, оно может выполняться на любом компьютере, на котором установлена операционная система, интерфейс API которой задействован в программе.




Рис. 5.1. Условное разделение PC-совместимой системы на несколько уровней

Операционная система, в свою очередь, через BIOS обращается непосредственно к аппаратному обеспечению. Эта связь реализована в виде драйверов устройств. Обычно выпуском драйверов устройств занимаются их производители. Поскольку драйверы обеспечивают взаимодействие между аппаратным устройством и операционной системой, они, как правило, предназначены для конкретной ОС. Таким образом, производителям приходится создавать драйверы для таких операционных систем, как DOS, Windows 9x/NT/2000/XP, OS/2, Linux и др. Тем не менее многие операционные системы имеют одинаковые внутренние интерфейсы, и некоторые драйверы подходят для нескольких операционных систем. Например, драйвер для Windows Me обычно подходит для Windows 98/95, а драйвер для Windows XP можно использовать в Windows 2000/NT, и наоборот. Это связано с тем, что операционные системы Windows 95/98/Me имеют одно и то же ядро; то же можно сказать и о системах Windows NT/2000/XP. В новой системе Windows Vista в значительной мере изменено ядро NT, так что в ней зачастую нельзя использовать драйверы, предназначенные для предыдущих версий Windows семейства NT.

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

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

Аппаратная и программная части BIOS

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

BIOS в ПК обычно можно найти в следующих компонентах системы:

■     ПЗУ системной платы;

■     ПЗУ платы адаптера (например, видеоадаптера);

■     данные на диске, загружаемые в ОЗУ (драйверы устройств).

ПЗУ BIOS материнской платы часто относят к аппаратным, а не к программным средствам из-за того, что эта система находится в ПЗУ одной из микросхем. Много лет назад, во времена господства операционной системы DOS, этого было вполне достаточно для обеспечения жизнедеятельности компьютера — дополнительные драйверы не требовались. Системная BIOS содержит драйверы основных компонентов (клавиатуры, дисковода, жесткого диска, последовательного и параллельных портов и т.д.), необходимые для начального запуска компьютера. По мере усложнения компьютерных систем и появления новых устройств (видеоадаптеров, накопителей CD-ROM, жестких дисков с интерфейсом SCSI, портов USB и т.д.) их процедуры инициализации не добавлялись в системную BIOS. Острая необходимость в таких устройствах при запуске компьютера отсутствует, поэтому нужные драйверы загружаются с диска во время запуска операционной системы. Это относится к звуковым адаптерам, сканерам, принтерам, устройствам PC Card (PCMCIA) и т.д.

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

Спрашивается, как увидеть что-либо на экране, если видеокарта не имеет необходимых драйверов в своем ПЗУ? Естественно, можно соответствующими драйверами дополнить ПЗУ материнской платы, однако это непрактично, поскольку существует великое множество карт видеоадаптеров и каждой из них нужен свой драйвер. Все могло бы закончиться созданием сотен типов разных ПЗУ, каждое из которых предназначено для определенной видеокарты. Однако когда компания IBM проектировала свой первый персональный компьютер, она использовала другой подход. Она так сконструировала ПЗУ системной платы, чтобы оно сканировало все разъемы на предмет наличия в установленных картах расширения своих ПЗУ. Если такая плата обнаруживалась, программа, прошитая в ее ПЗУ, выполнялась на этапе изначальной загрузки компьютера, до загрузки операционной системы с диска.

Такое распределение BIOS позволяет избежать необходимости постоянно модернизировать системную BIOS при появлении новых моделей устройств, особенно устройств, используемых при начальной загрузке компьютера. Собственная BIOS, как правило, устанавливается на следующих платах.

■     Видеоадаптеры. Всегда имеют собственную микросхему BIOS.

■     Адаптеры SCSI. Эта BIOS не поддерживает все устройства SCSI, т.е. с диска необходимо загружать дополнительные драйверы для накопителей CD-ROM, сканеров и прочих устройств с интерфейсом SCSI. Большинство новых адаптеров SCSI поддерживают загрузку с накопителя SCSI CD-ROM, однако при загрузке с другого диска или устройства все равно понадобятся драйверы.

■     Сетевые адаптеры. Платы, поддерживающие загрузку непосредственно с файлового сервера; имеют так называемое загрузочное ПЗУ (Boot ROM) или модуль IPL ПЗУ (Initial program load — первоначальная загрузка системы), которые необходимы для начальной инициализации устройства либо нормального функционирования в бездисковых рабочих станциях или терминалах.

■     Платы контроллеров ATA или дисковода. Платы расширения, позволяющие подключить дополнительные устройства этого типа к материнской плате. BIOS материнской платы должны поддерживать загрузку с таких устройств.

■     Контроллеры RAID-массивов. Адаптеры, позволяющие подключить к материнской плате множество дисковых устройств и организовать их в виде единого массива. Такой способ подключения дисков повышает быстродействие системы и ее надежность за счет избыточности хранения данных. Системная BIOS должна допускать загрузку с таких устройств.

■     Платы Y2K. Платы, предназначенные для коррекции байта века в системной BIOS. Они содержат небольшой драйвер, который контролирует переход года с 99 на 00. Когда такой переход выполняется, байт века меняется с 19 на 20, корректируя тем самым так называемую ошибку 2000 года” в старых материнских платах.

BIOS и CMOS RAM

Иногда пользователи путают BIOS и CMOS RAM. Причиной путаницы является то, что программа настрой-ки BIOS используется для установки и хранения параметров конфигурации в CMOS RAM. Следует заметить, что это совершенно разные компоненты.

Обычно BIOS находится в отдельной микросхеме системной платы. Кроме того, на системной плате расположена так называемая микросхема RTC/NVRAM, содержащая часы истинного времени и энергонезависимую память. По сути, эта микросхема представляет собой цифровой датчик времени с несколькими дополнительными байтами памяти. Обычно она называется CMOS-микросхемой, поскольку создана на основе комплементарных металлооксидных полупроводников (Complementary Metal-Oxide Semiconductor - CMOS).

Микросхема Motorola MC146818, использованная впервые в качестве RTC/NVRAM, содержала 64 байт памяти, из которых 14 байт были выделены для функционирования часов. Несмотря на то что она называется энергонезависимой, при отсутствии электроснабжения параметры времени/даты и данные, находящиеся в памяти, уничтожаются. Микросхема, созданная на основе технологии Complementary Metal-Oxide Semiconductor (CMOS), имеет пониженное потребление электроэнергии, и для нее вполне достаточно мощности батареи компьютера. Именно поэтому микросхема называется CMOS RAM, хотя с технической точки зрения ее следовало бы назвать микросхемой RTC/NVRAM. Сила тока, потребляемого большинством микросхем RTC/NVRAM, не превышает одного микроампера (миллионной доли ампера), поэтому для их работы достаточно одной небольшой батареи. В течение последних пяти лет для этого использовалась литиевая батарея, при выходе из строя которой вся хранимая в микросхеме информация разрушалась. При загрузке программы BIOS Setup и последующем конфигурировании/сохранении параметров жесткого диска или других устройств установочные параметры системы записываются в соответствующую область памяти RTC/NVRAM (или CMOS RAM). При каждой загрузке системы для определения ее конфигурации проводится считывание параметров, хранящихся в микросхеме CMOS RAM. Несмотря на наличие определенной связи между BIOS и CMOS RAM, это абсолютно разные компоненты.

Некоторые системы использовали особые версии этой микросхемы, выпускаемые компаниями Dallas Semiconductor, Benchnarq и Odin (например, DS12885 и DS12887), которые объединяли в одном компоненте батарею и RTC/VNRAM, однако сегодня эти модули не так широко распространены. Несмотря на то что компонент CMOS RAM свой путь начинал с отдельной микросхемы, сейчас его функции включаются в южный мост или микросхему Super I/O набора микросхем системной логики.

Обсудить статью на форуме


Если прочитаная статья из нашей обширной энциклопедия компьютера - "Основы BIOS .Аппаратная и программная части BIOS", оказалась полезной или интересной, Вы можете поставить закладку в социальной сети или в своём блоге на данную страницу:

Так же Вы можете задать вопрос по статье через форму обратной связи, в сообщение обязательно указывайте название или ссылку на статью!
   


Copyright © 2008 - 2019 Дискета.info