
Всякий раз, когда мы подключаем новый флеш-накопитель, появляется всплывающее окно Installing Device Driver
, а затем через некоторое время появляется диалоговое окно автозапуска.
Итак, при установке другой ОС с загрузочной флешки - как BIOS, который, как я полагаю, весьма примитивен по сравнению с самой ОС, умудряется быстро считывать данные с флешки (причем в самом начале загрузки) без необходимости установки драйверов устройств?
Редактировать: Я заметил, что Linux (Ubuntu 12.04 в моем случае) также не требует установки драйвера устройства и привод автоматически открывается в Nautilus. Как это работает?
решение1
За последние два десятилетия некоторые аспекты оборудования стали очень стандартизированными, так что теперь легко встроить эти драйверы в прошивку (или, в случае Linux, в ядро). Если посмотреть на драйверы, используемые для USB-накопителей, то они почти всегда одинаковы, независимо от производителя, размера и т. д.
То же самое касается (большинства) USB-клавиатур и других распространенных устройств ввода, поскольку все они относятся кСПРЯТАННЫЙкласс перидералий.
Что касается автоматического отображения содержимого диска в Linux, то в общих чертах все выглядит следующим образом:
- Ядро регистрирует новое подключенное устройство. Это можно увидеть, если вы сделаете
dmesg
после подключения - Затем диск автоматически монтируется, как показано на рисунке
mount -l
. Обычно вы увидите строку, начинающуюся с чего-то вроде строк,/dev/sdc1 on /media/username/Something...
соответствующих узлу устройства, указанному в #1. - Ваша среда рабочего стола видит эту новую точку монтирования для вашего имени пользователя и открывает файловый менеджер для указанной точки монтирования.
решение2
Вся эта «установка драйвера» происходит только в Windows. На самом деле, это больше похоже на «регистрацию нового экземпляра устройства». В других операционных системах процесс, конечно, по сути тот же самый, но управляется по-другому. Например, есть два способа обработки нескольких похожих устройств: либо для каждого из них запущен изолированный экземпляр драйвера, либо один экземпляр способен обрабатывать несколько устройств.
Есть некоторые требования, которые должны быть выполнены: Драйвер должен существовать в месте, где ядро (или программа, загружающая драйверы в ядро) найдет его автоматически. Что-то вроде /lib/modules
Linux. Если драйвер недоступен или не встроен в ядро, устройство не может быть использовано.
Для прошивок типа UEFI или BIOS драйвер будет встроенным, поскольку они должны быть автономными.
Как уже упоминал Джармунд, интерфейсы для устройств ввода и хранения в наши дни в значительной степени стандартизированы. Достаточно одного драйвера, чтобы использовать почти все USB-устройства хранения. Вот как BIOS и UEFI позволяют вам использовать клавиатуру, мышь, USB-накопитель и т. д.