Базовая система ввода-вывода: BIOS ПК

     Базовая система ввода-вывода: BIOS ПК

     1. Составные части BIOS.  

      BIOS - Базовая система ввода-вывода (Basic Input Output System) называется так потому, что включает в себя обширный набор программ ввода-вывода, благодаря которым операционная система и прикладные программы могут взаимодействовать с различными устройствами как самого компьютера, так и подключенными к нему.  

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

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

       Заметим, что система BIOS помимо  программ взаимодействия с аппаратными  средствами на физическом уровне  содержит программу тестирования  при включении питания компьютера POST (Power-On-Self-Test, Самотестирование при включении питания компьютера). Тестируются основные компоненты, такие как процессор, память, вспомогательные микросхемы, приводы дисков, клавиатура и видеоподсистема. Если при включении питания компьютера возникают проблемы (BIOS не может выполнить начальный тест), вы услышите последовательность звуковых сигналов:  

       Код сигнала  Значение 

      1  Ошибка регенерации DRAM 

      2  Отказ схемы четности 

      3  Отказ базового ОЗУ 64 Кб 

      4  Отказ системного таймера 

      5  Отказ процессора 

      6  Ошибка адресной линии A20 контроллера клавиатуры 

      7  Ошибка исключения виртуального  режима Virtual Mode Exception 

      8  Ошибка теста чтения, записи  памяти дисплея 

      9  Ошибка контрольной суммы  ROM-BIOS  

       Если вы сталкиваетесь с чем-либо  подобным, существует высокая вероятность  того, что эта проблема связана  с аппаратными средствами. Система  BIOS в PC реализована в виде одной  микросхемы, установленной на материнской  плате компьютера. Заметим, что название ROM BIOS в настоящее время не совсем справедливо, ибо - предполагает использование постоянных запоминающих устройств (ROM - Read Only Memory), а для хранения кодов BIOS в настоящее время применяются в основном перепрограммируемые (стираемые электрически или с помощью ультрафиолетового излучения) запоминающие устройства.  

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

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

       Наиболее известные из этих  фирм три: American Megatrends Inc. (AMI), Award Software и Phoenix Technologies. Заметим, что конкретные версии BIOS неразрывно связаны с набором микросхем (chipset), используемым на системной плате. Кстати, компания Phoenix Technologies считается пионером в производстве лицензионно-чистых BIOS. Именно в них впервые были реализованы такие функции, как задание типа жесткого диска, поддержка привода флоппи-дисков емкостью 1,44 Мбайта и т.д.  

       Более того, считается, что процедура  POST этих BIOS имеет самую мощную  диагностику. Справедливости ради  надо отметить, что BIOS компании AMI наиболее распространены. По некоторым  данным, AMI занимает около 60% этого  сегмента рынка.  

       Кроме того, из программы Setup AMI BIOS можно вызвать несколько утилит для тестирования основных компонентов системы и работы с накопителями. Однако при их использовании особое внимание следует обратить на тип интерфейса, который использует привод накопителя.  

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

       Своим названием SMOS RAM обязана  тому, что эта память выполнена  на основе КМОП-структур (CMOS-Complementary Metal Oxide Semiconductor), которые, как известно, отличаются малым энергопотреблением. Заметим, что CMOS-память энергонезависима только постольку, поскольку постоянно подпитывается, например, от аккумулятора, расположенного на системной плате, или от батареи гальванических элементов, как правило, смонтированной на корпусе системного блока. Заметим, что большинство системных плат допускают питание CMOS RAM как от встроенного, так и от внешнего источника.  

       Заметим, что в случае повреждения  микросхемы CMOS RAM (или разряде батареи  или аккумулятора) программа Setup имеет возможность воспользоваться некой информацией по умолчанию (BIOS Setup Default Values), которая хранится в таблице соответствующей микросхемы ROM BIOS. Кстати, на некоторых материнских платах питание микросхемы CMOS RAM может осуществляться как от внутреннего, так и от внешнего источника. Выбор определяется установкой соответствующей перемычки.  

       Программа Setup поддерживает установку нескольких режимов энергосбережения, например Doze (дремлющий), Standby (ожидания, или резервный) и Suspend (приостановки работы). Данные режимы перечислены в порядке возрастания экономии электроэнергии. Система может переходить в конкретный режим работы по истечении определенного времени, указанного в Setup. Кроме того, BIOS обычно поддерживает и спецификацию АРМ (Advanced Power Management).  

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

       Напомним, что задание полной  конфигурации компьютера осуществляется  не только установками из программы  Setup, но и замыканием (или размыканием) соответствующих перемычек на системной плате. Назначение каждой из них указано в соответствующей документации.

     2. Настройка CMOS.  

       Изменение установок в CMOS через  программу SETUP. Чаще всего SETUP может  быть вызван нажатием специальной комбинации клавиш (DEL, ESC, CTRL-ESC, или CRTL-ALT-ESC) во время начальной загрузки (некоторые BIOS позволяют запускать SETUP в любое время, нажимая CTRL-ALT-ESC). В AMI BIOS, чаще всего, это осуществляется нажатием клавиши DEL (и удержанием ее) после нажатия кнопки RESET или включения ЭВМ.  

      STANDARD CMOS SETUP.  

     Стандартные предустановки CMOS:  

       Date (mn/date/year) - для изменения даты в системных часах. 

       Time (hour/min/sec) - для изменения времени в системных часах. 

       Hard disk C: (Жесткий Диск C:) - Номер вашего первичного (главного) жесткого диска. 

       Cyln - Число цилиндров на вашем жестком диске. 

       Head - число головок. Wpcom - предкомпенсация при записи. 

       Lzone - адрес зоны парковки головок. 

       Sect - Число секторов на дорожку. 

       Size - объем диска. Автоматически вычисляется согласно числу цилиндров, головок и секторов. Выражается в мегабайтах. 

       Floppy drive A (дисковод для дискет A) - устанавливается тип дисковода для дискет, который будет использоваться в качестве привода A. 

       Floppy drive B (тип дисковода B) - аналогично предыдущему. 

       Primary display (Первичный дисплей) - Тип стандарта отображения, который вы используете. 

       Keyboard (Клавиатура): Installed-установлена. Если изменить на "not installed", эта опция укажет BIOS на отмену проверки клавиатуры во время стартового теста, что позволяет перезапускать PC с отключенной клавиатурой (файл-серверы и т.п.) без выдачи сообщения об ошибке теста клавиатуры.  

      ADVANCED CMOS SETUP.  

     Дополнительные  предустановки.  

       Typematic Rate Programming - программирование скорости автоповтора нажатой клавиши. По умолчанию - Disabled.Следующие два пункта определяют, как программируется клавиатура.  

       Typematic Rate Delay (msec) - задержка автоповтора, начальное значение: 500 мс. Начальная задержка перед стартом автоповтора символа, т.е., сколько времени вы должны удерживать клавишу нажатой, чтобы ее код начал повторяться.  

       Typematic Rate (Chars/Sec) - частота автоповтора (символов в секунду). Начальное значение: 15.  

       Memory Test Tick Sound - щелчок при прохождении теста памяти. Рекомендуется устанавливать Enabled для того, чтобы слышать, что процесс загрузки выполняется нормально.  

       Memory Parity Error Check - проверка ошибок четности памяти. Рекомендуется установить Enabled. Дополнительная возможность проверки бита ошибки в памяти. Все (или почти все) PC проверяют память во время работы. Каждый байт памяти имеет дополнительный девятый разряд, который при каждом обращении к ОЗУ по записи устанавливается таким образом, чтобы общее число единиц было нечетным. При каждом обращении по чтению проверяется признак нечетности. При обнаружении ошибки возникает немаскируемое прерывание NMI, которое вы не можете заблокировать. ЭВМ прекращает работу и на экране отображается сообщение об ошибке ОЗУ обычно в виде сообщения вида: PARITY ERROR AT 0AB5:00BE SYSTEM HALTED.  

       Wait for If Any Error-ждать нажатия F1 в случае любой ошибки. Когда при начальной загрузке обнаруживается ошибка, PC просит вас нажать F1-только в случае не фатальных ошибок. Если установлено в Disabled - система печатает предупреждение и продолжает загрузку без ожидания нажатия клавиши. Рекомендуется устанавливать Enabled.  

       System Boot Up Num Lock-включение дополнительной клавиатуры при загрузке в цифровой режим. Определяет, будет ли включен режим NumLock при начальной загрузке ЭВМ. Одним это нравится, другим - нет.  

       Floppy Drive Seek at Boot - поиск на флоппи-диске при загрузке. Рекомендуется устанавливать в Disabled для более быстрой загрузки и для уменьшения опасности повреждения головок.  

       System Boot Sequence-последовательность начальной загрузки системы - на каком дисководе вначале искать ОС. Для более быстрой загрузки рекомендуется C:,A: - этот же метод пригоден и для того, чтобы посторонние не могли загрузить ваш компьютер с дискеты, если ваш autoexec.bat начинается с процедуры доступа к системе.  

       Установка A:,C: нужна в том случае, если пользователь не знает,  как ему сконфигурировать CMOS - иначе  при какой-либо неудаче большинство  пользователей не будут знать,  что им делать, если невозможно  загрузиться с дискеты. Однако, следует быть внимательным - вам следовало бы знать, что эта установка включается и отключается и быть готовым к этому - если дорожка с начальным загрузчиком на вашем жестком диске будет повреждена (но не будет полностью отсутствовать), вы сможете загрузиться с дискеты. Аналогично, легко обмануться, считая, что вы загружаетесь с дискеты, заведомо чистой от вирусов, в то время как на самом деле загрузка происходит с инфицированного жесткого диска.  

       External Cache Memory - внешняя кэш-память. Устанавливается Enabled, если имеется кэш-память. Одна из наиболее часто встречающихся ошибок при работе с CMOS SETUP - если при наличии кэш-памяти вы блокируете ее. Производительность системы при этом значительно падает. Это - кэш между CPU и системной шиной. При установке Enabled и отсутствии реально установленной кэш-памяти система будет "заморожена" большую часть времени.  

       Password Checking Option - опция проверки пароля. Установка пароля на доступ к системе или к меню SETUP. Рекомендуется в тех случаях, когда ЭВМ используется совместно несколькими пользователями, и вы не хотите, чтобы кто-то (друзья, сестра и т.д.) изменяли установки BIOS.  

       BootSector Virus Protection - защита сектора загрузки от вирусов. В действительности это не совсем защита от вирусов. Все, что эта функция делает - всякий раз, когда к сектору начальной загрузки обращаются по записи, выдает предупреждение на экран и позволяет вам либо разрешить запись, либо запретить ее.  

     AUTO CONFIGURATION WITH BIOS DEFAULTS.  

     Авто  конфигурация со значениями BIOS по умолчанию.  

       Значения BIOS по умолчанию - те, которые  установлены в качестве начальных для вашей системной платы и CHIPSET'а. Дают приемлемую возможность прохождения стартового теста. Как правило, являются неплохими начальными значениями перед точной настройкой вашей системы. Если вы допустили какую-либо ошибку и не знаете, какую именно - выберите этот пункт. Опция заменит ваши установки в BIOS на исходные, и вы сможете начать все сначала. От вас требуется точное знание конфигурации вашей системы. Эта опция *НЕ МЕНЯЕТ* ни системную дату, ни конфигурацию жесткого диска и флоппи-дисководов в стандартном CMOS SETUP - поэтому вы можете ожидать, что большинстве случаев ваша система загрузится без проблем после выбора данной опции.  

     CHANGE PASSWORD.  

     Изменение пароля.  

       Дает вам возможность сменить  активный пароль. По умолчанию  никакой пароль не устанавливается.  Предупреждение: не забывайте ваш  пароль! Запишите его где-то! спросите  себя: действительно ли мне *нужен*  пароль для доступа к моей  системе и/или BIOS? (настолько ли  опасны для нее ваши брат/сестра/дети/посетители?) Если защита не представляет  для вас существенного интереса - отключите ее, установив в Disabled!  

     Auto Detect Hard Disk.  

     Автообнаружение жесткого диска.  

       Удобная опция, когда вы "забыли" спецификации вашего жесткого  диска. BIOS самостоятельно определит  количество цилиндров, головок  и секторов на вашем жестком  диске. Иногда эта опция находится  в главном меню.  

     WRITE TO CMOS AND EXIT.  

     Запись  в CMOS и выход.  

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

     DO NOT WRITE TO CMOS AND EXIT.  

     Выход без записи в CMOS.  

       Если вы не уверены в сделанных  изменениях, используйте эту опцию  для безопасного выхода из SETUP. 
 

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

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

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

     Стандартная PC-совместимая система состоит из нескольких слоев, которые связаны между собой (рис.). 

     . 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

     платы обновления IDE или дисковода — для поддержки функции загрузочного устройства при запуске системы;

     BIOS и CMOS RAM 

     Иногда  пользователи путают BIOS и CMOS RAM системы. Причиной путаницы является то, что программа Setup BIOS используется для установки и хранения параметров конфигурации в CMOS RAM. Следует заметить, что это, фактически, совершенно разные компоненты. Обычно BIOS находится в отдельной микросхеме системной платы. Кроме того, на системной плате расположена так называемая микросхема RTC/NVRAM, содержащая в себе часы истинного времени и энергонезависимую память. По сути, эта микросхема представляет собой цифровой датчик времени с несколькими дополнительными байтами памяти. Обычно она называется CMOS-микросхемой, поскольку создана на основе комплементарных металло-оксидных полупроводников (complementary metal-oxide semiconductor — CMOS). 

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

     Системная BIOS 

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

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

     POST — самотестирование при включении питания процессора, памяти, набора микросхем системной логики, видеоадаптера, контроллеров диска, дисковода, клавиатуры и других жизненно важных компонентов системы. Программа установки параметров BIOS (Setup BIOS) — конфигурирование параметров системы. Эта программа запускается при нажатии определенной клавиши (или комбинации клавиш) во время выполнения процедуры POST. В старых компьютерах на базе процессоров 286 и 386 для запуска этой программы необходима специальная дискета. Загрузчик операционной системы — подпрограмма, выполняющая поиск действующего основного загрузочного сектора на дисковых устройствах. При обнаружении сектора, соответствующего определенному минимальному критерию (его сигнатура должна заканчиваться байтами 55AAh), выполняется код начальной загрузки. Эта программа загружает загрузочный сектор операционной системы, который, в свою очередь, загружает файлы ядра операционной системы. BIOS — набор драйверов, предназначенных для взаимодействия операционной системы и аппаратного обеспечения при загрузке системы. При запуске DOS или Windows в режиме защиты от сбоев используются драйверы устройств только из BIOS.

     Память  EEPROM, или Flash ROM 

     Это более новый тип памяти ROM — электронно-стираемая программируемая постоянная память. Данные микросхемы также называются Flash ROM, и их можно перепрограммировать, не снимая с платы, на которую они установлены, без специального оборудования. Используя Flash ROM, можно стирать и перепрограммировать ROM непосредственно на системной плате, не удаляя микросхему из системы и даже не открывая системного блока! Для перепрограммирования не требуется устройство стирания ультрафиолетовым облучением или какое-либо иное программирующее устройство. 

     Flash ROM можно узнать по номеру 28xxxx или 29xxxx и отсутствию окна в микросхеме. При наличии Flash ROM на системной плате можно легко модернизировать ROM, не меняя микросхемы. В большинстве случаев достаточно загрузить модифицированную программу, полученную с Web-сервера изготовителя системной платы, а затем запустить программу модификации. 

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

Базовая система ввода-вывода: BIOS ПК