TTY and PTS in Linux

Source: Internet
Author: User
Tags telnet program
TTY and PTS in Linux [to] 639473375

15:54:57 favorites | print | vote (6) | comment (0) | read (23803) ◇ fonts: [large, small]

Tty is derived from teletypes or teletypewriters. Originally, it refers to a telex typewriter, which reads and sends messages through a printer keyboard through a serial line. Later, it was replaced by a keyboard and a display, so now it is more appropriate to call the terminal.
But if we remotely telnet to the host or use xterm, do we still need a terminal to interact? Yes, this is the virtual terminal Pty (pseudo-TTY)
PTS (pseudo-terminal slave) is the implementation method of Pty. It is used with ptmx (pseudo-terminal master) to implement Pty.
A terminal is a type of terminal device. It has multiple types and generally uses tty for short. Tty is short for teletype. Teletype is one of the earliest terminal devices, such as a telex typewriter (or ?), It is produced by teletype. In the special file directory/dev/of a Linux system device, there are generally the following types of special device files on the terminal:
1. Serial Port Terminal (/dev/ttysn)
The serial port terminal (serial port terminal) is a terminal device connected by a computer serial port. The computer regards each serial port as a character device. For some time, these serial port devices are usually called terminal devices, because at that time they were used to connect terminals. The device names corresponding to these serial ports are/dev/TTS/0 (or/dev/ttys0),/dev/TTS/1 (or/dev/ttys1), etc, the device numbers are (), (), and so on, respectively, corresponding to COM1 and com2 in the DOS system. To send data to a port, You can redirect the standard output to these special file names on the command line. For example, if you type echo test>/dev/ttys1 at the command line prompt, the word "test" is sent to the device connected to the ttys1 (com2) port. Can be connected to the serial port for the experiment.
2. Pseudo Terminal (/dev/PtY /)
The Pseudo Terminal (Pseudo Terminal) is a pair of logical terminal devices (namely, the master and slave devices, operations on the master will be reflected on the slave ), for example,/dev/ptyp3 and/dev/ttyp3 (or/dev/PtY/m3 and/dev/PtY/S3 in the device file system ). They are not directly related to physical devices. If Program When the ptyp3 (master device) is considered as a serial port device, its read/write operations on the port are reflected in another ttyp3 (Slave Device) corresponding to the logical terminal device. Ttyp3 is the logical device used by another program for read/write operations.
In this way, two programs can communicate with each other through this logical device, and one of the programs using ttyp3 thinks they are communicating with a serial port. This is like pipeline operations between logical device pairs. For ttyp3 (S3), any program designed to use a serial port device can use this logical device. However, for programs that use ptyp3, a dedicated design is required to use the ptyp3 (m3) logical device.
For example, if someone uses a telnet program to connect to your computer online, the telnet program may start to connect to the device ptyp2 (m2) (a Pseudo Terminal port ). At this time, a Getty program should run on the corresponding ttyp2 (S2) port. When Telnet obtains a character from the remote end, the character is passed to the Getty program through m2 and S2, the getty program returns the "login:" string information to the network through S2, m2, and telnet. In this way, the login program communicates with the telnet program through a "Pseudo Terminal. By using appropriate software, you can connect two or more Pseudo Terminal devices to the same physical serial port.
Before using the device filesystem, a complicated file name naming method was used to obtain a large number of special files of Pseudo Terminal devices. Because there are only 16 ttyp (ttyp0-ttypf) device files, to get more logical device pairs, use characters such as Q, R, S to replace P. For example, ttys8 and ptys8 are Pseudo Terminal Device pairs. However, this naming method is still used in Linux systems such as RedHat.
However, unix98 on Linux does not use the above method, but uses the "Pty master" method, such as/dev/ptm3. Its corresponding end is automatically created as/dev/pts/3. In this way, a Pty Pseudo Terminal can be provided as needed. Directory/dev/PTS is a file system of the devpts type and can be seen in the list of loaded file systems. Although "file"/dev/pts/3 seems to be one of the device's file systems, it is actually a completely different file system.
That is: Telnet ---> ttyp3 (S3: slave) ---> ptyp3 (M3: Master) ---> Getty
--------------------------------------
Lab:
1. open one or N terminal windows under X
2. # ls/dev/Pt *
3. Close the terminal window under X and run it again. Compare the output information twice.
In the RHEL4 environment: the output is/dev/ptmx/dev/pts/1. One (master) to multiple (slave) conditions exist.
3. control terminal (/dev/tty)
If the current process has a control terminal (controlling terminal),/dev/tty is the device special file of the control terminal of the current process. You can run the "PS-Ax" command to check which control terminal the process is connected. For the shell you log on to,/dev/tty is the terminal you are using, and the device number is (5, 0 ). Run the "tty" command to check which actual terminal device it corresponds. /Dev/tty is similar to a connection to the actually used terminal device.
4. Console terminal (/dev/ttyn,/dev/console)
In Linux, a computer monitor is usually called a console ). It simulates a Linux terminal (term = Linux), and some special files of the device are associated with it: tty0, tty1, tty2, and so on. When you log on to the console, tty1 is used. With Alt + [F1-F6] keys, we can switch to tty2, tty3 and so on. Tty1-tty6 is called virtual terminal, and tty0 is an alias of the current virtual terminal, the information generated by the system will be sent to the terminal. Therefore, no matter which virtual terminal is being used, the system information will be sent to the console terminal. You can log on to different virtual terminals, so that the system can have several different sessions at the same time. Only the system or Super User Root can write to/dev/tty0, that is, the following example:
1. # tty (view the current TTY)
/Dev/tty1
2. # echo "test tty0">/dev/tty0
Test tty0
5. Other Types
In Linux, there are many other types of special files on terminal devices for many different character devices. For example,/dev/ttyin terminal devices for ISDN devices. I will not go into details here.

Original address: http://wzc0066.blog.hexun.com/14079009_d.html

FAQ: terminal and console

Rrom: http://blog.footoo.org /? P = 73

Posted on Tuesday, November 28 th, 2006 by Cliff

Wu Jin (cliffwoo@gmail.com)
Footoo opensource lab

Since many of my friends have never been very clear about the concepts of terminals, I wrote this FAQ to help you understand these concepts. If this is not the case, please send a letter to us.
Q: What is/dev/console?

A:/dev/console refers to the console, which is a device that interacts with the operating system. The system directly outputs some information to the console. Currently, users can log on to the console only in single-user mode.

Q: What is/dev/tty?

A: tty devices include virtual consoles, serial ports, and Pseudo Terminal devices. /Dev/tty indicates the current tty device. Input echo "Hello">/dev/tty in the current terminal, which will be directly displayed on the current terminal.

Q: What is/dev/TTYs?

A:/dev/TTYs * is a serial terminal device.

Q: What is/dev/Pty?

A:/dev/Pty * is a Pseudo Terminal. The so-called Pseudo Terminal is a logical terminal device and is mostly used to simulate terminal programs. For example, we open a terminal in X Window and log on to the Linux host using telnet or SSH in windows, the Pty device is used at this time (to be precise, the Pty slave device should be used ).

Q:/dev/tty0 and/dev/tty1... What is/dev/tty63? What are the differences between them?

A:/dev/tty0 indicates the current virtual console, while/dev/tty1 indicates the first virtual console. For example, when Alt + F2 is used for switching, the system's virtual console is/dev/tty2, and the current console points to/dev/tty2

Q: How do I determine the current terminal (or console )?

A: Use the TTY command to determine the current terminal or console.

Q: Is/dev/console a symbolic link to/dev/tty0?

A: currently, most of the texts are called/dev/console as links to/dev/tty0 (including the Linux KernelSource codeSituation analysis), but this is not accurate. According to the kernel documentation, before version 2.1.71,/dev/console can be linked to/dev/tty0 or other tty * based on different system settings. After version 2.1.71, it is completely controlled by the kernel. Currently, you can log on to/dev/console only in single-user mode (you can enter the TTY command in single-user mode for confirmation ).

Q: What is the difference between/dev/tty0 and/dev/FB?

A: You can use/dev/tty0 to access the video card in a system not enabled by the framebuffer device.

Q: What text can I refer to for the differences between a terminal and a console?

A: refer to the "terminal devices" section in documents about devices/devices.txt in the kernel. In addition, section 8.7 of Code and operating systems: section 3.9 in design and implementation (section 3rd in version 3.8) provides a good introduction to the concepts and history of terminal devices. In addition, the introduction to terminal devices is also introduced in modern operating system. The text content is roughly the same as that of operating systems: design and implementation. Note that operating systems: design and implementation divides terminal devices into three categories, while modern operating system classifies terminal hardware devices into two categories, the difference is that the former uses X terminal as a Category

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.