Прежде всего, BIOS включает драйвер для вашего встроенного контроллера AHCI. И в случае, если контроллер находится не на плате, а на плате PCI, карта предоставит дополнительное ПЗУ PCI, содержащее драйвер BIOS для контроллера.
Если ваша прошивка поддерживает UEFI, она (или дополнительное ПЗУ) также будет включать в себя драйвер UEFI для контроллера.
То же самое верно для всех других компонентов, с которых может загружаться ваш компьютер (например, обычно USB, CD-ROM, проводная сеть). Другие компоненты обычно вообще не имеют драйверов BIOS/UEFI.
Операционные системы могут использовать драйверы BIOS или UEFI (например, DOS или Windows 95), но большинство современных операционных систем пытаются избежать хлопот и обходят ограничения драйверов BIOS и вместо этого используют свой собственный формат драйверов.
Общие ограничения драйверов BIOS:
- обычно плохая производительность чтения и даже более низкая производительность записи
- поддерживается только если активирован только первый процессор / ядро
- работает только в 16-битном режиме (что подразумевает однозадачность и 640 КБ адресуемой памяти)
- работает только в том случае, если очищен шлюз A20 (что означает адресную память 1 МБ)
Это означает, что во время загрузки современным ОС придется многократно переключаться между 16-битным и 32-битным /64-битным однозадачным режимом и многократно переключать шлюз A20 до тех пор, пока они не прочитают ядро ОС и, по крайней мере, драйвер диска в высокий уровень. память (640K сегодня обычно недостаточно); затем они переключатся в многозадачный режим и продолжат загрузку остальной части ОС, используя загруженное ядро и драйвер диска.
Ограничения UEFI менее серьезны (драйверы UEFI работают в 64-битном режиме, но все еще требуют однозадачного режима и активировано только одно ядро), но все еще достаточно плохие, так что я не знаю ни одной ОС, которая пытается использовать драйверы UEFI после загрузки - и это, вероятно, также причина, по которой никто не писал веб-браузер для чистого UEFI (веб-браузеры по своей природе многопоточные, и было бы сложно написать хорошо работающий однопоточный веб-браузер).