Is it possible to build devices and hardware in such a way that there is no need for a driver to be written for OS?

Why there is a need for a driver to operate a piece oh hardware? Couldn't they implement a "driver" inside the hardware?

When you take a taxi, the driver comes with the taxi and you just say where to go! Why isn't the hardware designed the same way?

  • 2
    No; Drives are how hardware communicates with software. Without drivers software would be unable to control hardware. So your keyboard and mouse couldn't even be used, because both of those have drivers, they are just I/O drivers. – Ramhound Sep 18 '14 at 11:59
  • 2
    A driver comes with a taxi the same way hardware comes with an accompanied driver on a disc. The taxi cab and the driver are not one, the cab gets parked at the end of the drivers shift, the cab then immobile - it requires the driver's input to operate. Unless we're talking about subways... – root Sep 18 '14 at 12:03

In the old days (40's-70's) you bought a computer from a company which manufacturered or insourced its own hardware, wrote all its OS software, and most of its application software. The OS would only work on the sellers platform, using exactly the hardware they sold with the initial purchase. Applications were written in assembler, and would only work on that one platform, and had to be rewritten for every CPU, and often for every OS version. For every slight difference in hardware, a new version of the OS needed to be built and maintained. In short, the Hardware, the OS, and the Applications were all non-portable.

Portability became a big concern in the 60's as computing started to become commoditized. Unix and the C programming language have long been hailed as two of the key technologies that ushered in a new era of portability. The Unix kernel was written largely in C, with only the tinest bit of CPU specific assembly, so any platform with a C compiler could run a C application developed for another platform, the OS Kernel included. Since we now had OS's that could run on multiple hardware platforms, we needed a way to support all that hardware without having it in the core of the OS. that’s where drivers come in. Unix could run on a thousand platforms, but didn't need to know how to access every kind of hardware that could occur on those platforms. all it needed was a driver designed to work with the hardware, and to plug into the unix kernel.

So in summation, drivers are not a problem needing an answer, they are an answer to a problem so big that it took an entire industry 5 decades to get right.


Driver most certainly comes with the taxi but he's not a pre-installed component of it.

In your example, taxi is the hardware, you are the OS and driver should be a third entity.

More precise example could be a rental car. What actually happens is that you (OS) hire a rental car (hardware) and use it with your driving ability. But if you are Windows and not linux so basically you don't know how to drive, then you have to learn (write/download and install) it.

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