Is the Ubuntu GUI a TTY by itself?

Is it accurate to name the Ubuntu GUI (or any other operating system GUI) a "TTY" for that matter?

A desktop needs a tty to run but that does not make the GUI a tty. You should call it a session and a tty you use to login either to command line session or a desktop session.

Is it true to say that any Window (like a directory window or a gedit/geany window) is a TTY by itself or just a (window) part of the larger GUI TTY?

No. Those are processes (within a session).


TTY really is an instance of virtual terminal. Early computers were just giant boxes, to which a real, physical terminal was connected and are generally called TTY (short for teletype). Virtual terminals are called virtual for that exact reason - your computer is now one single unit, and you have couple different virtual software teletypes (more specifically, for Ubuntu it's 6 ttys, but you can spawn more. See my answer here: https://askubuntu.com/a/817859/295286). Within TTY you can run processes, be it a text-based shell like bash or graphical server within which runs a graphical shell.

What happens precisely is that you have specific instance of GUI running ( or in more technical terms, you have X11 server running ) in a particular tty. In case of Ubuntu, it defaults to TTY #7. When I was using Fedora 21, that defaults to TTY1. And you can have multiple instances of GUI, see this for example: Start another GUI on different TTY

So effectivelly, GUI session is nothing more than a separate process running within a TTY.

Additional info:

  • https://askubuntu.com/a/481915/295286
  • https://unix.stackexchange.com/q/359038/85039

A desktop runs on a TTY. A window is a different process, non-TTY related. It just shows in the desktop environment.


After reading the answers here I understand this:

In computers of some previous era, a tty was a typing machine you would plug into a computer, a keyboard with a small output screen.

Modern operating systems come with multiple virtual tty.

Based on the modern tty, we have at least one GUI or at least one CLI.

Both of these GUI or CLI are sessions based on the tty, and can have sub sessions (sometimes are actually windows).

tty(s) are special files while GUI, and CLI, all are basically different processes.