Device drivers and device controllers are important components of IO systems. Device drivers exist as software programs that the OS uses to communicate with device controllers. Device controllers are hardware units that work as an interface between physical IO devices, and device drivers. An interface can be thought of as a bridge that brings the software side and hardware side together.
Device drivers and controllers are crucial for different IO devices to communicate with the OS. Consider them to be like a translating service. If one person speaks fluent Spanish, and another person only speaks English, a translator, who understands both languages is necessary for meaning making in the conversation. Similarly, device controllers work as a translator between an operating system that may understand code, and hardware that uses signals. The device drivers can be thought of as the service the translator provides.
Take a look at the image to the right. Device controllers are the hardware component that is included in the image. As the image shows, device drivers can be categorized into two types: kernel and user. There are two types of drivers because they have different uses which will be discussed in the next exercise!