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 los emuladores de terminal de software) es capaz de hacerlo, 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 los colores y atributos de la 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 otras (clave especial clave casa , clave final , clave ayuda , claves RePág , clave AvPág , Inserte el texto , tecla de borrar , etc.) las pulsaciones de teclado. [1] [2]
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. [3] [4] 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. [5]
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. [3] [2] Los campos de capacidad en sí 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 del terminal, si la salida se ajusta automáticamente a la siguiente línea cuando llega al final de una línea, y así sucesivamente. [2]
- 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 ␛2Jen un terminal que requiere secuencias de escape ANSI . [6] [2]
- 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 varias acciones y eventos, como las teclas de función y las teclas de flecha que se presionan. [2]
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 compatibles con Unices y POSIX) / usr / lib / terminfo , / usr / share / terminfo , o incluso / usr / share / lib / terminfo . [5] (Su ubicación ni siquiera es uniforme en las diferentes distribuciones de Linux . [7] )
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 . [8] El comando para generar la forma legible por humanos de la definición de terminal "vt100", por ejemplo, es: [7]
infocmp vt100
El uso de un formato legible por máquina fue para evitar la sobrecarga innecesaria, en programas de aplicaciones que usan 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 y, por lo tanto, 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. [8]
Programas de utilidad para ejercitar las capacidades del terminal
En los sistemas Unix, el 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). [1] 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 al tput programa para borrar la pantalla son [1]
tput claro
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: [9]
tput init
y
tput restablecer
Normalmente el 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 puede anularse para forzar tput para buscar un tipo de terminal diferente en la base de datos, con una opción de línea de comandos para el comando. [1] 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 restablecer
Referencias
Que apoya a que
- ↑ a b c d Afzal , 2008 , p. 419.
- ↑ a b c d e Frisch , 2002 , p. 770.
- ↑ a b Ataúd , 1991 , p. 115.
- ^ Ataúd 1991 , p. 372.
- ↑ a b Frisch , 2002 , p. 769.
- ^ Kumar 2004 , p. 417.
- ↑ a b Blum , 2008 , p. 31.
- ↑ a b Raymond , 2004 , p. 144-145.
- ^ Winsor 2001 , p. 244–245.
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.). PTR de Prentice Hall. 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.