My question is, why aren't drivers for a particular device stored on the device itself?
Isso significaria que o dispositivo precisaria ter armazenamento e o sistema operacional teria que acessá-lo. Há problemas de segurança com dispositivos de armazenamento em alguns casos. No geral, é uma solução ruim para um problema que pode ser resolvido simplesmente baixando o próprio driver. Um dispositivo USB pode indicar ao sistema operacional que é QUALQUER TIPO DE DISPOSITIVO, que é a razão pela qual existem políticas de segurança para permitir apenas determinados tipos de dispositivos USB e bloquear qualquer dispositivo que não seja reconhecido.
For example, lets say that I have plugged in a keyboard to my computer. Is it possible for drivers for particular versions of Windows, Linux and OS X stored on the device itself?
Neste exemplo específico, o driver de E / S de teclado genérico funcionaria.
So that when plugged in the first time, the device will interact with the OS and install the appropriate driver?
Isso já acontece em algum grau. Você ainda teria que instalar o driver mesmo se ele estivesse armazenado no próprio dispositivo.
Does it have to do with the fact that there are many OSes and many versions of these OSes and hence, the device would need to store a very high amount of the same purpose code for different platforms?
Um dispositivo possui drivers para um determinado sistema operacional ou esses drivers não existem. Se eles são escritos para o sistema operacional, eles podem ser facilmente encontrados e instalados. Como os drivers de dispositivos também são atualizados frequentemente, a memória que contém o driver quase nunca conteria a versão atual. Qual é exatamente o que acontece com os discos do driver. É extremamente raro ter um computador que não esteja conectado à Internet, a menos que seja por opção. Se a sua escolha, muitas vezes, é um dispositivo, que pode ser usado, para transferir dados para ele.
I guess most OSes now have common drivers packed with them but if our device needs a driver not already in the OS, then we might have a problem right?
Então, você faz o download do driver na fabricação e o coloca em uma mídia que pode ser transferida para a máquina. Se isso ainda não for possível, em 99,99% dos casos, um dispositivo que requer um driver para ser usado, ele próprio virá com a mídia da fabricação, e que a mídia é mais barata do que qualquer alternativa. Se isso ainda não for possível, a máquina deverá ser configurada antes do tempo para que o dispositivo possa ser usado.