Driver

image of devices updating on an operating system.

What is a driver?

A driver is a program that enables communication between an operating system (OS) and a hardware component or software application. Every computer uses multiple drivers to control the various installed hardware components and applications.

Without these drivers, the hardware and software will not function properly, and in some cases may not be able to function at all. There are two primary types of drivers: device drivers and software drivers.

How does a driver work?

Drivers are files that send requests from an OS to hardware or applications to instruct them on how to function. The drivers translate the communications from the OS into a format that is understandable by the hardware or application.

Device drivers

Device drivers are designed to communicate between an OS and a device. These drivers are typically created by the same company that manufactured the device. However, when a device driver is  are created by a third party, it is designed according to a published hardware standard.

Not all device drivers communicate directly with the device itself. In some cases, there are several drivers layered in a stack that enable communication. The drivers on each end of the stack will communicate directly with either the device itself or the OS. The function driver communicates directly with the device. The drivers in between manipulate the communication into different formats that can be understood by the machine. These are called filter drivers.

What devices use drivers?

The vast majority of devices and software that connect to a machine require a driver to operate. Here are some of the most common devices that require drivers:

Software drivers

Unlike device drivers, software drivers are not associated with hardware devices. These programs enable communication between OS and software applications. The main purpose behind software drivers is to enable or disable access to protected data that is only available to programs in kernel mode. As a result, software drivers virtually always run in kernel mode.

Kernel mode vs. user mode

Both device and software drivers have the ability to run in both kernel mode or user mode. User mode is the general-purpose option and is used to carry out most communication. It also has the benefit of offering better stability than kernel mode.

Kernel mode is primarily used by the device’s core operating system components for accessing protected data. Drivers in kernel mode are implemented as discrete, modular components with well-defined functionalities. These drivers are also preferred for low-latency networking applications.

Virtual device drivers

Virtual device drivers are relatively new technology. They use virtualization technology to emulate a hardware device in virtualized environments on hybrid or cloud networks. They give guest operating systems the illusion of accessing hardware.

Updating drivers

Drivers are often updated by the manufacturer for multiple reasons. Manufacturers often discover glitches or errors called bugs that can be fixed with an update. Updates can be used to add new features to a device or increase its performance. Security patches are also implemented through updates to remove vulnerabilities.

 

Vangie Beal
Vangie Beal
Vangie Beal is a freelance business and technology writer covering Internet technologies and online business since the late '90s.

Related Articles

RSA SecurID

RSA SecurID is multi-factor authentication (MFA) technology used to protect network resources, such as applications and websites. Its purpose is to mitigate risk and...

Email Marketing Software

Email marketing software helps marketers automate and streamline their email marketing efforts. Read more - including the top email marketing vendors.

Cloud Computing Accounting Software

Cloud computing accounting software is accounting software that is hosted on remote servers. It is also known as online accounting software, web-based accounting software,...

Zoho CRM

What is Zoho CRM? Zoho CRM is an on-demand, SaaS-based customer relationship management (CRM) software solution designed to manage sales data, marketing, contacts, customer support,...

ScalaHosting

ScalaHosting is a leading managed hosting provider that offers secure, scalable, and affordable...

HRIS

Human resources information system (HRIS) solutions help businesses manage multiple facets of their...

Best Managed Service Providers...

In today's business world, managed services are more critical than ever. They can...