1. Some concepts about terminals: terminals, consoles, virtual terminals, pseudo terminals, control terminals
Here first recommend a blog: Linux under the TTY, console, virtual terminals, serial, console (console terminal) detailed
Here are some of the things that are sorted out from this blog post.
Neither the terminal nor the console is the concept of a personal computer, but the concept of a small, medium-size mainframe computer shared by many people. A host, even a lot of terminals, terminals for the host to provide a human-computer interface, everyone through the terminal using the resources of the host. The terminal has two kinds of character dumb terminal and graphic terminal. The console is another human-machine interface, not connected to the host through the terminal, but through the display card-the monitor and the keyboard interface are connected to the host, which is the first human-computer interface of the person controlling the host.
Linux system on the console, through the Gettty software virtual out of multiple virtual terminals (such as tty1-tty6 ..., the specific number can be modified/etc/inittab). Take Fedora16 as an example, Tty1 is a graphics terminal, Tty2-tty6 is a dumb character terminal. The switch between them can be switched by "CTRL" + "ALT" + "F1/f2/f3/f4/f5/f6". You can view the current terminal name by performing a TTY command on a character dumb terminal. In the graphics terminal Tty1 through terminal every open a terminal, and will virtual out of a virtual character dumb terminal (pts/0 ...). )。 These terminals, whether TTY or PTS, are virtual terminals that are virtualized through the software on the console, and Tty1-tty6 are often referred to as console terminals. PS: There is actually a tty0, he is an alias for the console terminal currently in use.
A serial port terminal (serial port Terminal) is a terminal device that is connected using a computer serial port, and its name is generally ttys0-ttys1 ...
The pseudo terminal (Pseudo Terminal) appears in the network logon situation, is the logical terminal device which appears in pairs. One is at the far end, a terminal (such as PTYP2) connected by a network login program such as Telnet, and the other is the port on the target machine where the Getty program is connected (for example, TTYP2). The Telnet program on the login machine and the login program on the target machine are communicated through the pseudo terminal ptyp2 and TTYP2.
The control terminal (/dev/tty) is a concept in the application. Each session group may have up to 1 control terminals, similar to Tty0, and performing the console interrupts currently in use. For this concept, it is recommended to refer to the 9th Chapter of UNIX Environment Advanced programming.
After reading these, I recommend a blog post: Linux terminal, network Virtual terminal, pseudo terminal
2. Some concepts about conversation groups: sessions, process groups, jobs, processes
Process groups and sessions are abstract concepts that are defined to support shell job control, and there is a level two hierarchy between process groups and sessions: A process group is a collection of related processes that are a set of related process groups. Through the shell, users can run commands interactively in the foreground and backstage to control the job. Jobs and process groups can be considered synonyms.
A more detailed explanation, the suggestion reference "the Linux/unix system becomes the Handbook" the next book 34th chapter.
By the way, I recommend a blog post: Linux process Group, job, session understanding