GNU Screen es un multiplexor de terminal : una aplicación de software que puede utilizarse para multiplexar varias consolas virtuales , lo que permite a un usuario acceder a múltiples sesiones de inicio de sesión independientes dentro de una única ventana de terminal , o separar y volver a conectar sesiones desde una terminal. Es útil para gestionar múltiples programas desde una interfaz de línea de comandos y para separar programas de la sesión del shell de Unix que inició el programa, en particular para que un proceso remoto continúe ejecutándose incluso cuando el usuario está desconectado.
Publicado bajo los términos de la versión 3 o posterior de la Licencia Pública General de GNU , GNU Screen es software libre .
GNU Screen puede considerarse como una versión de texto de los gestores de ventanas gráficos o como una forma de incorporar terminales virtuales en cualquier sesión de inicio de sesión. Es un contenedor que permite ejecutar varios programas de texto al mismo tiempo y proporciona funciones que permiten al usuario utilizar los programas dentro de una única interfaz de forma productiva. Esto permite las siguientes funciones : persistencia, múltiples ventanas y uso compartido de sesiones.
Screen se utiliza a menudo cuando una conexión de red al terminal no es fiable, ya que una conexión de red interrumpida normalmente finaliza todos los programas que el usuario estaba ejecutando (procesos secundarios de la sesión de inicio de sesión), debido a que la sesión finaliza y envía una señal de "colgado" ( SIGHUP ) a todos los procesos secundarios. Ejecutar las aplicaciones bajo screen significa que la sesión no finaliza, solo se desconecta el terminal ahora inactivo, por lo que las aplicaciones ni siquiera saben que el terminal se ha desconectado y permite al usuario volver a conectar la sesión más tarde y continuar trabajando desde donde lo dejó.
Screen fue diseñado originalmente por Oliver Laumann y Carsten Bormann en Technische Universität Berlin y publicado en 1987. [2] [3]
Los criterios de diseño incluyeron la emulación VT100 (que incluía ANSI X3.64 (ISO 6429) e ISO 2022) y un rendimiento razonable para un uso diario intenso, cuando los terminales basados en caracteres aún eran comunes. Más tarde, se agregó la característica novedosa en ese momento de desconexión y reconexión.
Alrededor de 1990, Laumann entregó el mantenimiento del código a Jürgen Weigert y Michael Schroeder en la Universidad de Erlangen-Nuremberg , quienes más tarde trasladaron el proyecto al Proyecto GNU y agregaron características como desplazamiento hacia atrás, pantalla dividida, copiar y pegar y compartir pantalla . [4]
En 2014, el desarrollo se había ralentizado hasta casi detenerse. Amadeusz Sławiński, que quería cambiar esta situación, se ofreció a ayudar. En respuesta, Laumann le concedió el mantenimiento. Sławiński procedió a publicar la primera versión nueva de Screen en media década. Como había algunas versiones no oficiales de "Screen 4.1" circulando por Internet, llamó a esta nueva versión "Screen 4.2.0".
En mayo de 2015, en la conferencia openSUSE, Jürgen Weigert invitó a Alexander Naumov a ayudar a desarrollar y mantener GNU Screen. Dos meses después, con la ayuda de Alex, se lanzó GNU Screen 4.3.0 .