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.

Think of 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, Xnest.