When it comes to drivers, a lot of people don’t know what to expect when installing them. Many don’t understand the difference between drivers and user-level software, and even more people don’t understand what it implies. Drivers play a fundamental role in every operating system, regardless of whether you use Windows, Linux, or Macintosh. In this segment, we’ll be talking in particular about Windows drivers, their hierarchy, and how to resolve most common issues with them.
What’s a Driver?
Make no mistake, a driver is still a computer program. However, drivers actually allow other programs to communicate with your computer’s hardware. Anything that directly communicates with hardware, without using any other framework or wrapper, is known as a driver. As long as you keep this in mind, it won’t be hard to understand what drivers are and what role they play in Windows.
Kernel Mode vs. User Mode Drivers
Drivers operate in a simple hierarchy, with two types: Kernel mode and user mode. The difference is explained below:
Kernel mode drivers communicate with the physical machine, directly accessing its resources. In the kernel level, drivers have direct – uninterrupted and unmanaged – access to the computer’s physical components, such as the chipset, memory, the hard drive, and the CPU. Examples of kernel mode drivers are CPU, network interface, video, and hard disk drivers. These drivers operate in the kernel mode because they must form a seamless bond with the Windows operating system.
User mode drivers communicate with either other drivers or with the operating system’s upper “user” layer. In the user level, drivers have second-hand access to resources, and communicate in the same level that other programs you run do. They must adhere to the rules set by Windows and operate outside its integral system. If an error occurs with one of these drivers, Windows can continue running (in many cases), as isn’t the case with drivers operating in the kernel level. Many devices can opt to use user mode drivers, although that could possibly decrease their efficiency. However, they’re much safer and have less chances of crashing a system. Often times, you can find DVD drive emulators and firewalls using these kinds of drivers.
Now that you’ve got the gist of it, let’s have a look at what driver hierarchy looks like:
You don’t have to be a software engineer to figure out what this graphic is trying to tell you. You don’t even have to understand the diagram, either. You only need to see that the user mode has less direct access to hardware than the kernel mode. Oh, and the Hardware Abstracion Layer (HAL)? That’s just a Microsoft implementation that helps make software’s communication with hardware simpler. It’s what makes Windows an attractive environment for developers, especially because of the transparency and uniformity the operating system has with application development platforms.
When Should You Update Drivers?
This is a question that’s always coming across many different people’s minds when they install new devices and receive a notification that a new driver is available. As much as people tell you to always keep your drivers updated, there are rarely any security issues on your computer caused by drivers. Most viruses and other things infect you at the user level, not the kernel level.
So why install updated drivers?
The only reason you should ever install an updated driver is because of a system issue caused by a piece of hardware. If you’re getting weird video on your computer, for example, you should try updating the video card drivers. Many hardware issues can be solved by simply performing a driver update or downloading and installing the latest drivers from the manufacturer. Updating drivers for any other reason can cause an adverse effect on your system. You’ll find proof of this by searching for problems caused by driver updates. Some people in forums suggest rolling back as a solution, and it works!
There’s an exception to this. If you are currently using Windows’ basic drivers for any adapter, you might want to upgrade to manufacturer drivers for better performance.
How to Update Your Drivers
To update a driver in Microsoft Windows, go to your control panel and click “Devices and Printers”. Once inside, click “Device Manager”. You’ll see a whole list of devices attached to your computer. Right-click on the device you would like to update the driver for and click “Update driver software”.
Click “Search automatically for updated driver software” to allow Windows to search for a good manufacturer driver for your device. It will download and install the most stable one automatically.
If it can’t find a driver, just go to the device manufacturer’s website (i.e. nVidia) and download the latest drivers for your device from their website. Some sites even help you detect what kind of device you run, in case you don’t know what you have on your computer.
Before Updating to a Manufacturer’s New Driver
If you are updating a device driver on your computer, consider checking the version first to see if it coincides with what you’re updating it to. If you have a driver with the same version as the update you’re downloading, you obviously don’t need to install it. If you’re trying to correct a problem, also consider rolling back to an older driver to see if that works.
To check driver versions, go to the device in “Device Manager” as described in the previous section. Right-click the device and click “Properties”. Select the “Driver” tab and click “Driver Details.” This will show you the version you’re currently using, which will help you make a comparison.
When attempting to solve a hardware issue, if updating the driver or rolling it back doesn’t work, you might have to replace the hardware itself, especially if the problems started spontaneously. This happens often when the hardware is dying. For example, a video card might start suddenly showing garbled images on your display while you’re running a game. This might be due to the GPU overheating.
If you have anything to add to this discussion, go ahead and use the comments section below. We’d love to hear from you!