link0 link1 link2 link3 link4 link5 link6 link7 link8 link9 link10 link11 link12 link13 link14 link15 link16 link17 link18 link19 link20 link21 link22 link23 link24 link25 link26 link27 link28 link29 link30 link31 link32 link33 link34 link35 link36 link37 link38 link39 link40 link41 link42 link43 link44 link45 link46 link47 link48 link49 link50 link51 link52 link53 link54 link55 link56 link57 link58 link59 link60 link61 link62 link63 link64 link65 link66 link67 link68 link69 link70 link71 link72 link73 link74 link75 link76 link77 link78 link79 link80 link81 link82 link83 link84 link85 link86 link87 link88 link89 link90 link91 link92 link93 link94 link95 link96 link97 link98 link99 link100 link101 link102 link103 link104 link105 link106 link107 link108 link109 link110 link111 link112 link113 link114 link115 link116 link117 link118 link119 link120 link121 link122 link123 link124 link125 link126 link127 link128 link129 link130 link131 link132 link133 link134 link135 link136 link137 link138 link139

PersCom — Компьютерная Энциклопедия Компьютерная Энциклопедия

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. Операционная система или приложение при взаимодействии с каким-либо устройством (например, при необходимости считать данные с компакт-диска) обращается к определенному программному прерыванию, после чего в соответствии с таблицей векторов прерываний вызов направляется к определенной части 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) уже находятся в оперативной памяти. Основные функции ПЗУ материнской платы — запуск системы, инициализация необходимых для загрузки системы устройств, а также проверка пароля для входа в систему и выполнение базовой настройки устройств. После загрузки системы управление передается загруженному в память набору драйверов.

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

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

 

Операционная система, в свою очередь, через 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.

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



Системная BIOS

Во всех системных платах есть микросхема, в которой записано программное обеспечение, называемое BIOS или ROM BIOS. Эта микросхема содержит стартовые программы и драйверы, необходимые для запуска системы и функционирования основного аппаратного обеспечения. В ней также содержатся процедура POST (самотестирование при включении питания) и данные системной конфигурации. Все эти параметры записаны в CMOS-память, которая питается от литиевой батарейки, установленной на системной плате. Эту энергонезависимую память часто называют NVRAM (Non-Volatile RAM).

Таким образом, BIOS представляет собой комплект программ, хранящихся в одной или нескольких микросхемах. Эти программы выполняются при запуске компьютера до загрузки операционной системы. BIOS в большинстве PC-совместимых компьютеров выполняет четыре основные функции.

  • POST — самотестирование при включении питания процессора, памяти, набора микросхем системной логики, видеоадаптера, контроллеров диска, дисковода, клавиатуры и других жизненно важных компонентов системы.
  • Настройка BIOS — конфигурирование параметров системы. Эта программа запускается при нажатии определенной клавиши (или комбинации клавиш) во время выполнения процедуры POST. Предлагая систему каскадных меню, эта программа позволяет настроить параметры материнской платы и набора микросхем системной логики, дату и время, пароль входа в компьютер, дисковые устройства и прочие важные компоненты. Также в ней настраиваются множитель частоты процессора, частота системной шины и последовательность устройств, используемых для загрузки системы. В старых компьютерах на базе процессоров 286 и 386 для запуска этой программы была необходима специальная дискета, а в некоторых современных системах настройку BIOS можно выполнять с помощью специализированных приложений Windows.
  • Загрузчик операционной системы — подпрограмма, выполняющая поиск действующего основного загрузочного сектора (Master Boot Record — MBR) на дисковых устройствах. При обнаружении такого сектора, соответствующего определенному минимальному критерию (его сигнатура должна заканчиваться байтами 55AAh), выполняется код начальной загрузки. Программный код MBR продолжает процесс загрузки, считывая первый физический сектор загрузочного тома, который представляет собой начало записи загрузки тома (Volume Boot Record — VBR). Посредством записи VBR загружается первый файл инициализации операционной системы, будь то Io.sys (DOS/Windows 9x/Me), ntldr (Windows NT/2000/XP) или bootmgr (Vista), которому передается управление загрузкой операционной системы.
  • BIOS — набор драйверов, предназначенных для взаимодействия операционной системы и аппаратного обеспечения при загрузке системы. При запуске DOS или Windows в режиме защиты от сбоев используются драйверы устройств только из BIOS; драйверы с диска практически не загружаются.



Производители ROM BIOS

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

На разработке PC-совместимых программ ROM BIOS специализируются такие компании, как American Megatrends, Inc. (AMI), Phoenix Software и Award Software (ныне принадлежит компании Phoenix Software). Изготовители системных плат получают от них лицензии на установку ROM BIOS, после чего могут работать над аппаратной частью, не занимаясь программным обеспечением. Для того чтобы установить на плату микросхему памяти ROM с записанной программой BIOS, разработчику приходится решать множество задач, связанных с устройством компьютера. Добиться совместимости ROM BIOS и системной платы — задача непростая. Универсальных микросхем ROM BIOS не существует. Компании AMI, Award, Microid Research и Phoenix поставляют различным изготовителям варианты BIOS, выполненные для конкретных материнских плат.

За последние несколько лет индустрия BIOS пережила серьезные изменения. Компания Intel — крупнейший заказчик микросхем BIOS — перешла от устройств Phoenix к AMI, затем снова к Phoenix и опять к AMI. До 1995 года в системных платах Intel устанавливалась BIOS компании Phoenix. После этого до 1997 года приоритет сместился к BIOS AMI и затем снова вернулся к Phoenix. Наконец, в 1999 году Intel в очередной раз перешла на использование продукции AMI. В любом случае Intel брала за основу ядро BIOS того или иного производителя, после чего модифицировала его для собственных нужд. Intel является крупнейшим производителем системных плат, поэтому используемая в них BIOS имеет большое значение для всей компьютерной индустрии. Одним словом, во многих продаваемых в настоящее время компьютерах установлены системные платы с BIOS AMI или Phoenix.

В середине 1998 года Phoenix перекупила компанию Award, и теперь разработанные ею новые программы будут продаваться под этими торговыми марками. Award BIOS теперь продается как стандартный продукт, в то же время Phoenix BIOS предназначена для высокопроизводительных систем верхнего ценового сегмента рынка. Таким образом, сегодня рынок BIOS большей частью поделен между двумя крупнейшими производителями — AMI и Phoenix, однако ведущей компанией в области разработки BIOS является Phoenix. Ею не только разрабатываются новые BIOS для компьютеров последних поколений, но и внедряются новые стандарты.

Еще одна современная тенденция характеризуется созданием отдельных моделей BIOS для настольных и мобильных систем, 32- и 64-разрядных серверов, а также для встроенных устройств. Все микросхемы BIOS в той или иной степени выполняют одинаковые функции, однако BIOS, оптимизированные для мобильных систем, поддерживают стыковочные модули и расширенное управление энергопитанием, в то время как серверные BIOS предоставляют функции мониторинга аппаратного обеспечения и 64-разрядных разъемов PCI. Создание специализированных версий BIOS для различных типов компьютеров позволяет реализовы вать функции, характерные для конкретных платформ, обеспечивая их лучшую производительность и надежность.



Обновление BIOS

Производители материнских плат адаптируют стандартную BIOS к конкретным аппаратным средствам. Именно этот факт создает проблемы при обновлении BIOS. BIOS обычно находится в одной (или нескольких) из микросхем материнской платы и содержит программный код, специфичный для модели и даже версии материнской платы. Таким образом, если возникла потребность в обновлении BIOS, нужно обращаться не к компании, выпустившей ее ядро (AMI или Phoenix), а к изготовителю материнской платы или компании, осуществляющей ее поддержку.

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

В частности, обновление ROM BIOS может понадобиться в следующих случаях:

  • при установке новых, более скоростных процессоров;
  • для поддержки загрузочных оптических устройств (называемых спецификацией El Torito);
  • для поддержки загрузочных устройств USB;
  • для ускорения теста POST;
  • для поддержки режимов ATA Ultra-DMA/100 и Ultra-DMA/133;
  • для поддержки устройств SATA в режиме ACHI;
  • при добавлении жестких дисков объемом более 8,4 или 137 Гбайт (48-разрядный режим LBA);
  • при добавлении или улучшении поддержки Plug and Play;
  • при исправлении ошибок, связанных с изменением системной даты в 2000 году и с високосными годами;
  • при исправлении известных ошибок или проблем совместимости с некоторыми аппаратными средствами и программным обеспечением;
  • при добавлении поддержки для системы управления режимом электропитания ACPI;
  • при добавлении/модификации функции контроля за температурным режимом процессора или работой вентилятора;
  • при установке старых устройств USB (клавиатуры и мыши);
  • при реализации технологии защиты от несанкционированного открытия системного блока;
  • для поддержки включения по запросу из сети или для загрузки из сети.

К основным требованиям стандарта PC 2001, опубликованного компаниями Intel и Microsoft, относится поддержка так называемой функции Fast POST. Эта функция подразумевает, что на загрузку системы, начиная от включения питания и заканчивая загрузкой файлов операционной системы, должно уходить не более 12 секунд (для систем, не использующих SCSI в качестве соединения основной памяти). В это время входит инициализация клавиатуры, видеоплаты и шины ATA. Системам, содержащим адаптеры со встроенной памятью ROM, даны дополнительные 4 секунды на каждую плату. Эта функция, получившая в Intel название Rapid BIOS Boot (RBB), поддерживается во всех системных платах компании, выпущенных после 2001 года. Некоторые из них позволяют выполнить загрузку системы менее чем за 6 секунд.

Если новое программное или аппаратное обеспечение установлено в строгом соответствиис приводимыми инструкциями, но все равно не работает, проблема может заключаться в BIOS, которую требуется обновить. Особенно это относится к современным операционным системам. Дело в том, что для поддержки устройств PnP и системы управления электропитанием ACPI, реализованных в Windows XP и Vista, BIOS старых материнских плат следует обновить. Так как эти проблемы специфичны для конкретных типов материнских плат, следует периодически заходить на сайт производителя и проверять наличие обновлений BIOS (там же можно узнать, какие именно проблемы решены в каждом из обновлений). Инсталляция несовместимого аппаратного и программного обеспечения может привести к нарушению работы компьютера, поэтому перед установкой такого оборудования, как процессоры, рекомендуется обновлять BIOS системной платы.

Для проверки совместимости установленной BIOS с современными технологиями можно воспользоваться утилитой BIOS Wizard, доступной на сайте eSupport.com.



Среда предварительной загрузки

Стандартная версия Phoenix FirstBIOS, а также версия Pro поддерживают стандартную среду предварительной загрузки с графическим интерфейсом пользователя, который позволяет работать с программой настройки BIOS, выполнять диагностику, запускать утилиту резервного копирования, а также полностью восстанавливать исходное состояние системы. Все эти приложения (за исключением BIOS Setup) сохраняются в защищенной области HPA — скрытом разделе, расположенном в конце жесткого диска. Количество и тип приложений, доступных при использовании среды предварительной загрузки, зависят от компании, которая занималась разработкой и производством компьютерной системы. На рисунке ниже представлен пример реализации Phoenix BIOS Pro компанией IBM/Lenovo. Для отображения данной оболочки достаточно нажать клавишу <Enter> при выполнении процедуры POST.

Среда предварительной загрузки с графическим интерфейсом пользователя может весьма пригодиться для восстановлении работоспособного состояния системы. Например, многие крупные OEM-производители компьютерных систем, прежде чем продавать компьютеры, устанавливают не только Windows, но и все выпущенные на текущий момент пакеты обновлений, а также драйверы устройств, уникальные для определенной конфигурации. После этого вносятся другие изменения, например рисунки рабочего стола, изменяется интерфейс, а также устанавливаются документация и утилиты, упрощающие работу с системой. И наконец, устанавливаются различные приложения, такие как DVD-плееры, офисные приложения и т.д.

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

Изначально для этого использовался скрытый раздел, который можно было по ошибке повредить или удалить с помощью специального программного обеспечения создания разделов, а также других утилит. В новых компьютерных системах все необходимые данные сохраняются в скрытой области HPA, для доступа к которой используются команды, определяемые стандартом PARTIES (Protected Area Run Time Interface Extension Services), поддерживаемым всеми жесткими дисками ATA-4 и более новых стандартов. Для того чтобы жесткий диск воспринимался операционной системой как диск меньшего объема, используется команда SET MAX ADDRESS. Многие производители компьютерных систем используют для размещения защищенной области HPA последние 3 Гбайт на жестком диске. Весь участок, который начинается с адреса, определяемого командой SET MAX ADDRESS, и заканчивается фактическим концом диска, считается областью HPA, доступ к которой возможен только с помощью команд PARTIES. Содержимое защищенной области HPA, а также структура жесткого диска, на котором она расположена, показаны на рисунке ниже

Область HPA оказывается более защищенной, чем скрытый раздел, поскольку любые данные, которые находятся “после конца” диска, просто недоступны для обычных приложений, а также специализированных утилит, таких как Partition Magic и Partition Commander. Единственный способ удалить защищенную область HPA — указать с помощью команды SET MAX ADDRESS адрес, соответствующий фактическому концу диска. Некоторым пользователям это действительно необходимо, поскольку восстановить систему можно и с помощью компакт-дисков (которые далеко не всегда поставляются вместе с современными компьютерами), а для диагностики можно воспользоваться специальными утилитами, записанными на дискете или загрузочном компакт-диске. Кроме того, если вы заменяете жесткий диск, можно временно отобразить область HPA, после чего скопировать ее на новый диск. Для установки области HPA на новом диске можно также воспользоваться компакт-дисками, поставляемыми вместе с компьютером.

Многие компьютеры, в которых используется Phoenix BIOS, поставляются со специальным программным обеспечением для восстановления и диагностики, записанным в области HPA, поскольку это является составной частью новой управляемой среды Phoenix BIOS (cME), которая используется многими крупными производителями настольных и портативных систем начиная с 2003 года.



Подкатегории