 |
ISIS1206 - Estructuras de Datos |
Una breve historia del terminal moderno
Del teletipo al teclado
Previo a la invención y popularización de los monitores electrónicos (incluso de las tarjetas perforadas) como principal medio de interacción con un computador, la inserción de comandos e instrucciones a la máquina era realizado usando un Teletipo. Este dispositivo era reminiscente de las máquinas de escribir, no obstante, difería en la medida que el texto escrito por el operador humano no solo era mostrado en la hoja de papel, también era codificado y retransmitido a otras unidades de teletipo u otros artefactos electrónicos que para este caso eran computadoras.
Figura 1: Teletipo Modelo 33
La máquina podía imprimir sus resultados en la hoja dispuesta en el teletipo, lo cual permitía establecer un sistema de interacción casi en tiempo real con la máquina [1](#myfootnote1). Conforme el poder computacional incrementó con el paso del tiempo y nuevas tecnologías ingresaron al mercado, los teletipos pronto serían reemplazados por los novedosos monitores y pantallas, finalizando así, una era importante en la historia de la Interacción Humano-Máquina (HCI).
Hacia la mitad de la década de 1970, la desaparición de los teletipos era un hecho. No obstante, la necesidad de introducir, ejecutar y visualizar los resultados de una instrucción dispuesta a una máquina, permanecía y permanece como una necesidad imperante al momento de usar un computador, ¿Qué hacer ante la desaparición del teletipo?[2](#myfootnote2)
La solución diseñada e implementada para abordar las funciones de un terminal físico estaría basada en un programa virtual que simulara y cumpliera estas funciones dentro de un nuevo entorno basado en un teclado y un monitor.
Este programa se denominaría Terminal virtual, y sería reminiscente a las imágenes que la industria cinematográfica siempre recrea al momento de involucrar un computador como el equipo esencial en la resolución de un crimen, conspiración o por el contrario, para representar el estereotipo clásico de un programador: Personas desaseadas que trabajan 24 horas detrás de una pantalla negra con texto blanco o verde (un terminal virtual) en un sótano. Afortunadamente en la actualidad esta imagen se encuentra muy alejada de la realidad del desarrollo de software.
A partir de la popularización de las interfaces gráficas de usuarios (GUI) como principal medio de interacción con las máquinas, el terminal es utilizado principalmente por programadores y administradores de servicios tecnológicos. Esto se debe a que permite realizar ciertas tareas de forma más eficiente que con las GUI. Por ejemplo acceder al sistema operativo de forma directa y ejecutar comandos para modificar su configuración.
1: El poder computacional era limitado en aquel entonces, además, la escritura en el teletipo estaba sujeta a la velocidad electromecánica del teclado del teletipo. Solo un Usuario, humano o máquina podía acceder a este en un momento determinado del tiempo.
2: El uso de interfaces gráficas (GUI), se volvería masivo a partir de la década de 1990.
Entradas Estándar
Transcurría la década de 1970, nuevas tecnologías y productos diseñados con el fin de mejorar la experiencia de usuario ingresaban al mercado, esto implicaba que el teclado no sería el único dispositivo diseñado para enviar señales e información al terminal del computador[3](#myfootnote3). Previo a la invención y publicación de Unix en 1973, todo programa dispuesto a acceder a los recursos de un dispositivo de entrada o salida debía conocer la dirección física, así como los protocolos dispuestos por el sistema operativo, además del protocolo específico para establecer comunicación directa con el dispositivo.
Con el fin de simplificar y evadir posibles problemas al momento de acceder a un dispositivo, Unix implementó el uso de dispositivos abstractos[4](#myfootnote4), esto permitió desacoplar los dispositivos físicos de las rutinas de software que hacen uso de estos. Cada dispositivo abstracto se comporta de forma equivalente, haciendo uso de un flujo (entrada) de comunicación con el sistema operativo; estas entradas permitirían escribir y leer una secuencia ordenada de bytes acotada con un carácter especial de fin de archivo[5](#myfootnote5). Así mismo, Unix estableció un enlace entre flujos de entrada y flujos de salida: Un flujo de salida de un dispositivo puede ser redirigido al flujo de entrada de otro dispositivo y viceversa.
Conforme a esta descripción, Unix definió tres flujos posibles de intercambio de información con el sistema operativo, un flujo de entrada de datos (stdin), un flujo de salida de datos (stdout) y finalmente, un flujo de diagnóstico o de envío de mensajes de error (stderr).
Figura 3: Representación gráfica de las entradas estándar
¿Qué máquina inspiró el terminal moderno?
¿En que época desapareció?
¿La novedad más importante introducida por el sistema UNIX fue?
¿Cuantos flujos diferentes existen para manejar la entrada y salida de información en la línea de comandos?
Referencias
[1] Wikipedia, The Free Encyclopedia. Teleprinter. (En línea; Recuperado el 3/07/15). 14 de Abril de 2015. URL: https://en.wikipedia.org/wiki/Teleprinter
[2] Ritchie, Dennis M. "A stream input-output system." UNIX Research System Papers (1990): 503-511. Disponible en: https://cseweb.ucsd.edu/classes/fa01/cse221/papers/ritchie-stream-io-belllabs84.pdf
Mayor Información
- Documentación acerca de algunos de los comandos más populares y usados en Linux, Mac OSX y Windows
- Más información acerca del uso de las entradas estándar en utilidades de consola (Mac OSX y Linux): https://gigaom.com/2009/07/01/dig-into-unix-standard-streams/
3: De igual forma, con la invención de impresoras y monitores suplementarios, el monitor principal del computador no seria el único dispositivo al cual se pudiese imprimir información.
4: Similar al concepto de Interfaz en el paradgima de programación orientada a objetos
5: Posteriormente, un concepto similar fue implementado para intercambiar información entre dos clientes conectados directamente en una misma red, ver Sockets