1

In order to use a hardware, the specific driver for that particular hardware for the particular OS the device will be interacting with must be installed on the computer.

My question is, why aren't drivers for a particular device stored on the device itself? (or are they?)

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? So that when plugged in the first time, the device will interact with the OS and install the appropriate driver?

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?

Edit: By the way, my rationale behind this question is, what if we are setting up a computer without internet access. 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?

closed as primarily opinion-based by Ƭᴇcʜιᴇ007, mdpc, DavidPostill, Moses, surfasb Nov 9 '15 at 17:15

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.

  • Also remember, new versions of drivers are regularly released. – ChrisInEdmonton Oct 28 '15 at 15:06
  • Devices don’t interact with the OS. It’s the other way around. – Daniel B Oct 28 '15 at 15:07
  • 4
    Some printers (some HPs for example) can do this (for Windows at least). When you first plug them in, they appear as a CD-ROM instead of a printer, then after you use that CD-ROM to install drivers and utilities the printer flips and starts showing up as a printer instead of a CD-ROM. IME it can be a total PITA to be honest. :) – Ƭᴇcʜιᴇ007 Oct 28 '15 at 15:14
  • Keyboards might be a bad example too, as every OS should have a keyboard generic driver (Including many versions Android!) that will work more than well enough for most keyboards. – Austin T French Oct 28 '15 at 15:24
  • 2
    "but if our device needs a driver not already in the OS, then we might have a problem right?" No problem... Copy them to removable media from a computer that can download them, or install them from media supplied by the manufacturer (if they provide it). How do you think people installed drivers before the Internet? :) – Ƭᴇcʜιᴇ007 Oct 28 '15 at 16:11
4

My question is, why aren't drivers for a particular device stored on the device itself?

This would mean the device would need to have storage and the operating system would have to access it. There are security concerns with storage devices in some cases. It overall is a bad solution to a problem that can be solved by simply downloading the driver itself. A USB device can indicate to the OS it is ANY TYPE OF DEVICE, which is the reason, there are security policies to only allow certain types of USB devices and to block anything device that isn't recognized.

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?

In this specific example the generic keyboard I/O driver would work.

So that when plugged in the first time, the device will interact with the OS and install the appropriate driver?

This already happens to some degree. You would have to still install the driver even if it was stored on the device itself.

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?

A device either has drivers for a particular OS that exist or those drivers don't exist. If they are written for the OS they can are easily found and installed. Since device drivers are also updated often, the memory containing the driver, would almost never contain the current version anyways. Which is exactly what happens with the driver disks. It is extremely rare to have a computer that is not connected to the internet unless its by choice. If its by choice there often is a device, that can be used, to transfer data to it.

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?

So you download the driver from the manufacture and place it on a media that can be transferred to the machine. If this still isn't possible then in 99.99% of the cases a device that does require a driver to be used, will itself come with media from the manufacture, and that media is cheaper then any alternative. If that still isn't possible then the machine should be configured ahead of time so the device can be used.

  • "A device either has drives written for an OS or they don't." Wait aren't drivers must be written for an OS - device pair? If they are not written for an OS, then what are they written for? – Utku Oct 28 '15 at 15:15
  • @Utku - Linux, OS X, Windows drivers are all different. A device can only have Windows drivers. It depends on the manufacture and it entirely up to them what drivers exist for the device. – Ramhound Oct 28 '15 at 15:16
  • Oh so you mean: "If the vendor has decided to release a driver for that particular OS" (meaning that the vendor may choose not to)? – Utku Oct 28 '15 at 15:20
  • Not entirely, as the OS community can also write drivers, the OS can too (especially for things like generic drivers). I especially like the security note, though. As even if it could work, it likely never would as any half-savvy user knows to disable auto-run and not install from random pop-ups anyway. – Austin T French Oct 28 '15 at 15:21
  • @AthomSfere - I mean technically if you know enough about the device you could write your own device driver and use that instead of the manufactures driver even if you were running Windows. I didn't really think I needed to indicate that possibility though. – Ramhound Oct 28 '15 at 15:24

Not the answer you're looking for? Browse other questions tagged or ask your own question.