Device Driver is a piece of software required for the computer kernel to communicate with hardware on a basic level, without going deeper into the details of their functionality. Hardware attached to your computer requires device drivers so the system would have a suitable interface and you will be able to control it. This approach allows the system to assume control of any connected hardware part without learning its details. With the common, understandable interface, it also becomes possible to build a two-way communication between the system (or the kernel) and the hardware.
The main purpose of device drivers is to deliver the smooth working experience of the connected hardware for which it was written and also let that hardware to be used by the operating system.
Types of Device Drivers
Almost every device has its driver – starting from BIOS and up to various virtual machines developed by Microsoft. All device drivers can be divided into two main categories: kernel device drivers and user device drivers.
Drivers from the first category are loaded with the operating system. They function as a part of your OS after they are loaded in the memory. However, the system loads not the full driver but a pointer. This method allows invoking any drive when it is needed. Kernel device drivers include drivers for BIOS, processor, motherboard, and other similar hardware.
There is one disadvantage with kernel device drivers: when one driver is invoked, it goes straight into the random-access memory (RAM) and cannot be transferred to the virtual memory. So, when multiple device drivers are loaded in RAM and working at the same time, you may experience a noticeable performance drop on your computer. That is why all operating systems have minimum system requirements. The developers of the different operating systems calculate the number of resources required for kernel device drivers beforehand, so the users won’t have to worry about memory requirements.
As for user device drivers, those are triggered by users when working on a computer. Think of them as a support software for the device the user connected to the computer. Those are mostly various Plug-and-play devices. User device drivers can be installed on your disk so that they will be less hungry for the system resources. But if we are talking about various gaming devices – advanced mice, headphones, keyboards – it is better to keep them in RAM.
Block Drivers and Character Drivers
These drivers are needed for proper writing/reading of the data on your computer. They support writing and reading devices such as hard disk drives, USB flash drives, CD-ROMs, and so on. The type of the driver – block driver or character driver – depends on how it is used. Character drivers, for example, are used in serial buses. At one given time they can only write one character (a byte). Character drivers step into play when a device is attached to a serial port. Look at your mouse – it is a serial device that uses a serial port for connection. It also requires a device driver to work.
Block drivers are capable of writing/reading more than one character. Usually, they tend to form blocks of information and retrieve as much data as possible within block limits. The first device on block drivers that comes to mind is going to be your hard disk. Another example – your CD-ROM, but the kernel has to confirm device connection each time CD-ROM is used by any program.
Generic and OEM Drivers
Another two types of device drivers we should mention here are generic OEM drivers. It is very simple to distinguish them: the device driver is probably a generic one if it comes with the operating software. Generic device drivers can be used for one particular device type no matter who manufactured it. Windows 10 comes packed with multiple generic drivers, so your hardware can work right away without downloading and installing additional software.
However, these generic drivers are not perfect and sometimes should be replaced by more advanced drivers. That is why hardware manufacturers write new drivers for their devices. These drivers are called OEM device drivers and must be downloaded and installed manually after the installation of the operating system. The most popular version of OEM drivers are drivers for video cards by NVIDIA and AMD.
Virtual Device Drivers
Virtual devices installed on your computer also require drivers. Those drivers are called virtual device drivers. It is understandable that in order to emulate some hardware, we need dedicated software. Virtual device drivers are that software to support virtual hardware operation. For instance, you have installed a new VPN client. To be able to connect to the Web securely it may create a new virtual network card. It is not real (no physical form) and exists only within the system thanks to the software. Even though it is not a real network card, it still needs a driver to function properly. Usually, you don’t have to install virtual device drivers manually as they are bundled with the original software, in our scenario – VPN.
So, as you see, there many different types of drivers for devices. It could be a complicated explanation if we narrowed it all down to a few general categories to explain their nature. To sum it all up, it is important to know the type of the driver and its category in case it fails and must be reinstalled manually.