Welcome guest


Device Drivers

As we've discussed, the kernel uses hardware abstraction to provided a consistent interface, by using an API, to application developers. This allows the developers to focus more on their actual product and less on how to tell the operating system to perform a certain task. However, the API can not accomplish this alone. The kernel depends on individual pieces of software for each individual piece of hardware. These pieces of software are referred to a device drivers. Device drivers contain precise instructions on how to make the hardware perform the function as requested by the operating system. The operating system calls the driver, and the driver "drives" the device. Device drivers exists for all pieces of hardware and are often specialized for things like video cards, network adapters, input devices (joysticks, mice, keyboards, scanners), and sound cards.

For example. You are working in Microsoft Word and you want to add a red border around your text. You go through the appropriate steps in Word and then Word tells the operating system "Draw, on the screen, a red rectangle located at position x". The operating system then converts these instructions and passes them on to the device driver for the video card. The device driver then tells the video card "put a red pixel here, here, here, here ....." until the video card displays the red border around your text. Word doesn't know how to tell the video card how to draw a pixel, nor does the operating system. Only the device driver can make the video card work properly.

Often, an out-dated device driver is the source for problems with your computer. Versions of devices drivers are always evolving as bugs or errors are found in the software. For example, if you are noticing that a brand new game is having a lot of problem and is either crashing or running very slow - it could be that your video card's device driver is not up-to-par to handle this new game.