4.2. Introducción a los Dispositivos Serie

El núcleo de Unix proporciona dispositivos para acceder a hardware serie, típicamente conocidos como dispositivos tty. Se trata de una abreviatura de dispositivos Teletype, que fue uno de los principales fabricantes de dispositivos de terminal en los primeros días de Unix. Esta terminología se usa actualmente para cualquier terminal basado en caracteres. En este capítulo emplearemos este término para referirnos exclusivamente a los ficheros de dispositivo de GNU/Linux, no para el teminal físico.

GNU/Linux proporciona tres tipos de dispositivos tty: dispositivos serie, terminales virtuales (accesibles por orden con las pulsaciones Alt-F1 a Alt-Fnn en la consola local), y pseudo-terminales (similares a una tubería de dos direcciones, empleados por aplicaciones como X11). Los primeros recibieron el nombre de dispositivos tty porque originalmente los terminales basados en caracteres se conectaban a la máquina Unix mediante un cable serie o con un módem y una línea de teléfono. Los otros dos recibieron la misma denominación debido a que tratan de comportarse de manera similar, desde el punto de vista del programador.

SLIP y PPP se implementan en la mayoría de casos en el núcleo. Realmente, el núcleo no trata a un dispositivo tty como dispositivo de red al cual se pueda manipular, como los dispositivos Ethernet, empleando órdenes como ifconfig. Sin embargo, sí que trata a los dispositivos tty como lugares a los que se pueden asociar dispositivos de red. Para hacer esto, el núcleo cambia lo que se llama “disciplina de línea” del dispositivo tty. Tanto SLIP como PPP son disciplinas de línea que pueden ser activadas en dispositivos tty. La idea, en general, es que el manejador serie trata los datos que recibe de forma distinta según la disciplina de línea para la que está configurado. En la disciplina de línea por defecto, el manejador se limita a transmitir cada carácter que recibe por orden. Por contra, al seleccionar SLIP o PPP como disciplina de línea, el manejador lee bloques de datos, los encapsula con una cabecera especial que permite al otro extremo de la conexión identificarlos en una secuencia, y transmite todo el nuevo bloque. No es realmente importante comprender esto por ahora; trataremos SLIP y PPP en capítulos posteriores. De todos modos, esto sucede automáticamente para usted.