Controlador de dispositivo

Fiabilidad

¿Qué significa controlador de dispositivo?

Un controlador de dispositivo es una forma particular de aplicación de software que permite que un dispositivo de hardware (como un ordenador personal) interactúe con otro dispositivo de hardware (como una impresora). Un controlador de dispositivo también puede denominarse controlador de software.

Los controladores facilitan la comunicación entre un sistema operativo y un dispositivo de hardware periférico. Cada controlador contiene conocimientos sobre un determinado dispositivo de hardware o interfaz de software que otros programas -incluido el sistema operativo (SO) subyacente- no tienen.

En el pasado, los controladores de dispositivos se escribían para sistemas operativos específicos y periféricos de hardware concretos. Si el SO de su ordenador no reconocía un dispositivo periférico, el usuario final tenía que localizar e instalar manualmente el controlador adecuado.

Hoy en día, la mayoría de los sistemas operativos incluyen una biblioteca de controladores plug-n-play que permite que el hardware periférico se conecte automáticamente con un sistema operativo.

Este enfoque también tiene la ventaja de permitir a los programadores escribir código de aplicación de alto nivel sin necesidad de saber en qué hardware se ejecutará su código.

Definición de controlador de dispositivo

Básicamente, un controlador actúa como traductor entre el sistema operativo (SO) de un dispositivo informático y el hardware periférico.

¿Cómo funcionan los controladores de dispositivos?

Un controlador de dispositivo suele comunicarse con el hardware mediante el subsistema de comunicaciones (el bus del ordenador) al que está conectado el hardware.

Es esencial que un ordenador disponga de los controladores de dispositivo correctos para todas sus piezas, a fin de que el sistema funcione con eficacia.

Al encender un ordenador por primera vez, el SO trabaja con los controladores de dispositivo y el sistema básico de entrada/salida (BIOS) para realizar las tareas del hardware. Sin un controlador de dispositivo, el SO no podría comunicarse con el dispositivo de E/S.

Hay varios tipos de controladores de dispositivo para dispositivos de E/S como teclados, ratones, unidades de CD/DVD, controladores, impresoras, tarjetas gráficas y puertos.

Cuando un controlador está incluido en un sistema operativo, puede denominarse controlador de dispositivo en modo kernel. Si el usuario final tiene que descargar e instalar un controlador manualmente, puede caracterizarse como un controlador de dispositivo en modo usuario.

Controlador de dispositivo frente a API

Hoy en día, los desarrolladores de software pueden utilizar interfaces de programación de aplicaciones (API) para proporcionar a sus aplicaciones acceso a las funciones del SO y a la lógica que una aplicación necesita para ejecutarse.

Por ejemplo, los desarrolladores que trabajan en aplicaciones con aprendizaje automático (ML) e inteligencia artificial (AI) pueden utilizar las API para evitar tener que preocuparse de los comandos de bajo nivel para cada unidad de procesamiento gráfico (GPU) en la que se espera que se ejecute su aplicación.

La historia del controlador de dispositivo

Los historiadores de la tecnología que analizan el auge de nuevas tecnologías como la computación en nube y el software como servicio tienden a ver la era de los controladores de dispositivos como perteneciente a los años 90 y siguientes, en los que las configuraciones de hardware aún formaban parte de las tecnologías informáticas y de consumo.

Lo que descubren es que los controladores de dispositivos causaban todo tipo de problemas. Por ejemplo, un problema llamado «hilo atascado en el controlador de dispositivo» tenía que ver con la programación de hilos que encontraba problemas con el software del controlador y bloqueaba los ordenadores, generando la temida «pantalla azul de la muerte» que significaba un fallo en Windows.

Incluso cuando progresó la conectividad del hardware, por ejemplo, cuando los conectores USB sustituyeron a los tradicionales conectores de patillas, persistieron los problemas con el software de los controladores.

Las noticias de la época muestran a usuarios huyendo de ciertos tipos de tecnologías que requerían la instalación de controladores, por ejemplo, periféricos o ciertos tipos de GPU o tarjetas de expansión de red.

Muchos de los problemas del software de controladores de dispositivos tienen que ver con los privilegios y permisos necesarios para acomodar la compatibilidad de entrada/salida o permitir que las piezas de hardware «hablen entre sí».

Controladores de dispositivos virtuales

A medida que surgió la virtualización del hardware, los ingenieros crearon controladores de dispositivos virtuales (VxD), que son componentes de controladores de dispositivos que permiten la comunicación directa entre un dispositivo de hardware virtual y una aplicación.

Los controladores de dispositivos virtuales ayudan a gestionar el flujo de datos para permitir que varias aplicaciones accedan al mismo hardware sin que se produzca un conflicto. Cuando se produce una interrupción (una señal de un dispositivo de hardware), el controlador del dispositivo virtual configura el siguiente paso de instrucción basándose en el estado de la configuración del dispositivo de hardware.

Por ejemplo, un controlador de máquina virtual en una configuración de virtualización trabajará con direccionamiento IP y MAC para emular una conexión de red para una máquina virtual.

Una cuestión filosófica ligada al auge del controlador de dispositivo virtual es si es intrínsecamente necesario disponer de un software de controlador virtualizado para los dispositivos virtuales, o si una conectividad diferente podría eludir este aspecto tradicional de las arquitecturas informáticas.

Un ejemplo: la aparición de los sistemas de computación en nube. Al abastecer los trabajos tradicionalmente asignados al hardware a través de Internet, la nube elimina la necesidad de muchos tipos diferentes de controladores de dispositivos, o los abstrae en el lado del proveedor.

Eso significa que los usuarios modernos no estarán tan familiarizados con el controlador de dispositivo como lo habían estado otros en el pasado. Puesto que toda la funcionalidad la maneja el navegador, no hay necesidad de crear compatibilidades en un sistema que es inherentemente universal o compuesto por un flujo informático.

Sin embargo, el controlador de dispositivo sigue funcionando como concepto básico en la informática compleja. En la medida en que estos sistemas son necesarios en un entorno de sistema operativo, el controlador de dispositivo sigue siendo relevante en la era de la nube.

Temas relacionados

Margaret Rouse
Technology expert
Margaret Rouse
Experta en tecnología

Margaret Rouse es una galardonada escritora técnica y profesora conocida por su habilidad para explicar temas técnicos complejos a una audiencia de negocios no técnica. Durante los últimos veinte años, sus explicaciones han aparecido en sitios web de TechTarget y ha sido citada como autoridad en artículos del New York Times, Time Magazine, USA Today, ZDNet, PC Magazine y Discovery Magazine. La idea de diversión de Margaret es ayudar a profesionales de TI y negocios a aprender a hablar los idiomas altamente especializados de cada uno. Si tienes una sugerencia para una nueva definición o cómo mejorar una explicación técnica,…