Muito brevemente (é possível escrever várias páginas sobre o tópico): screen
funciona por
- configurar um processo do servidor que assuma todas as entradas / saídas diretamente no seu terminal,
- iniciando processos do cliente para cada janela que você cria e
- conectando o servidor e os clientes conforme eles são iniciados usando uma conexão pseudo-terminal (um recurso do sistema operacional).
Quando um cliente (janela) é criado, ele é isolado dos outros clientes. Ele se comunica via conexão pseudo-terminal com o processo do servidor, que atualiza o terminal. O servidor controla o que deve ser mostrado no terminal em uma determinada janela, fornecendo a você a capacidade de alternar entre as janelas. Os clientes são executados sem saber se screen
está exibindo suas informações no momento.