Как BIOS считывает данные с флэш-накопителя без предварительной установки драйвера?

Как BIOS считывает данные с флэш-накопителя без предварительной установки драйвера?

Всякий раз, когда мы подключаем новый флеш-накопитель, появляется всплывающее окно Installing Device Driver, а затем через некоторое время появляется диалоговое окно автозапуска.

Итак, при установке другой ОС с загрузочной флешки - как BIOS, который, как я полагаю, весьма примитивен по сравнению с самой ОС, умудряется быстро считывать данные с флешки (причем в самом начале загрузки) без необходимости установки драйверов устройств?


Редактировать: Я заметил, что Linux (Ubuntu 12.04 в моем случае) также не требует установки драйвера устройства и привод автоматически открывается в Nautilus. Как это работает?

решение1

За последние два десятилетия некоторые аспекты оборудования стали очень стандартизированными, так что теперь легко встроить эти драйверы в прошивку (или, в случае Linux, в ядро). Если посмотреть на драйверы, используемые для USB-накопителей, то они почти всегда одинаковы, независимо от производителя, размера и т. д.

То же самое касается (большинства) USB-клавиатур и других распространенных устройств ввода, поскольку все они относятся кСПРЯТАННЫЙкласс перидералий.


Что касается автоматического отображения содержимого диска в Linux, то в общих чертах все выглядит следующим образом:

  1. Ядро регистрирует новое подключенное устройство. Это можно увидеть, если вы сделаете dmesgпосле подключения
  2. Затем диск автоматически монтируется, как показано на рисунке mount -l. Обычно вы увидите строку, начинающуюся с чего-то вроде строк, /dev/sdc1 on /media/username/Something...соответствующих узлу устройства, указанному в #1.
  3. Ваша среда рабочего стола видит эту новую точку монтирования для вашего имени пользователя и открывает файловый менеджер для указанной точки монтирования.

решение2

Вся эта «установка драйвера» происходит только в Windows. На самом деле, это больше похоже на «регистрацию нового экземпляра устройства». В других операционных системах процесс, конечно, по сути тот же самый, но управляется по-другому. Например, есть два способа обработки нескольких похожих устройств: либо для каждого из них запущен изолированный экземпляр драйвера, либо один экземпляр способен обрабатывать несколько устройств.

Есть некоторые требования, которые должны быть выполнены: Драйвер должен существовать в месте, где ядро ​​(или программа, загружающая драйверы в ядро) найдет его автоматически. Что-то вроде /lib/modulesLinux. Если драйвер недоступен или не встроен в ядро, устройство не может быть использовано.

Для прошивок типа UEFI или BIOS драйвер будет встроенным, поскольку они должны быть автономными.

Как уже упоминал Джармунд, интерфейсы для устройств ввода и хранения в наши дни в значительной степени стандартизированы. Достаточно одного драйвера, чтобы использовать почти все USB-устройства хранения. Вот как BIOS и UEFI позволяют вам использовать клавиатуру, мышь, USB-накопитель и т. д.

Связанный контент