Capacidades del terminal - Terminal capabilities

En informática y telecomunicaciones, las capacidades de un terminal son varias características del terminal, más allá de lo que está disponible en un teletipo puro , que los sistemas host (y los programas que se ejecutan en ellos) pueden utilizar. Son (principalmente) códigos de control y códigos de escape que se pueden enviar o recibir desde el terminal. Los códigos de escape enviados al terminal realizan varias funciones que un terminal CRT (y emuladores de terminal de software ) es capaz de realizar, pero que un teletipo no lo es; tales como mover el cursor del terminal a posiciones en la pantalla, borrar y desplazar toda la pantalla o partes de ella, encender y apagar dispositivos de impresora conectados, programar teclas de función programables, cambiar colores y atributos de pantalla (como video inverso ) y configurar la pantalla cadenas de título. Los códigos de escape recibidos de las cosas representan a los terminales, tales como teclas de función , teclas de flecha , y otra tecla especial ( tecla de inicio , tecla de finalización , tecla de ayuda , PgUp , clave AvPág , Inserte el texto , tecla de borrar , etc.) las pulsaciones de teclado .

Unix y POSIX: termcap, terminfo, et al.

En Unix y otros POSIX sistemas que cumplen las que soportan la interfaz de terminal POSIX , estas capacidades se codifican en bases de datos que están configuradas por un administrador del sistema y accederse desde programas a través de la terminfo biblioteca (que sustituye a la mayor termcap biblioteca), sobre la que a su vez son bibliotecas construidas como las bibliotecas curses y ncurses , mediante las cuales los programas de aplicaciones utilizan las capacidades del terminal para proporcionar interfaces textuales de usuario con ventanas, cuadros de diálogo, botones, etiquetas, campos de entrada, menús, etc. La intención es que esto permita que los programas de aplicaciones sean independientes de las características reales del terminal. No necesitan cablear ningún código de control o secuencias de escape en su código, por lo que no tienen problemas para usarse en una variedad de terminales con una variedad de capacidades.

termcap

La biblioteca termcap (para " term inal cap skills ") se desarrolló para sistemas BSD. Utiliza una base de datos almacenada en el archivo / etc / termcap . Esta base de datos consta de una serie de registros (cada uno de los cuales consta de una o más líneas en el archivo, unidas por caracteres de barra invertida al final de cada línea que continúa en la siguiente), cada uno de los cuales representa las capacidades de un terminal en particular. Los campos del registro comprenden el nombre o nombres del tipo de terminal, seguidos de una secuencia de capacidades, separados por dos puntos. Los propios campos de capacidad se dividen en tres grupos:

características de la terminal
Estos comprenden cosas como el número (nominal) de filas y columnas que tiene la pantalla de la terminal, si la salida se ajusta automáticamente a la siguiente línea cuando llega al final de una línea, y así sucesivamente.
secuencias de control enviadas como salida al terminal
Estos comprenden los códigos de control y las secuencias de escape que se envían al terminal para que realice alguna acción (no necesariamente una acción de visualización). Un ejemplo de uno de los más simples es la secuencia de salida para borrar la pantalla, que puede ser el carácter de alimentación de formulario (ASCII FF ) en algunos tipos de terminal, pero puede ser, por ejemplo, la secuencia de escape ␛2J en un terminal que requiere secuencias de escape ANSI .
secuencias de control enviadas como entrada por el terminal
Estos comprenden los códigos de control y las secuencias de escape que el terminal envía al host para representar diversas acciones y eventos, como las teclas de función y las teclas de flecha que se presionan.

terminfo

La biblioteca terminfo (" term inal info rmation") se desarrolló para los sistemas System V. Utiliza una base de datos almacenada en varios archivos dentro de un directorio, que puede ser de diversas formas (en diferentes sistemas Unices y compatibles con POSIX) / usr / lib / terminfo , / usr / share / terminfo , o incluso / usr / share / lib / terminfo . (Su ubicación ni siquiera es uniforme en las diferentes distribuciones de Linux ).

A diferencia de la base de datos termcap, la base de datos terminfo está compilada, una base de datos legible por máquina que se construye a partir de un formato de archivo fuente legible por humanos mediante un programa de utilidad, tic . Pueden descompilarse de un formato legible por máquina a un formato legible por humanos mediante otro programa de utilidad, infocmp . El comando para generar la forma legible por humanos de la definición de terminal "vt100", por ejemplo, es:

infocmp vt100

El uso de un formato legible por máquina fue para evitar la sobrecarga innecesaria, en programas de aplicaciones que utilizan sistemas como la biblioteca termcap, de analizar repetidamente el contenido de la base de datos para leer los campos de un registro. El uso de varios archivos fue para evitar la sobrecarga similar de analizar el contenido de la base de datos para encontrar el registro de la base de datos para el tipo de terminal de destino. El índice de nombre de tipo de terminal es, efectivamente, la estructura de directorios ordinaria del sistema de archivos Unix / POSIX. Originalmente, Unix tenía graves problemas de rendimiento con directorios grandes que contenían muchos archivos, por lo que terminfo usa una estructura de dos niveles, dividiendo las entradas del directorio por la primera letra en una serie de subdirectorios. Los formatos de sistemas de archivos más recientes utilizados en sistemas Unix no sufren tanto de estos problemas (porque sus estructuras de directorio en el disco ya no son simples matrices de entradas, sino que están organizadas en árboles o tablas hash) y, por lo tanto, la necesidad de este elemento de diseño , que todavía existe en las implementaciones modernas de terminfo, ha desaparecido.

Programas de utilidad para ejercitar las capacidades del terminal

En los sistemas Unix, el comando tput se usa para buscar una capacidad específica en la base de datos del sistema y enviarla a la salida estándar del comando (que es, presumiblemente, el terminal mediante el cual se realizará la función indicada por la capacidad). Una de las operaciones más sencillas es limpiar la pantalla. El nombre del campo de la base de datos que almacena la secuencia de salida para esto es claro , por lo que los argumentos del comando para el programa tput para borrar la pantalla son

tput clear

Otra operación es inicializar o restablecer el terminal a un estado predeterminado conocido (de atributos de caracteres, fuentes, colores, etc.). Los comandos para esto son:

tput init

y

tput reset

Normalmente, el comando tput utiliza el tipo de terminal especificado por la TERM variable de entorno , una de las variables de entorno de control de la interfaz de terminal POSIX . Sin embargo, esto se puede anular para forzar a tput a buscar un tipo de terminal diferente en la base de datos, con una opción de línea de comandos para el comando. Entonces, por ejemplo, para emitir la secuencia de reinicio apropiada para el tipo de terminal llamado "vt100" en la base de datos (generalmente un terminal DEC VT100 ), independientemente del tipo de terminal especificado en las variables de entorno, el comando es:

tput -T vt100 reset

Referencias

Que apoya a que

Fuentes utilizadas

  • Afzal, Amir (2008). UNIX ilimitado: un enfoque inicial (5ª ed.). Prentice Hall. ISBN   978-0-13-119449-6 .
  • Blum, Richard (2008). Línea de comandos de Linux y Biblia de secuencias de comandos de Shell . Serie de la Biblia. John Wiley e hijos. ISBN   978-0-470-25128-7 .
  • Ataúd, Stephen (1991). Versión 4 del sistema UNIX V: la referencia completa . Osborne McGraw-Hill. ISBN   978-0-07-881653-6 .
  • Frisch, Æleen (2002). Administración del sistema esencial . Manual resumido (3ª ed.). O'Reilly Media, Inc. ISBN   978-0-596-00343-2 .
  • Kumar, Sudhir (2004). Enciclopedia del sistema operativo . Publicaciones Anmol PVT. LIMITADO. ISBN   978-81-261-1792-5 .
  • Raymond, Eric S. (2004). El arte de la programación Unix . Serie informática profesional Addison-Wesley. Addison-Wesley. ISBN   978-0-13-142901-7 .
  • Winsor, Janice (2001). Guía avanzada del administrador del sistema Solaris 8 (3.ª ed.). Prentice Hall PTR. ISBN   978-0-13-027703-9 .

Otras lecturas

  • Strang, John; Mui, Linda; O'Reilly, Tim (1991). Termcap y terminfo . Manual de cáscara de nuez (3ª ed.). O'Reilly Media, Inc. ISBN   978-0-937175-22-4 .