Мой вопрос: почему драйверы для конкретного устройства не хранятся на самом устройстве?
Это будет означать, что устройство должно иметь хранилище, а операционная система должна иметь к нему доступ. В некоторых случаях существуют проблемы с безопасностью устройств хранения. В целом это плохое решение проблемы, которую можно решить, просто загрузив сам драйвер. Устройство USB может указывать ОС, что это ЛЮБОЙ ТИП УСТРОЙСТВА, поэтому существует политика безопасности, которая разрешает только определенные типы устройств USB и блокирует все устройства, которые не распознаются.
Например, допустим, я подключил клавиатуру к своему компьютеру. Возможно ли хранить драйверы для определенных версий Windows, Linux и OS X на самом устройстве?
В этом конкретном примере будет работать универсальный драйвер ввода-вывода клавиатуры.
Чтобы при первом подключении устройство взаимодействовало с ОС и устанавливало соответствующий драйвер?
Это уже происходит в некоторой степени. Вам все равно придется установить драйвер, даже если он был сохранен на самом устройстве.
Связано ли это с тем, что существует множество ОС и много версий этих ОС, и, следовательно, устройству потребуется хранить очень большое количество кода одного и того же назначения для разных платформ?
У устройства либо есть драйверы для конкретной ОС, либо эти драйверы не существуют. Если они написаны для ОС, они могут быть легко найдены и установлены. Поскольку драйверы устройств также часто обновляются, память, содержащая драйвер, почти никогда не будет содержать текущую версию. Что именно и происходит с драйверами дисков. Очень редко иметь компьютер, который не подключен к Интернету, если это не по своему выбору. Если по своему выбору часто есть устройство, которое можно использовать для передачи данных на него.
Я полагаю, что большинство ОС сейчас имеют общие драйверы, но если нашему устройству нужен драйвер, которого еще нет в ОС, у нас может быть проблема, верно?
Таким образом, вы загружаете драйвер с завода-изготовителя и помещаете его на носитель, который можно перенести на машину. Если это по-прежнему невозможно, то в 99,99% случаев устройство, для которого требуется драйвер, само будет поставляться с носителями от производителя, и этот носитель дешевле, чем любая другая альтернатива. Если это по-прежнему невозможно, машину следует настроить заранее, чтобы можно было использовать устройство.