Home
» Wiki
»
What is a Device Driver? How Does It Work?
What is a Device Driver? How Does It Work?
The operating system, other application programs and the various hardware devices are all built by different groups of people. Therefore, by default, the OS and other programs cannot interface with the hardware devices. This is where a device driver comes in. It is a piece of software that acts as a translator between the operating systems and the hardware devices. A device driver’s job is to allow smooth functioning of hardware devices attached to the system. A printer driver tells the OS how to print the selected information on the page. For the OS to translate the bits in an audio file into appropriate output, a sound card driver is necessary. Like this, device drivers exist for each hardware device that is connected to your system.
The OS need not know the details behind the working of the hardware. Using the device driver, it only interfaces with that particular piece of hardware. If the corresponding device driver is not installed, there is no communication link between the OS and the hardware. Such a hardware device may not work properly. A device driver and the corresponding hardware device communicate through the computer bus to which the device is connected. Device drivers vary for each operating system and they are hardware dependent. A device driver is also known as a software driver or simply a driver.
How do device drivers work?
A hardware device wants to communicate with a program on your system. You can think of this situation as two entities that speak different languages. Thus, there is a need for a translator. The device driver plays the role of the translator here. The software gives the driver information that explains what the hardware should perform. The device driver uses the information to get the driver to do the job.
A device driver translates the instructions of a software program/the OS to a language understood by the hardware device. For the system to run efficiently, you have to have all the necessary device drivers. When you turn on your system, the OS communicates with the device drivers and the BIOS to decide on performing various hardware tasks.
If not for a device driver, either there would be no way for the system to communicate with the devices or software programs would have to know how to directly interface with the hardware (given the wide range of programs and hardware device we have today, this would be difficult). It is not possible to build software with the capability to directly communicate with all kinds of hardware devices. Thus, device drivers are the game-changers.
Both – hardware devices and software programs depend on device drivers for smooth functioning. Programs usually use general commands to access devices. A device driver translates these into specialized commands that can be understood by the device.
Device drivers usually come as built-in components in an OS. They are provided by the manufacturer. If a hardware or software component is replaced or updates, these device drivers are rendered useless.
Virtual device drivers
A virtual device driver is a component of a device driver that helps a hardware device to establish communication with the OS or a program. They are drivers for virtual devices. Virtual device drivers help in the smooth data flow. Multiple applications can access a particular hardware device without conflict. When a virtual device driver receives an interrupt signal from a hardware device, it determines the next course-of-action based on device settings’ status.
Where is a virtual device driver used?
When we use software to emulate a hardware device, a virtual device driver is used tor un such a device. An appropriate example would be using a VPN. You create a virtual network card so that you can securely connect to the internet. This is a virtual network card created by the VPN. An appropriate driver is required for this card which will usually be installed by the VPN software itself.
Do all devices need drivers?
Whether or not a device requires a driver depends on whether your operating system recognizes the hardware device and its features. Some peripherals that are unknown to the operating system and require a driver are – Video card, USB device, sound card, scanner, printer, controller modem, network card, card reader etc… Operating systems usually have some generic drivers that allow common hardware devices to work on a basic level. Again, the condition is that the OS should recognize the features of the device. Some devices that can work with generic drivers are – RAM, keyboard, mouse, speakers, monitor, hard drive, disk drive, CPU, power supply, joystick etc… One must be aware that the generic driver provided by the operating system is not updated as frequently as the drivers provided by the hardware manufacturer.
What will happen if you have not installed a driver?
If you have not installed a driver for a device, the device may not function at all or may function only partially. For example, devices such as mouse/keyboard will work without a driver. But if your mouse has extra buttons or your keyboard has some special keys, then those features will not work. If you are a Windows user, you can find the driver conflict error in the device manager, if you have a missing driver. Usually, the manufacturer releases a driver update to erase the errors produced by the driver. Therefore, always have the up to date version of the driver for your hardware devices.
A driver will work only if you have the corresponding device installed on your system. If you try to install a driver for hardware that does not exist, it will not happen. For instance, installing a video card driver when you do not have a video card on your system will not give your system the capability to work with a video card. You need to have both – the hardware device and the updated device driver for it.
Types of device drivers
There exists a device driver for almost every hardware device in use today. These drivers can be broadly classified into the following 2 categories – user device drivers and kernel device drivers
User device drivers
These are device drivers that the user triggers while he/she is using the system. These are for the devices that the user has connected to the system, other than those pertaining to the kernel software. The device drivers for plug and play devices are considered as user device drivers. To lift the pressure off the system resources, user device drivers are written to the disk. But the device drivers for gaming devices are usually kept in main memory.
Generic drivers that are available as built-in software along with the OS are called kernel device drivers. They load into the memory as a part of the OS. A pointer to the driver is stored in memory and can be invoked whenever required. Kernel device drivers are for devices such as the processor, the motherboard, BIOS, and other devices pertaining to the kernel software.
With kernel device drivers, there is a common issue. Upon invocation, a kernel device driver is loaded into the RAM. This cannot be moved to virtual memory. If there are several device drivers running simultaneously, the system becomes slow. To overcome this issue, each OS has a minimum system requirement. The operating systems put together the resources that kernel device drivers required. This ensures that users do not have to worry about memory requirement.
Other types of Device Driver
1. Generic and OEN drivers
If the device driver is available along with the operating system, it is called a generic device driver. A generic device driver works for a particular device irrespective of its brand. Windows 10 has generic device drivers for commonly used hardware devices.
Sometimes, the hardware devices have certain features that an OS cannot recognize. The device manufacturer provides the corresponding driver for such devices. These are called OEM device drivers. For such devices to function properly, the drivers have to be installed separately after installing the OS. Around the time when Windows XP was in use, even drivers for the motherboard had to be installed separately. Today, most of the modern systems provide built-in generic device drivers.
2. Block and character drivers
Device drivers can be classified as block drivers or character drivers based on how data is read and written. Devices such as hard disks, CD ROMs and USB drives are classified based on the way they are used.
The term block driver is used when more than one character is read or written at a time. A block is created, and the block device tries to retrieve the amount of information that suits the size of the block. Hard disks and CD ROMS are considered to block device drivers.
The term character driver is used when data is written one character at a time. Character device drivers make use of serial buses. Any device that is connected to the serial port has a character driver. For example, a mouse is a device connected to a serial port. It makes use of a character device driver.
All the drivers on your Windows system are managed by the Device Manager. Device drivers do not need much attention after installation. Occasionally, they have updates to fix a bug or an update that provides a new feature. Therefore, it is a good practice to check for driver updates and install them (if any) once in a while. To make your job easy, there are some programs that will check and update your device drivers.
The driver updates provided by the manufacturer are always available for free on their official website. Take care to not pay for a device driver update!
Updating your drivers are important because, often time, many issues with a hardware device can be traced back to an issue with the device driver.
Summary
A device driver helps the OS and other programs interface with the hardware devices connected to the system
Modern operating systems provide built-in device drivers for commonly used peripherals
To use other hardware devices, you need to install the corresponding device drivers provided by the manufacturer
Keeping your device drivers up to date is crucial to the functioning of the system.
An external device driver is only required for those devices whose features are not recognized by your operating system.