answersLogoWhite

0

A device driver creates a layer of abstraction between the hardware and the operating system. They were created by programmers who wanted a standard set of system calls in interact with hardware.

Device drivers were 'invented' when x86 CPU's added the capability to enter 32 bit protected mode. By changing to this mode, the CPU changed how it addressed memory, therefore breaking the 16 bit BIOS system calls. Device drivers are the replacements for the functions provided by the BIOS.

Device drivers have actually been used on computers since long before the 8086 (the first x86 processor) was created. A device driver is really any piece of software that "drives" a device, usually so it can be used and controlled by other software. The UNIX operating system, for example, had device drivers for disk drives, teletypes, printers, tape drives, and paper tape punchers at least as far back as 1974 (UNIX v5). Most of the device drivers in UNIX v5 were even written in C at a time when most other operating systems were written in assembly language. It's hard to say who "invented" device drivers, however.

Further explanation

A device driver is the section of code that deals with devices, whether those are internal devices in the computer such as disks, memory systems, etc. It soon became apparent to early programmers that it was foolish to have every program deal with the details of each device. It made more sense to have a section of code that took "arguments' in a standard format, went and accessed the device, controlling it, reading its input and output and returning it to the calling program in an expected format. That is essentially a driver. It can be a standalone program, a subroutine embedded in the larger code, in the case of Windows a DLL. The first programs had "drivers", they have become more modular and complicated. Now complete computers, such as large supercomputers, have "drivers" that let slower computers load and run programs and access the results.

User Avatar

Wiki User

8y ago

What else can I help you with?