This article is intended for people who are interested in how it is actually put together and why. Today we will speak about the drivers. Many years ago, when the trees were large, computers have been monolithic, ie were performed technically on the same board. Imagine a box that is mounted multiple cards with chips, capacitors, transformers. All this is interwoven pile of wires. Such machines are commercially produced and not upgradeable subject, for this they had to solder and know how it's not all. Software for these computers were produced separately by each model: each program knew exactly which computer with which instruction set it will be performed. Ie if the program had to call the sound – it generated the interrupt, the processor to transmit data and audio device sound played.
While the concept in its infancy about the operating system, its modern sense. This situation changed dramatically with the advent of the IBM-compatible computers. For those who do not know, the main 'feature' of this architecture is that the computer turns into a kind of designer. Devices structurally bred for different cards, developed interfaces to communicate with each device. It is at this stage, a notion of 'device' in its modern sense.
Appear processor motherboard, sound card, video card, disk drive. A computer trying to make as simple to build and upgrade, everything seems simple and logical … BUT! What about software? From the program, running on that computer will recognize the device with which it works? Maybe your computer is a powerful graphics card, but can the simplest? Suppose we are writing a text editor.