Originalmente solo tenías terminales tontas, al principio en realidad teletipos (similar a una máquina de escribir eléctrica, pero con un rollo de papel) (de ahí / dev / tty - TeleTYpers), pero luego pantalla + teclado-combos, que solo enviaron un código de tecla a la computadora y la computadora envió un comando que escribió la carta en el terminal (es decir, el terminal no tenía eco local, la computadora tuvo que ordenar al terminal que escribiera lo que el usuario escribió en el terminal) - esta es una de las razones por qué tantos comandos importantes de Unix son tan cortos. La mayoría de los terminales estaban conectados por líneas en serie, pero (al menos) uno estaba conectado directamente a la computadora (a menudo la misma habitación): esta era la consola. Solo se confiaba en unos pocos usuarios seleccionados para trabajar en "la consola" (a menudo, este era el único "terminal" disponible en modo de usuario único).
Más tarde también hubo algunos terminales gráficos (llamados "xterminals", que no deben confundirse con el xterm
programa) con pantalla y tarjeta gráfica de pantalla, teclado, mouse y un procesador simple; que simplemente podría ejecutar un servidor X. No hicieron ningún cálculo ellos mismos, por lo que los clientes X se ejecutaron en la computadora a la que estaban conectados. Algunos tenían discos duros, pero también podían arrancar a través de la red. Eran populares a principios de la década de 1990, antes de que las PC se volvieran tan baratas y potentes.
Un "emulador de terminal", la "ventana de terminal" que abre con programas como xterm
o konsole
, intenta imitar la funcionalidad de dichos terminales tontos. También programas como PuTTY
(Windows) emulan terminales.
Con la PC, donde "la consola" (teclado + pantalla) y "la computadora" es más una sola unidad, tienes "terminales virtuales" (en Linux, teclas Alt + F1 a Alt + F6), pero también estas imitan terminales de estilo antiguo. Por supuesto, dado que Unix / Linux se está convirtiendo en un sistema operativo de escritorio utilizado a menudo por un usuario individual, ahora realiza la mayor parte de su trabajo "en la consola", donde los usuarios antes usaban terminales conectadas por líneas en serie.
Por supuesto, es el shell que inicia los programas. Y utiliza la llamada fork-systemcall (lenguaje C) para hacer una copia de sí mismo con una configuración de entorno, luego se usa exec-systemcall para convertir esta copia en el comando que desea ejecutar. El shell se suspende (a menos que el comando se ejecute en segundo plano) hasta que se complete el comando. A medida que el comando hereda la configuración de stdin, stdout y stderr del shell, el comando escribirá en la pantalla del terminal y recibirá información del teclado del terminal.