stringtranslate.com

emulador de terminales

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 alguna otra arquitectura de pantalla. Aunque suele ser sinónimo de terminal de shell o de texto , 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 a menudo se denomina ventana de terminal .

Una ventana de terminal permite al usuario acceder a un terminal de texto y todas sus aplicaciones, como las interfaces de línea de comandos (CLI) y las aplicaciones de interfaz de usuario de texto (TUI). Estos pueden ejecutarse en la misma máquina o en una diferente a través de telnet , ssh , acceso telefónico o mediante una conexión serie directa . En 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 terminales conocida como ECMA-48 , ANSI X3.64 o ISO/IEC 6429 .

Fondo

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

Terminales orientados 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 un carácter a la vez, 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 a la computadora central o al servidor terminal 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 realicen funciones como borrar una línea, borrar la pantalla o controlar posición del cursor. En este contexto, los terminales tontos a veces reciben el nombre de Teletipos de cristal , porque esencialmente tienen la misma funcionalidad limitada que un Teletipo mecánico. Este tipo de terminal tonto todavía es compatible con sistemas modernos tipo Unix configurando la variable de entorno TERM en dumb. Terminales inteligentes o 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 las computadoras personales se volvieron omnipresentes en la década de 1980, ofrecieron la opción de ejecutar software en la computadora personal del usuario, brindando la oportunidad de reemplazar terminales de hardware costosos y que consumían espacio con algo que tuviera funciones adicionales. [3] Inmediatamente estuvo disponible un software que podía emular las funciones de los terminales de hardware de 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 generalmente ejecutan versiones de Unix , también se volvieron comunes en la década de 1980. Los sistemas Unix generalmente proporcionaban acceso a la línea de comando con terminales conectados localmente o de 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 emulador 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 terminales 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]

Gracias al éxito de Linux , especialmente ejecutándose en centros de datos y servidores en la nube, [6] [ enlace muerto ] persiste la necesidad de acceder a computadoras remotas a través de terminales basadas en caracteres. Esto es evidente en el hecho de que hoy en día las listas de emuladores de terminales que podrían servir como alternativa al mencionado PuTTY ofrecen más de 100 alternativas. [7] [ dudoso ]

Ejemplos de terminales emulados

Se han desarrollado muchos emuladores de terminal para terminales como VT52 , VT100 , VT220 , VT320 , IBM 3270/8/9/E , IBM 5250 , IBM 3179G , Data General D211, Hewlett-Packard HP700/92, Sperry/Unisys serie 2000. UTS60 , Burroughs/Unisys A-series T27/TD830/ET1100, ADDS ViewPoint, consola Sun , QNX , AT386, SCO-ANSI, SNI 97801, Televideo y Wyse 50/60. Además, se han desarrollado programas para emular otros emuladores de terminales como xterm y una variedad de terminales de consola (por ejemplo, para Linux ). Finalmente, algunos emuladores simplemente hacen referencia a un estándar, como ANSI . Estos programas están disponibles en muchas plataformas, desde DOS y Unix hasta Windows y macOS hasta sistemas operativos integrados que se encuentran en teléfonos móviles y hardware industrial.

Detalles de implementacion

Sistemas tipo Unix

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

Con los emuladores de terminal, esos archivos de dispositivo se emulan mediante el uso de un par de dispositivos pseudoterminales . Este par se utiliza para emular un puerto/conexión físico al punto final de la computadora host: el hardware de la computadora proporcionado por las API del sistema operativo, algún otro software como rlogin , telnet o SSH , etc. [9] Por ejemplo, en 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 especiales de consola virtual como /dev/console. En modo texto, escribir en el archivo muestra texto en la consola virtual y leer el archivo devuelve el texto que el usuario escribe en la consola virtual. Al igual que con otras terminales de texto , también existen 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 utilizar llamadas especiales al sistema ioctl de consola y terminal. Se pueden comparar dispositivos utilizando los patrones vcs ("pantalla de consola virtual") y vcsa ("pantalla de consola virtual con atributos") como /dev/vcs1y /dev/vcsa1. [10]

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

Las consolas virtuales se pueden configurar en el archivo /etc/inittableído por init ; normalmente inicia el proceso de inicio de sesión en modo texto getty para varias consolas virtuales. El sistema X Window se puede configurar en /etc/inittabo mediante un administrador de pantalla X. Varias distribuciones de Linux utilizan 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 aún ligeramente incorrectamente "echoplex" (que formalmente es un mecanismo de detección de errores en lugar de una opción de visualización de entrada). [11] [12] [13] [14]

Modo línea a la vez/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 necesaria ] 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 del teclado o un botón de "enviar" de algún tipo en la interfaz de usuario. En ese punto, se transmite toda la línea. 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. [11] [15] 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á la contraseña). [dieciséis]

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

Terminales síncronos

En terminales asíncronos los datos pueden fluir en cualquier dirección en cualquier momento. En terminales síncronos, un protocolo controla quién puede enviar datos y cuándo. Los terminales basados ​​en IBM 3270 utilizados con computadoras centrales IBM son un ejemplo de terminales síncronos . Operan en un modo esencialmente de "pantalla a la vez" (también conocido como modo de bloqueo ). Los usuarios pueden realizar numerosos cambios en una página antes de enviar la pantalla actualizada a la máquina remota como una sola acción.

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

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

Consolas virtuales

Las consolas virtuales , también llamadas terminales virtuales, son terminales de texto emulados , 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.

Ver también

Notas

  1. ^ FU Berlín, 3. Arquitectura de minicomputadora
  2. ^ "¿Qué es un terminal tonto? Definición y significado". BusinessDictionary.com . Archivado desde el original el 13 de agosto de 2020 . Consultado el 13 de marzo de 2019 .
  3. ^ "Emulación de una terminal en computadoras personales".
  4. ^ "Telemate Wiki".
  5. ^ "Clientes SSH para Windows".
  6. ^ "Impulsando Linux en el centro de datos".
  7. ^ "Alternativas a la masilla".
  8. ^ "Una breve historia de la emulación de terminal | Turbosoft". www.ttwin.com . Consultado el 4 de octubre de 2021 .
  9. ^ "Página de manual de Ubuntu: tty - interfaz de terminal general". páginas de manual.ubuntu.com . Consultado el 4 de octubre de 2021 .
  10. ^ "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'): comienza con un encabezado que indica el número de filas y columnas y la ubicación del cursor. Ver vcs(4).
  11. ^ ab Daintith 2004, pág. 171.
  12. ^ Weik 2000, "eco" p. 478.
  13. ^ Weik 2000, "echoplex" pág. 479.
  14. ^ Weik 2000, "modo ecoplex" p. 479.
  15. ^ Bangia 2010, pag. 324.
  16. ^ Stevens y Wright 1994, pág. 413.
  17. ^ Molinero 2009, pag. 590, 591.

Referencias

enlaces externos