← Back to home

GNU Screen

GNU Screen

GNU Screen is a rather unremarkable piece of software, a terminal multiplexer by trade. It allows you to juggle multiple virtual consoles within a single terminal window, or detach and reattach them with a casual flick of the wrist. Essentially, it’s a way to manage several login sessions without needing a separate window for each. Useful for those who insist on living in the command line interface, or for anyone who’s ever lost precious work to a dropped network connection. It keeps your programs running, detached from the Unix shell that birthed them, so they don't just vanish into the ether when your connection inevitably crumbles.

It operates under the GNU General Public License, version 3 or later, which means it’s free software. Not that you’d know it from the way it behaves.

Features

Think of GNU Screen as a text version of a graphical window manager, or a way to cram multiple virtual terminals into your existing session. It’s a wrapper, a digital shell game for your programs, allowing them to run concurrently and providing features to keep you from drowning in a sea of text. Its primary offerings, if you can call them that, are persistence, multiple windows, and the dubious pleasure of session sharing.

The true appeal, for the masochistic few, lies in its resilience against unreliable network connections. When your remote process is rudely severed from its terminal, it typically receives a SIGHUP signal, terminating everything. Screen, however, detaches the session instead of killing it. Your applications remain blissfully unaware, continuing their work while you’re offline, waiting patiently for your return. You can then reattach later, picking up exactly where you left off, as if nothing happened. It’s the digital equivalent of a phantom limb, still there, still working, even when you’re gone.

History

The origin story of Screen is as mundane as its function. It was originally conjured into existence by Oliver Laumann and Carsten Bormann at the Technische Universität Berlin and first saw the light of day in 1987. Its initial design focused on VT100 emulation, encompassing ANSI X3.64 (ISO 6429) and ISO 2022, with an eye towards decent performance on the character-based terminals that were ubiquitous at the time. The now-famous disconnection/reattachment feature was a later addition, a novel concept for its era.

Around 1990, the torch was passed. Laumann entrusted the code’s stewardship to Jürgen Weigert and Michael Schroeder at the University of Erlangen–Nuremberg. From there, it migrated to the GNU Project, where it gained features like scrollback, split-screen capabilities, copy-and-paste, and the unsettling notion of screen sharing.

By 2014, the project had all but stagnated. Amadeusz Sławiński, perhaps out of sheer boredom or a misplaced sense of duty, volunteered to breathe life back into it. Laumann, bless his seemingly indifferent heart, granted him maintainership. Sławiński, eager to make his mark, promptly released what he termed "Screen 4.2.0," a designation chosen to distinguish it from the unofficial "Screen 4.1" versions that had been circulating.

In May 2015, during the openSUSE Conference, Jürgen Weigert extended an invitation to Alexander Naumov to join the development and maintenance efforts. Two months later, with Naumov’s assistance, GNU screen 4.3.0 was released. It continues to be maintained, a testament to the enduring appeal of keeping your digital workspace from imploding.

See also

  • The Free and open-source software portal might offer solace.
  • xpra: For those who prefer running X Window System applications on one machine and then severing them from its display, only to reattach them to another. A more sophisticated form of digital transience.
  • Byobu: A frontend that attempts to make GNU Screen or tmux more palatable.
  • tmux: A rival ISC-licensed terminal multiplexer, boasting a feature set that mirrors GNU Screen's. It’s the other option for those who enjoy this particular brand of digital self-flagellation.

Further reading

  • Jeff Covey, "The Antidesktop," Freshmeat, October 12, 2002.
  • Martin Streicher, "Speaking UNIX: Stayin' alive with Screen," IBM DeveloperWorks, February 10, 2009.
  • Philip J. Hollenback, "Using screen for remote interaction," Linux.com, August 22, 2006.
  • Adam Lazur, "Power Sessions with Screen," Linux Journal, issue 105, January 2003.
  • William Von Hagen, Brian K. Jones, Linux server hacks, Volume 2, O'Reilly Media, 2005, ISBN) 0-596-10082-5, pp. 155–157 (Hack #34).
  • Carl Albing, J. P. Vossen, Cameron Newham, Bash cookbook, O'Reilly Media, 2007, ISBN) 0-596-52678-4, pp. 415–418.
  • Dru Lavigne, BSD hacks, O'Reilly Media, 2004, ISBN) 0-596-00679-9, pp. 44–48 (Hack #12).
  • Noah Gift, Jeremy Jones, Python for Unix and Linux system administration, O'Reilly Germany, 2008, ISBN) 0-596-51582-0, pp. 300–301.
  • Paul Mutton, IRC hacks, O'Reilly Media, 2004, ISBN) 0-596-00687-X, pp. 345–349 (Hack #92).