Skip to main content
Fixed spelling and grammar; improved capitalization, formatting and capitalization.
Source Link

You need to dive ininto history.

There were typewrittertypewriter-like devices with paper and keyboard. They were called teletypes (which means "type remotely"remotely," since "tele" means "remote") or ttys for short. In 70ththe 70s they were obsoleted by devices with CRT monitor called glass ttys.

Any computer need some way to report its status and errors (and, probably, accept commands). It is done through console which is almost always connected directly to the computer. So, there are 2 meanings for console: something that is used to report status and something that is connected directly.

UNIX is an interactive system: several users may connect to it and start applications. First computers used teletypes (tty) for that: each user had teletype connected to machine with serial line connection. Such teletype is called terminal. UNIX also got special subsystem to handle "users sitting behind terminals" which is also called tty because first terminals were teletypes. Each process could be connected to tty in unixUnix. That means there is a user somewhere sitting near terminal. See http://www.linusakesson.net/programming/tty/ for more info.

UserUsers need some way to tell kernel to run application. shell (sh, bash, csh, ksh, etc.) is used for that. shell runs on tty, accepts commands from user and asks kernel to run some app.

But terminals are not always physciallyphysically connected to the machine. There may be some application that "emulates" terminal accepting keystrokes from user and sending them somewhere (xterm and ssh are good examples). There is an API in Kernel called pseudo terminal for that. So your tty may really be connected to some application instead of real terminal. Xterm uses X11 to display text and ssh uses network connection for it.

IBM PC has keyboard and video card (they are also called console sometimes). Linux can do different things with it:

  • Use it as "engine to report errors and status": linuxLinux console. If you pass console=/dev/ttyS0 to kernel it will use something connected to COM1 as console, and if you do not it will use PC console.
  • Use it to emulate terminal, so called virtual terminal (vty).

It also may stop emulating terminal on console and give it to some app. App may switch its video mode and use it exclusively (X11 or svgalib may do that).

So, here are modern meanings:

  • terminal: Something with real user sitting behind it. Could be physical terminal (rare) or pseudo terminal (xterm, ssh) or virtual terminal (vty in linuxLinux)
  • shell: application (bash, tcsh, etc) that helps user to interact with system.
  • tty: either terminal or kernel subsystem to support terminals.
  • console: something where status and errors are reported (/dev/console) or physical keyboard and video display connected to computer.

You need to dive in history.

There were typewritter-like devices with paper and keyboard. They were called teletypes (which means "type remotely" since "tele" means "remote") or ttys for short. In 70th they were obsoleted by devices with CRT monitor called glass ttys.

Any computer need some way to report its status and errors (and, probably, accept commands). It is done through console which is almost always connected directly to computer. So, there are 2 meanings for console: something that is used to report status and something that is connected directly.

UNIX is interactive system: several users may connect to it and start applications. First computers used teletypes (tty) for that: each user had teletype connected to machine with serial line connection. Such teletype is called terminal. UNIX also got special subsystem to handle "users sitting behind terminals" which is also called tty because first terminals were teletypes. Each process could be connected to tty in unix. That means there is a user somewhere sitting near terminal. See http://www.linusakesson.net/programming/tty/ for more info.

User need some way to tell kernel to run application. shell (sh, bash, csh, ksh etc) is used for that. shell runs on tty, accepts commands from user and asks kernel to run some app.

But terminals are not always physcially connected to machine. There may be some application that "emulates" terminal accepting keystrokes from user and sending them somewhere (xterm and ssh are good examples). There is an API in Kernel called pseudo terminal for that. So your tty may really be connected to some application instead of real terminal. Xterm uses X11 to display text and ssh uses network connection for it.

IBM PC has keyboard and video card (they are also called console sometimes). Linux can do different things with it:

  • Use it as "engine to report errors and status": linux console. If you pass console=/dev/ttyS0 to kernel it will use something connected to COM1 as console, and if you do not it will use PC console.
  • Use it to emulate terminal, so called virtual terminal (vty).

It also may stop emulating terminal on console and give it to some app. App may switch its video mode and use it exclusively (X11 or svgalib may do that).

So, here are modern meanings:

  • terminal: Something with real user sitting behind it. Could be physical terminal (rare) or pseudo terminal (xterm, ssh) or virtual terminal (vty in linux)
  • shell: application (bash, tcsh, etc) that helps user to interact with system.
  • tty: either terminal or kernel subsystem to support terminals.
  • console: something where status and errors are reported (/dev/console) or physical keyboard and video display connected to computer.

You need to dive into history.

There were typewriter-like devices with paper and keyboard. They were called teletypes (which means "type remotely," since "tele" means "remote") or ttys for short. In the 70s they were obsoleted by devices with CRT monitor called glass ttys.

Any computer need some way to report its status and errors (and, probably, accept commands). It is done through console which is almost always connected directly to the computer. So, there are 2 meanings for console: something that is used to report status and something that is connected directly.

UNIX is an interactive system: several users may connect to it and start applications. First computers used teletypes (tty) for that: each user had teletype connected to machine with serial line connection. Such teletype is called terminal. UNIX also got special subsystem to handle "users sitting behind terminals" which is also called tty because first terminals were teletypes. Each process could be connected to tty in Unix. That means there is a user somewhere sitting near terminal. See http://www.linusakesson.net/programming/tty/ for more info.

Users need some way to tell kernel to run application. shell (sh, bash, csh, ksh, etc.) is used for that. shell runs on tty, accepts commands from user and asks kernel to run some app.

But terminals are not always physically connected to the machine. There may be some application that "emulates" terminal accepting keystrokes from user and sending them somewhere (xterm and ssh are good examples). There is an API in Kernel called pseudo terminal for that. So your tty may really be connected to some application instead of real terminal. Xterm uses X11 to display text and ssh uses network connection for it.

IBM PC has keyboard and video card (they are also called console sometimes). Linux can do different things with it:

  • Use it as "engine to report errors and status": Linux console. If you pass console=/dev/ttyS0 to kernel it will use something connected to COM1 as console, and if you do not it will use PC console.
  • Use it to emulate terminal, so called virtual terminal (vty).

It also may stop emulating terminal on console and give it to some app. App may switch its video mode and use it exclusively (X11 or svgalib may do that).

So, here are modern meanings:

  • terminal: Something with real user sitting behind it. Could be physical terminal (rare) or pseudo terminal (xterm, ssh) or virtual terminal (vty in Linux)
  • shell: application (bash, tcsh, etc) that helps user to interact with system.
  • tty: either terminal or kernel subsystem to support terminals.
  • console: something where status and errors are reported (/dev/console) or physical keyboard and video display connected to computer.
Source Link
user996142
  • 702
  • 4
  • 15

You need to dive in history.

There were typewritter-like devices with paper and keyboard. They were called teletypes (which means "type remotely" since "tele" means "remote") or ttys for short. In 70th they were obsoleted by devices with CRT monitor called glass ttys.

Any computer need some way to report its status and errors (and, probably, accept commands). It is done through console which is almost always connected directly to computer. So, there are 2 meanings for console: something that is used to report status and something that is connected directly.

UNIX is interactive system: several users may connect to it and start applications. First computers used teletypes (tty) for that: each user had teletype connected to machine with serial line connection. Such teletype is called terminal. UNIX also got special subsystem to handle "users sitting behind terminals" which is also called tty because first terminals were teletypes. Each process could be connected to tty in unix. That means there is a user somewhere sitting near terminal. See http://www.linusakesson.net/programming/tty/ for more info.

User need some way to tell kernel to run application. shell (sh, bash, csh, ksh etc) is used for that. shell runs on tty, accepts commands from user and asks kernel to run some app.

But terminals are not always physcially connected to machine. There may be some application that "emulates" terminal accepting keystrokes from user and sending them somewhere (xterm and ssh are good examples). There is an API in Kernel called pseudo terminal for that. So your tty may really be connected to some application instead of real terminal. Xterm uses X11 to display text and ssh uses network connection for it.

IBM PC has keyboard and video card (they are also called console sometimes). Linux can do different things with it:

  • Use it as "engine to report errors and status": linux console. If you pass console=/dev/ttyS0 to kernel it will use something connected to COM1 as console, and if you do not it will use PC console.
  • Use it to emulate terminal, so called virtual terminal (vty).

It also may stop emulating terminal on console and give it to some app. App may switch its video mode and use it exclusively (X11 or svgalib may do that).

So, here are modern meanings:

  • terminal: Something with real user sitting behind it. Could be physical terminal (rare) or pseudo terminal (xterm, ssh) or virtual terminal (vty in linux)
  • shell: application (bash, tcsh, etc) that helps user to interact with system.
  • tty: either terminal or kernel subsystem to support terminals.
  • console: something where status and errors are reported (/dev/console) or physical keyboard and video display connected to computer.