1

I've been using Linux for some time now but never got a clean understanding of difference between console vs terminal terms. There is a thread describing the topic but it brought me some confusions. Here are my questions.

  1. Am i right that the console and the terminal are just synonyms so considering single Linux station we have a one physical console/terminal that is a phisical keyboard and monitor and many virtual consoles/terminals which can be switched by ctrl + alt + Fx combination?
  2. How does ctrl + alt + Fx differ from screen utilty?
  • understand that many people use these terms less specifically than they were originally intended, so that is likely the root of your confusion. Read the technical definitions, and use them yourself, even if no one else will, and accept that most people will use them incorrectly every once in a while,so if it makes a difference (which is rare), you can get clarification. Otherwise this question has been answered several times on SU, as well as other SE sites. – Frank Thomas Feb 8 '17 at 17:03
  • Consoles are hardware, a terminal is software, so no, they are not technically synonymous. you may hear people refer to terminals as consoles, but thats actually pretty rare (usually the confusion is terminal vs Shell). And no, the individual vTTYs are not mutliplexed, so there aren't really like screen or tmux at all. if you ran screen in vtty2, you could use it to connect to multiple terminals running their own shells, and switch between them, all while remaining on vtty2, along with the disconnect/reconnect functionality we expect from a muxer. – Frank Thomas Feb 8 '17 at 20:57
  • @FrankThomas "a terminal is software" -- Not if you're old enough to remember VDTs (video display terminals) and (going further back) Teletype terminals. – sawdust Feb 8 '17 at 22:26
  • Please read this and see if it answered your question. – iBug Feb 9 '17 at 11:45
2

In old times, a terminal was a textual device connected to a computer: initially a mechanical teletype, later a video termnal. The abbreviations tty (TeleTYpe) and vt (Video Terminal) still come from this era.

The console was initially the switches and indicators available literally on the console panel of the computer (here is a picture of the front panel of an PDP-11/20, which ran the 1st edition of Unix in 1972). Later it was used for a special teletype/terminal attached to the computer. The operator could use the console to perform privileged operations.

Again later on, hardware terminals were replaced by terminal emulators like xterm: GUI programs the allow you to type text and see the response, communicating with the rest of the system through a bi-directional character based channel just like old teletypes and video terminals over serial lines.

So for Linux on the PC, the question was what should replace the console terminal of older computers. The obvious solution was to use the existing keyboard and screen, but that was a bit limiting because there would be only one console for system usage, and no other terminals to do actual work on. And home users didn't have extra terminals they could connect to serial lines. So the virtual console was invented: Several console (as in "on the front panel of the main computer") terminals you could switch between with the Ctrl-Alt-Fn combination. Then came X, and one of the virtual consoles was used to start X, so "X ran on a virtual console", and at that point the old terminology didn't make much sense anymore. :-)

Therefore today, often console and terminal mean the same thing. But there are still difference when referring to established parts of the system: It's the terminal database for control characters (termcap, TERM variable). The device that controls the currently active virtual console under Linux is /dev/console. Etc.

Screen/tmux uses the same multiplex idea as the virtual console, but not on a real PC keyboard and monitor, but inside an existing terminal. So you can use one terminal connection, no matter if it runs inside a terminal emulator, a video terminal connected to a serial line, or a Linux console, to run multiple terminals.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.