stringtranslate.com

Emulador de terminal

xterm , un emulador de terminal diseñado para el sistema X Window
Windows Terminal , un emulador de terminal de código abierto para Windows 10 y Windows 11

Un emulador de terminal , o aplicación de terminal , es un programa informático que emula un terminal de vídeo dentro de otra arquitectura de pantalla. Aunque normalmente es sinónimo de terminal de texto o shell , el término terminal cubre todos los terminales remotos, incluidas las interfaces gráficas. Un emulador de terminal dentro de una interfaz gráfica de usuario suele denominarse ventana de terminal .

Una ventana de terminal permite al usuario acceder a una terminal de texto y a todas sus aplicaciones, como interfaces de línea de comandos (CLI) y aplicaciones de interfaz de usuario de texto (TUI). Estas pueden estar ejecutándose en la misma máquina o en una diferente a través de telnet , ssh , acceso telefónico o mediante una conexión serial directa . En los sistemas operativos tipo Unix , es común tener una o más ventanas de terminal conectadas a la máquina local.

Los terminales generalmente admiten un conjunto de secuencias de escape para controlar el color, la posición del cursor , etc. Los ejemplos incluyen la familia de estándares de secuencia de control de terminal que incluye ECMA-48 , ANSI X3.64 e ISO/IEC 6429 .

Fondo

En los primeros tiempos de la informática, con la llegada de la informática interactiva, el modelo predominante consistía en una computadora central conectada a múltiples terminales. [1] Esta configuración, conocida como modelo centralizado o mainframe, incluía una potente computadora central que realizaba todas las tareas de procesamiento, mientras que las terminales servían como dispositivos de entrada/salida para que los usuarios interactuaran con el sistema. Estos sistemas se basaban inicialmente en caracteres.

Terminales orientadas a caracteres

Un terminal de modo de caracteres ASCII de Televideo

Un terminal orientado a caracteres es un tipo de terminal de computadora que se comunica con su host carácter por carácter, a diferencia de un terminal orientado a bloques que se comunica en bloques de datos. Es el tipo de terminal de datos más común, porque es fácil de implementar y programar. La conexión con la computadora central o el servidor de terminales se logra a través de enlaces seriales RS-232, Ethernet u otros protocolos propietarios .

Los terminales orientados a caracteres pueden ser "tontos" o "inteligentes". Los terminales tontos [2] son ​​aquellos que pueden interpretar un número limitado de códigos de control (CR, LF, etc.) pero no tienen la capacidad de procesar secuencias de escape especiales que realizan funciones como limpiar una línea, limpiar la pantalla o controlar la posición del cursor. En este contexto, los terminales tontos a veces se denominan teletipos de vidrio , ya que esencialmente tienen la misma funcionalidad limitada que un teletipo mecánico. Este tipo de terminal tonto aún se admite en los sistemas modernos tipo Unix estableciendo la variable de entorno TERM en dumb. Los terminales inteligentes son aquellos que también tienen la capacidad de procesar secuencias de escape, en particular las secuencias de escape VT52, VT100 o ANSI.

Emuladores

Cuando los ordenadores personales se hicieron omnipresentes en la década de 1980, ofrecieron la opción de ejecutar software en el ordenador personal del usuario, lo que proporcionó la oportunidad de reemplazar los costosos y espaciosos terminales de hardware por algo que tuviera funciones adicionales. [3] Inmediatamente estuvo disponible un software que podía emular las funciones de los terminales de hardware en un PC. Ejemplos de este tipo de software para DOS fueron Telix o Telemate, que se publicó en 1988 y podía emular un terminal DEC VT102. [4]

Las estaciones de trabajo , que normalmente ejecutaban versiones de Unix , también se hicieron comunes en la década de 1980. Los sistemas Unix generalmente proporcionaban acceso a la línea de comandos con terminales conectados localmente o por acceso telefónico. Las estaciones de trabajo Unix fueron diseñadas para usarse principalmente a través de una interfaz gráfica de usuario (GUI); para proporcionar acceso a la línea de comandos, la GUI incluía aplicaciones de emulación de terminal que se comportaban como terminales conectados localmente.

Durante la década de 1990, llegaron nuevos sistemas operativos como Windows y OS/2 , que proporcionaron la base técnica para más emuladores de terminal como Telix para Windows, ZOC para OS/2 o PuTTY , que se lanzó inicialmente para Windows en 1998 y que (junto con sus derivados) sigue siendo una opción muy popular hasta el día de hoy. [5]

A pesar del éxito de Linux , especialmente en los centros de datos y servidores en la nube, [6] [ enlace roto ] sigue siendo necesario acceder a ordenadores remotos a través de terminales basados ​​en caracteres. Esto es evidente en el hecho de que hoy en día las listas de emuladores de terminal que podrían servir como alternativa al mencionado PuTTY ofrecen más de 100 alternativas. [7] [ dudosodiscutir ]

Ejemplos de terminales emulados

Se han desarrollado muchos emuladores de terminal para terminales de hardware físico como VT52 , VT100 , VT220 , VT320 , IBM 3270/8/9/E , IBM 5250 , IBM 3179G , Data General D211, Hewlett-Packard HP700/92, Sperry/Unisys 2000-series UTS60 , Burroughs/Unisys A-series T27/TD830/ET1100, ADDS ViewPoint, AT386, Siemens Nixdorf (SNI) 97801, Televideo 925 y Wyse 50/60.

Algunos emuladores de terminal, como xterm , implementan características adicionales que no están presentes en el terminal emulado. [8]

Además, se han desarrollado programas para emular diversos "terminales" de consola del sistema, como la consola de la estación de trabajo Sun y la consola Linux .

Finalmente, algunos emuladores simplemente hacen referencia a un conjunto de estándares, como los estándares para códigos de escape ANSI .

Estos programas están disponibles en muchas plataformas, incluidos DOS , sistemas similares a Unix como Linux y macOS , Windows y sistemas operativos integrados que se encuentran en teléfonos celulares y hardware industrial.

Detalles de implementación

Sistemas tipo Unix

En el pasado, los sistemas Unix y similares utilizaban dispositivos de puerto serie, como los puertos RS-232 , y proporcionaban /dev/* archivos de dispositivo para ellos. [9]

Con los emuladores de terminal, esos archivos de dispositivo se emulan mediante un par de dispositivos pseudoterminales . Este par se utiliza para emular un puerto físico/conexión al punto final informático del host: el hardware de la computadora proporcionado por las API del sistema operativo, algún otro software como rlogin , telnet o SSH , etc. [10] Por ejemplo, en los sistemas Linux, estos serían /dev/ptyp0(para el lado maestro) y /dev/ttyp0(para el lado esclavo) dispositivos pseudoterminales respectivamente.

También hay archivos de consola virtual especiales como /dev/console. En modo texto, escribir en el archivo muestra texto en la consola virtual y leer desde el archivo devuelve el texto que el usuario escribe en la consola virtual. Al igual que con otras terminales de texto , también hay secuencias de escape especiales , caracteres de control y funciones que un programa puede usar, más fácilmente a través de una biblioteca como ncurses . Para operaciones más complejas, los programas pueden usar llamadas especiales al sistema ioctl de consola y terminal . Se pueden comparar dispositivos usando los patrones vcs ("pantalla de consola virtual") y vcsa ("pantalla de consola virtual con atributos") como /dev/vcs1y /dev/vcsa1. [11]

Algunos emuladores de terminal también incluyen secuencias de escape para configurar el comportamiento de la terminal para facilitar una buena interoperación entre la terminal y los programas que se ejecutan dentro de ella, por ejemplo para configurar el pegado con corchetes .

Las consolas virtuales se pueden configurar en el archivo /etc/inittableído por init -- típicamente inicia el proceso de inicio de sesión en modo texto getty para varias consolas virtuales. X Window System se puede configurar en /etc/inittabo mediante un administrador de pantalla X. Varias distribuciones de Linux usan systemd en lugar de init , lo que también permite la configuración de la consola virtual.

Herramientas CLI

Los programas típicos del sistema Linux utilizados para acceder a las consolas virtuales incluyen:

Eco local

Los emuladores de terminal pueden implementar una función de eco local , que puede denominarse erróneamente " half-duplex " o, de forma ligeramente incorrecta, "echoplex" (que es formalmente un mecanismo de detección de errores en lugar de una opción de visualización de entrada). [12] [13] [14] [15]

Modo línea a línea/Edición local

Los emuladores de terminal pueden implementar la edición local, también conocida como "modo línea a la vez". Esto también se conoce erróneamente como " semidúplex ". [ cita requerida ] En este modo, el emulador de terminal solo envía líneas completas de entrada al sistema host. El usuario ingresa y edita una línea, pero se mantiene localmente dentro del emulador de terminal mientras se edita. No se transmite hasta que el usuario indica su finalización, generalmente con la ↵ Entertecla en el teclado o un botón de "enviar" de algún tipo en la interfaz de usuario. En ese punto, se transmite la línea completa. El modo línea a la vez implica eco local, ya que de lo contrario el usuario no podrá ver la línea mientras se edita y construye. [12] [16] Sin embargo, el modo línea a la vez es independiente del modo eco y no requiere eco local. Al ingresar una contraseña, por ejemplo, es posible ingresar línea a la vez con edición local, pero el eco local está desactivado (de lo contrario, se mostraría la contraseña). [17]

Las complejidades del modo línea por línea se ejemplifican con la opción de modo línea por línea del protocolo Telnet. Para implementarlo correctamente, la implementación de la Terminal Virtual de Red provista por el programa emulador de terminal debe ser capaz de reconocer y manejar adecuadamente los eventos de "interrupción" y "aborto" que llegan en medio de la edición local de una línea. [18]

Terminales sincrónicos

En los terminales asincrónicos, los datos pueden fluir en cualquier dirección y en cualquier momento. En los terminales sincrónicos, un protocolo controla quién puede enviar datos y cuándo. Los terminales basados ​​en IBM 3270 que se utilizan con los ordenadores mainframe de IBM son un ejemplo de terminales sincrónicos . Funcionan básicamente en un modo de "pantalla a pantalla" (también conocido como modo de bloque ). Los usuarios pueden realizar numerosos cambios en una página, antes de enviar la pantalla actualizada a la máquina remota como una única acción.

Los emuladores de terminal que simulan el protocolo 3270 están disponibles para la mayoría de los sistemas operativos, para su uso tanto por parte de quienes administran sistemas como el z9 , como por parte de quienes utilizan las aplicaciones correspondientes como CICS .

Otros ejemplos de terminales síncronos incluyen el IBM 5250 , el ICL 7561, el Honeywell Bull VIP7800 y el Hewlett-Packard 700/92.

Consolas virtuales

Las consolas virtuales , también llamadas terminales virtuales, son terminales de texto emuladas , que utilizan el teclado y el monitor de una computadora personal o estación de trabajo. La palabra "texto" es clave, ya que las consolas virtuales no son terminales GUI y no se ejecutan dentro de una interfaz gráfica. Las consolas virtuales se encuentran en la mayoría de los sistemas tipo Unix . Se utilizan principalmente para acceder e interactuar con servidores, sin utilizar un entorno de escritorio gráfico.

Véase también

Notas

  1. ^ FU Berlín, 3. Arquitectura de minicomputadoras
  2. ^ "¿Qué es terminal tonta? definición y significado". BusinessDictionary.com . Archivado desde el original el 13 de agosto de 2020. Consultado el 13 de marzo de 2019 .
  3. ^ "Emulando un terminal en computadoras personales".
  4. ^ "Wiki de Telemate".
  5. ^ "Clientes SSH para Windows".
  6. ^ "Alimentando Linux en el centro de datos".
  7. ^ "Alternativas a la masilla".
  8. ^ Thomas E. Dickey. "XTerm - Preguntas frecuentes (FAQ)". ¿Por qué un VT220?
  9. ^ "Una breve historia de la emulación de terminal | Turbosoft". www.ttwin.com . Consultado el 4 de octubre de 2021 .
  10. ^ "Página de manual de Ubuntu: tty — interfaz de terminal general". manpages.ubuntu.com . Consultado el 4 de octubre de 2021 .
  11. ^ "Volcados de pantalla". El CÓMO del teclado y la consola de Linux . El Proyecto de documentación de Linux . Consultado el 31 de julio de 2008 . Se puede acceder al contenido actual de la pantalla de /dev/ttyN usando el dispositivo /dev/vcsN (donde 'vcs' significa 'pantalla de consola virtual'). [...] Desde un programa, normalmente es mejor usar /dev/vcsaN ('pantalla de consola virtual con atributos') en su lugar - comienza con un encabezado que indica el número de filas y columnas y la ubicación del cursor. Véase vcs(4).
  12. ^ desde Daintith 2004, pág. 171.
  13. ^ Weik 2000, "eco" pág. 478.
  14. ^ Weik 2000, "echoplex" pág. 479.
  15. ^ Weik 2000, "modo echoplex" pág. 479.
  16. ^ Bangia 2010, pág. 324.
  17. ^ Stevens y Wright 1994, pág. 413.
  18. ^ Miller 2009, págs. 590, 591.

Referencias

Enlaces externos