GNU screen is a virtual terminal multiplexor. It virtualizes the concept of a TTY on a Un*x system. You can do all the following cool things:
- Use the same terminal to connect to multiple sessions.
- "Disconnect" from a session, and reconnect to it later. So you can disconnect from a modem session, then reconnect to the same processes at a later time.
- Reconnect to a session from any other terminal.
- Connect multiple terminals to the same session. Great for demonstrating how to do something in the shell (some security features, notably ACLs, provided).
- Split the real terminal and display several sessions on it.
screen as being a terminal emulator that runs on a terminal. This sounds idiotic, until you realize that this lets it add features to the terminal...
Contains too many features to explain here; get the package!
Roughly the same thing, for an X server, is the nested X server,