Why is a virtual terminal "virtual", and what/why/where is the "real" terminal?

My understanding is that virtual terminals basically serve the same purpose: ie. A command line environment for various optional command interpreters

This isn't strictly true. Virtual Terminals are merely programs that send keystrokes and receive output (this is called Standard In, Standard Out[ and Standard Error]) to a process in the background. This is a basic inputprocessingoutput system, and is at the heart of your operating system.


A teletype (or teleprinter)


Man working at a Computer Terminal

Let's see if I can explain it properly:

In a Unix–like system such as Linux there is the concept of "everything is a file". That means, for example, your DVD Drive is a file (/dev/sdb1), your keyboard is a file (/dev/input/keyboard) and so on.

Another set of those magical files are the TTYs, where TTY stands for Teletype. A Typewriter that sends keystrokes to a computer, which in turn sends letters back to the Type Ball. This would have represented a physical device, a remote typewriter, in the same way as /dev/lp0 may represent your printer.


A hardware terminal, the VT100

The Teletype workstations would have been called "Consoles" or "Terminals", a virtual terminal, as opposed to a real one, thus is any application or machinery that provides the same functionality as this workplace arrangement - which is accessing the computer by sending keystrokes to it and receiving output back from it, printing it to a piece of paper. You can imagine that a Modem works in a very similar way.

Terminals, such as the one pictured above, are cheap and simple computers that emulate the functionality of a teletype. When we say terminal emulator these days, we - in turn - usually mean a program that emulates the functionality of such a machine.

There are still terminal based computer systems in use. They are in fact getting ever more popular. In the past, the reason for terminals was that a computer at every desk was completely ridiculous - where computers filled a room and were immensely expensive. Now, it saves money and makes administration easy.


a "thin client" – the modern equivalent of the VT100

I hope that this is helpful. Please alert my if I've made a mistake.


Does that mean that Control-Alt-F1,F2,etc are also virtual terminals, and the only difference between them and "gnome-terminal" / "konsole" is that they don't have a GUI?

Yes, basically. The difference between TTY1-7 and gnome-terminal is that the system provides the ttys, whereas gnome-terminal and konsole are themselves running on a tty (which is running the graphical subsystem). This abstraction can be nested even deeper (e.g. x-forwarding, using the telnet protocol to act as a terminal, ...), after all, the human—computer interface acts just like any other file. And can be piped, abstracted and moved about in the same way.


Pretty sure calling it a "virtual terminal" is a throwback to when there were physical terminals connected to unix servers...


In addition to the answers above, see this comprehensive explanation ot terminals. The TTY, despite its apparent simplicity, is conceptually a rather complicated part of Linux.