Программу BIOS Setup (CMOS Setup) многие называют просто BIOS, что не только неверно как в техническом, так и в историческом плане, но и даже не может быть использовано в качестве сокращения, так как BIOS — Basic Input/Output System — переводится с английского как базовая система ввода-вывода и является иным понятием. Вопреки распространенному заблуждению BIOS и BIOS Setup появились не одновременно с IBM PC. Первая была создана раньше первого персонального компьютера IBM, а вторая — позже.
Как известно, любая вычислительная система состоит из аппаратного и программного обеспечения. И BIOS, и BIOS Setup, безусловно, относятся к ПО, но к такому, которое ближе всего к «железу». BIOS обязательно включает в себя драйверы стандартного набора устройств, позволяющие прикладным программам единообразно обращаться к ресурсам компьютеров с различной аппаратной конфигурацией, и программу «инициализации», призванную оживить машину после включения. Благодаря драйверам прикладным программам не приходилось «задумываться» о том, что именно выполняет, скажем, опрос клавиатуры — центральный процессор (например, в компьютерах ZX Spectrum, «Радио РК-86») или специализированный контроллер (в частности, в IBM PC), или о том, каков тип контроллера дисплея или дисковода. А программа «инициализации» приводила в исходное состояние набор констант драйверов, а также в зависимости от конфигурации ПК загружала подходящие операционную систему (IBM PC XT, IBM PC AT), интерпретатор языка программирования, дополненный набором команд управления обменом с магнитофоном (ZX Spectrum, IBM PC), или системный монитор, обеспечивающий самый минимум пользовательских функций («Радио РК-86»).
Одна из первых ОС для 8-разрядных персональных компьютеров CP/M-80 состояла из трех частей: BIOS, обеспечивающей ввод с клавиатуры, вывод на экран и чтение-запись сектора 8- или 5-дюймовой дискеты; BDOS — ядра ОС, поддерживающего файловые функции; CCP — процессора консольных команд, позволяющего пользователю управлять компьютером с помощью командной строки. Первым персональным компьютером с открытой архитектурой стал IBM PC. Более того, разработчики, стремясь увеличить популярность «персоналки», тщательно документировали как BIOS, так и аппаратную конфигурацию, вследствие чего значение драйверов BIOS существенно уменьшилось. Когда распределение адресов портов стало фиксированным, определились типы контроллера дисплея и клавиатуры, а структура видеопамяти была стандартизирована, то обращение прикладных программ к ресурсам компьютера через BIOS оказалось необязательным. Например, аккуратно введенная компанией IBM в BIOS функция рисования точки использовалась настолько редко, что в разработанном позднее расширении VideoBIOS (VESA) ее поддержка вообще была объявлена необязательной.
Иногда BIOS называют операционной системой, что также неверно. Ее основная задача заключается в том, чтобы дать возможность прикладным программам абстрагироваться от аппаратных особенностей конкретного компьютера, например от типа жесткого диска. Цель же ОС — «отойти» от низкоуровневого распределения ресурсов, например дискового пространства. BIOS современных компьютеров записана во флэш-память — разновидность перепрограммируемого ПЗУ, но скорость доступа к такой памяти низка, и потому для ускорения работы, как правило, производится перезапись содержимого флэш в оперативную память.
Загрузка ОС начинается в реальном (16-разрядном) режиме, на работу в котором настроено и большинство драйверов BIOS, именно через BIOS работает, в частности, MS DOS. Но большинство операционных систем функционируют в защищенном режиме, и поэтому они обычно вообще отключают драйверы BIOS и используют собственные драйверы защищенного режима, чему способствует также и стандартизация аппаратной части IBM PC-совместимого компьютера.
Сейчас интерпретатор Бейсика или монитор консольных команд в микросхеме ROM BIOS уже не размещают, но теперь там присутствуют другие программы, например POST и BIOS Setup. Программа тестирования работоспособности аппаратуры компьютера POST (Power On Self Test) начинает действовать сразу же после включения питания и до загрузки ОС. Такая процедура весьма актуальна для компьютера с открытой архитектурой. В случае возникновения неисправности пользователю каким-либо способом выдается сообщение: надписью на экране, гудками из динамика, цифрами на специальном табло или даже человеческим голосом, заранее записанным в микросхему flash-памяти.
Программа BIOS Setup появилась не сразу. Собственно, компьютер с открытой архитектурой не может обойтись без функции настройки набора драйверов на имеющуюся аппаратуру. В IBM PC и IBM PC XT, строго говоря, BIOS Setup также была, но... в аппаратном виде, а именно в виде набора dip-переключателей, с помощью которых устанавливались объем оперативной памяти, типы дисководов и жестких дисков, наличие математического сопроцессора и др. В IBM PC AT (286) было введено новшество — встроена микросхема, выполненная по технологии КМОП (CMOS), питавшаяся от батарейки. Ее функциональную основу составляли часы-календарь, так что при перезагрузке ПК больше не требовалось каждый раз вводить дату и время. Кроме того, микросхема содержала несколько десятков однобайтовых ячеек памяти, которые было решено использовать вместо dip-переключателей для хранения сведений об особенностях аппаратной конфигурации.
Считывать информацию из этих ячеек, как и с dip-переключателей, могла, естественно, сама BIOS, а вот для записи понадобилась специальная утилита, и ее назвали BIOS Setup. Первоначально эти утилиты поставлялись на дискете с каждым компьютером так же, как сейчас почти все драйверы даются на CD-ROM. Но поскольку производители использовали отдельные ячейки в различных целях, программа для одного компьютера могла «испортить» установки другого. А порой невозможно было загрузить программу с дискового накопителя, если последний становился недоступен вследствие порчи содержимого ячейки с данными о нем, скажем, из-за выхода батарейки из строя. Поэтому на модели AT386 и поздних AT286 стали располагать BIOS Setup уже в той же микросхеме, что и саму BIOS. Чтобы запустить эту программу, нужно было нажать определенную комбинацию клавиш (обычно клавишу ) после прохождения POST, а в эпоху безраздельного господства текстового режима — нередко и в любое другое время. Если же в машине установлены RAID- или SCSI-контроллеры, то они, как правило, содержат собственные утилиты конфигурации RAID Setup или SCSI Setup, также вызываемые в процессе загрузки компьютера определенной комбинацией клавиш.
Число ячеек КМОП-памяти не может превышать 114, так как на номер отводится 7 бит, а первые 14 адресов заняты часами. Значит, если программе BIOS Setup требуется хранить большее количество информации, часть сведений может размещаться во flash-памяти. А вот количество установок, которые нужно сохранять, увеличилось по сравнению со временем появления первых программ BIOS Setup в несколько раз. Теперь эта программа должна помочь решить несколько задач: настроить установки в соответствии с имеющейся аппаратной конфигурацией, добиться максимальных производительности и устойчивости системы, получить информацию о состоянии последней, а также обеспечить защиту паролем.
Продолжение в следующем номере.
Parhaat 15-vuotisonnittelut PC World Russialle!
Kari Tyllila, MikroPC Suomi — Finland
Примите наилучшие пожелания с 15-летием «Мира ПК»!
Kari Tyllila, MikroPC Финляндия
Содержимое ячеек CMOS (КМОП)
Номер ячейки | Содержимое ячейки |
00h | Текущее время - секунды |
01h | Будильник - секунды |
02h | Текущее время - минуты |
03h | Будильник - минуты |
04h | Текущее время - часы |
05h | Будильник - часы |
06h | Текущий день недели |
07h | Текущая дата |
08h | Текущий месяц |
09h | Текущий год |
0Ah-0Dh | Регистры состояния |
0Eh | Байт диагностики состояния |
0Fh | Байт статуса выключения |
10h | Тип дисководов |
11h | Зарезервировано |
12h | Тип жестких дисков (если до 15) |
13h | Зарезервировано |
14h | Байт оборудования |
15h-16h | Объем оперативной памяти (нижней) |
17h-18h | Объем памяти выше 1 Мбайт |
19h | Тип диска C (если больше 15) |
1Ah | Тип диска D (если больше 15) |
1Bh-2Dh | Зарезервировано |
2Eh-2Fh | Контрольная сумма ячеек с 10h по 20h |
30h-31h | Объем памяти выше 1 Мбайт ("зеркало" ячеек 17h - 18h) |
32h | Текущий век |
33h | Смешанная информация |
34h-3Fh | Зарезервировано |
40-7Fh | Производитель может использовать на свое усмотрение |