¿Cómo funciona realmente `screen`?

8

Acabo de enterarme screeny se ve maravilloso.

Algunas preguntas:

  1. ¿Cómo funcionan realmente?
  2. ¿Por qué las descargas / procesos no se interrumpen en las pantallas a pesar de que sucedió algo malo?
jsn alf
fuente
Puede ser útil: echo $TERMen una sesión de pantalla se imprime screenen lugar de xtermen sesiones de bash ordinarias.
forumulator

Respuestas:

16

Muy brevemente (es posible escribir varias páginas sobre el tema): screen trabaja por

  • configurar un proceso de servidor que se haga cargo de todas las entradas / salidas directamente a su terminal,
  • iniciar procesos de cliente para cada ventana que cree, y
  • conectar el servidor y los clientes cuando se inician utilizando una conexión de pseudo terminal (una característica del sistema operativo).

Una vez que se crea un cliente (ventana), se aísla de los otros clientes. Se comunica a través de la conexión pseudo-terminal al proceso del servidor, que actualiza el terminal. El servidor realiza un seguimiento de lo que se debe mostrar en el terminal en una ventana determinada, lo que le permite cambiar entre ventanas. Los clientes se ejecutan sin saber si screenactualmente está mostrando su información.

Thomas Dickey
fuente
claro y rápido +1
aran