3.6.- Dispositivos de conexion en frío y en caliente

Cuando trabajamos con el hardware, debemos tener presente la distinción entre dos tipos de dispositivos:

  • Los de conexión fría (coldplug)
  • Los de conexión caliente (hotplug)

La diferencia estriba en si se pueden conectar y desconectar físicamente cuando el ordenador está encendido (esto es, “en caliente”) o solamente cuando está apagado (“en frío”).

nota1

Tradicionalmente, los componentes internos del ordenador, como la CPU, la memoria, las tarjetas PCI y los discos duros, han sido dispositivos de conexión fría. No obstante se ha desarrollado una variante de PCI de conexión en caliente que se utiliza en algunos sistemas, principalmente en servidores y otros sistemas que no pueden asumir el contratiempo que supone instalar o quitar un dispositivo.

Los dispositivos externos modernos, como los dispositivos Ethernet, USB, y IEEE-1394, son de conexión en caliente; podemos conectar y desconectar estos dispositivos como nos convenga. Estos dispositivos se basan en software especializado de Linux para detectar los cambios del sistema según se conecten y desconecten. Hay varias utilidades que sirven para administrar los dispositivos de conexión en caliente:

  • Sysfs.- El sistema de fichero virtual montado es /sys, exporta información sobre los
    dispositivos para que las utilidades del espacio del usuario puedan acceder a ésta.nota2
  • HAL Daemon.- El demonio HAL (Hardware Abstraction Layer, Capa de abstracción de hardware) o hald es un programa del espacio del usuario que se ejecuta en todo momento (es decir, un demonio) que suministra información sobre el hardware disponible a los demás programas del espacio del usuario.
  • D-Bus.- El Desktop Bus (D-Bus) proporciona una abstracción adicional del acceso a la información del hardware. Al igual que hald, D-Bus se ejecuta como demonio. D-Bus permite a los procesos comunicarse entre sí en lo referente a las notificación de eventos, tanto de otros procesos como del hardware (como, por ejemplo, la disponibilidad de un nuevo dispositivo USB).
  • udev.- Por tradición, Linux creaba nodos de dispositivos con formato de ficheros convencionales en el árbol de directorios /dev. Sin embargo, con la existencia de dispositivos de conexión en caliente sumado a algún que otro problema ha motivado la creación de udev que consiste en un sistema de ficheros virtuales, montado en /dev, que
    crea ficheros de dispositivos dinámicos conforme se cargan y descargan los drivers. Podemos configurar udev a través de los ficheros de /etc/udev, pero la configuración estándar suele bastar para el hardware normal.

Todos estos programas ayudan para que los programas trabajen de manera transparente en el mundo de los dispositivos de conexión en caliente posibilitando que éstos puedan recibir información sobre el hardware, incluyendo las notificaciones de los cambios en la configuración del hardware.

Los dispositivos externos antiguos, como los puertos en paralelo y RS-232, por naturaleza son de conexión fría. En la práctica mucha gente los trata como si fuera de conexión caliente y, normalmente, no pasa nada, pero existe un riesgo de daño, así que lo más seguro es apagar el ordenador antes de conectar/desconectar un dispositivo de este tipo.

Cuando se conecta en caliente un dispositivo por un puerto en paralelo o RS-232RS232EXTC1EU.C las herramientas del tipo de udev o hald, normalmente, no lo registran. El sistema operativo sólo gestiona los puertos a los que se conectan estos dispositivos y saber como comunicarse con dichos dispositivos externos es tarea de los programas del espacio del usuario, tales como los programas de terminal o el sistema de impresión.