¿Qué es un controlador de dispositivo?

¿Qué es un controlador de dispositivo?

Ésta es una pregunta común. En pocas palabras, un controlador de dispositivo es una pieza de software que le permite utilizar una pieza de hardware como una impresora o una cámara con un sistema operativo como Windows, macOS o Linux. Sin este software, normalmente pequeño, el sistema operativo no sabe cómo manejar el dispositivo. La mayoría de los sistemas operativos modernos instalarán automáticamente el dispositivo para un dispositivo cuando esté conectado utilizando una identificación que sea única para ese modelo de dispositivo.

Más técnicamente, un controlador normalmente se comunica con el dispositivo a través del bus de la computadora o del subsistema de comunicaciones al que se conecta el hardware. Cuando un programa que llama invoca una rutina en el controlador, el controlador emite comandos al dispositivo. Una vez que el dispositivo envía datos al conductor, el conductor puede invocar rutinas en el programa de llamada original. Los controladores dependen del hardware y son específicos del sistema operativo. Por lo general, proporcionan el manejo de interrupciones necesario para cualquier interfaz de hardware asíncrona necesaria y dependiente del tiempo.

Controladores de dispositivos virtuales:

Los controladores de dispositivos virtuales representan una variante particular de los controladores de dispositivos. Se utilizan para emular un dispositivo de hardware, particularmente en entornos de virtualización, por ejemplo, cuando se ejecuta un programa DOS en una computadora con Microsoft Windows o cuando se ejecuta un sistema operativo invitado, por ejemplo, en un host Xen. En lugar de permitir que el sistema operativo invitado dialoge con el hardware, los controladores de dispositivos virtuales asumen el papel opuesto y emulan una pieza de hardware, de modo que el sistema operativo invitado y sus controladores que se ejecutan dentro de una máquina virtual pueden tener la ilusión de acceder a hardware real. Los intentos del sistema operativo invitado de acceder al hardware se dirigen al controlador del dispositivo virtual en el sistema operativo anfitrión como, por ejemplo, llamadas a funciones. El controlador del dispositivo virtual también puede enviar eventos simulados a nivel de procesador, como interrupciones, a la máquina virtual.