Как BIOS управляет устройствами ввода-вывода без каких-либо драйверов?
Например, как отображается изображение во время загрузки компьютера, если в BIOS нет драйверов для видеокарты.
Существует ли какой-то универсальный драйвер, который является стандартным для всех BIOS и аппаратного обеспечения, который позволяет BIOS выполнять основные функции независимо от того, какое оборудование установлено.
Любая помощь будет оценена.
Спасибо.
Do you have a specific problem your trying to solve?
Да, они пытаются решить проблему поиска ответа на заданный вопрос. ¬_¬Ответы:
Стандарты. Все компоненты реализуют базовый интерфейс, и BIOS запрограммирован на его использование. Конечно, поскольку это базовый интерфейс (это то, что означает «B» в BIOS), он не может использовать все возможности аппаратного обеспечения; это остается за программным обеспечением для реализации через драйверы, которые могут напрямую обращаться к оборудованию.
Первоначально производители BIOS создали набор API-интерфейсов, которые устройства должны были использовать, если они хотели быть совместимыми. Они делали это с помощью « прерываний », что позволяет устройству прерывать программу, чтобы дать ей понять, что что-то произошло, и наоборот.
В случае отображения перед загрузкой в прошивке видеоадаптера реализована VESA (Ассоциация стандартов видеоэлектроники), которая была создана для упрощения доступа к оборудованию дисплея. BIOS знает, как получить доступ к видео-оборудованию, используя стандартные функции. Это похоже на то, как DirectX был реализован как высокоуровневый API для аппаратного обеспечения, поэтому программистам не приходилось учитывать каждую аппаратную конфигурацию.
Вроде. Это не драйвер, а стандартный API ; набор функций программирования, которые можно использовать для выполнения основных задач, таких как инициализация устройства или ввод и вывод данных.
Если производители хотят продавать свои продукты, им необходимо убедиться, что они хотя бы реализуют стандартные API, чтобы они были совместимы. Таким образом, система может обнаруживать оборудование, а в случае устройств, критичных к загрузке, они могут обращаться к ним на базовом уровне, пока не будет загружен программный драйвер, который знает, как получить к ним полный доступ.
источник
BIOS в ПК должен был выполнять функцию, аналогичную BIOS в 8-битной системе CP / M, популярной до того, как ПК вступил во владение в середине 80-х годов. BIOS должен был содержать минимальный загрузчик и аппаратно-зависимые низкоуровневые подпрограммы для ввода и вывода нескольких устройств (экран, диск, лента, COM-порт). Знания для этого были встроены в ПЗУ - драйвера не нужны, и, разумеется, дополнительное ПЗУ не поддерживается. (Такие вещи, как управление питанием и ACPI появились намного позже, в 90-х, после того, как ПК зарекомендовал себя как повсеместная платформа.)
(«Файловая система» CP / M находилась в компоненте, загруженном с диска, называемого BDOS - аналогично, знание файловой системы FAT и ее интерфейсов находится (по крайней мере, в одном из) двух скрытых файлов MSDOS.SYS или IO.SYS - не является частью ПЗУ BIOS.)
Однако ... BIOS ПК, в отличие от CP / M, поддерживал понятие «Option ROMS», которое могло быть включено в карту расширения. Так что был как минимум минимальный механизм для расширения BIOS. Видеокарты, начинающиеся с CGA (MDA, предшественник CGA, возможно, сделал это тоже), имели бы дополнительное ПЗУ, которое расширяло или добавляло функции ввода / вывода к интерфейсу BIOS. (Вот почему вы видите сообщение NVidia до того, как загрузится ваш BIOS.) Как и жесткие контроллеры и карты SCSI. Все это до сих пор. Многие старые сетевые карты имеют разъем для загрузочного ПЗУ.
Помните также, что производители клонов ПК, возникшие в 80-х годах, очень быстро решили не предоставлять только совместимый интерфейс BIOS, но в итоге вынуждены были копировать платформу ПК в целом, включая все низкоуровневое оборудование, такое как микросхема таймера. контроллер прерываний и т. д. (Это было относительно легко, поскольку мало что было в собственности IBM.) Это происходило из-за того, что BIOS не торопился, и программисты обращались к оборудованию напрямую, особенно для игр.
Таким образом, между дополнительными ПЗУ и этим консенсусом стандартного оборудования, которое формирует платформу ПК, а также тем фактом, что он поддерживается обратной совместимостью на протяжении всей эволюции ПК, что-то желающее использовать дисплей без драйвера может:
Все аппаратные средства отображения ПК все еще работают в «VGA-совместимом» режиме после загрузки. Оригинальный адаптер IBM VGA имел режимы, совместимые с более ранними картами EGA, CGA и MDA. Все это означает, что что-то, работающее из BIOS или из-за пределов ОС, может предполагать, что оно все еще может считывать и записывать ту же память, подключенную к дисплею, что и в 1985 году, в соответствии с соглашением.
источник