|
In Unix, a pseudo terminal is a pseudo-device pair that provides a text terminal interface without associated virtual console, computer terminal or serial port hardware. Instead, a process replaces the role of the underlying hardware for the pseudo terminal session.
BSD PTYsThe slave device file, which generally has a nomenclature of The master device file, which generally has a nomenclature of With the typical [p-za-e] naming, there can be at most 256 tty pairs. Also, finding the first free pty master is not entirely race-free. Unix98 PTYsBSD PTYs have been made obsolete by Unix98 ptys, which allow race-free access and their number is not limited by naming nomenclature, only by implementation.
Creating Pseudo TerminalsPseudo terminals can be created using ordinary system calls to open an available master device file, in which a file descriptor to the master file is returned to the calling process. Library functions usually also exist that open the first available master device file and initialize privileges of the corresponding slave device (e.g. openpty(3) on BSD Unix systems). For example, if the first master device file available is /dev/ptypa, most library functions will return a descriptor for the master (/dev/ptypa) along with a descriptor for the corresponding slave (/dev/ttypa), and establish the permissions of the slave device file in some predefined fashion. It is generally not allowed to open a pseudo terminal master device that is currently open elsewhere. Some systems, notably System V derived ones, include a multiplexer device (usually /dev/ptmx) that, when opened, will return a descriptor associated to the first available master device. ApplicationsImportant applications of pseudo terminals include xterm and similar terminal emulators in the X Window System and other window systems (such as the Terminal application in Mac OS X), in which the terminal emulator process is associated with the master device and the shell is associated with the slave. Any terminal operations performed by the shell in a terminal emulator session are received and handled by the terminal emulator process itself (such as terminal resizing or terminal resets). The terminal emulator process receives input from the keyboard and mouse using windowing events, and is thus able to transmit these characters to the shell, giving the shell the appearance of the terminal emulator being an underlying hardware object. Other important applications include remote login handlers such as ssh and telnet servers, which serve as the master for a corresponding shell, bridged by a pseudo terminal. Another key application is expect, which allows the automation of arbitrary terminal-bound subprocesses by using a pseudo-terminal to conceal the fact that the subprocess is being controlled by a program and not a user (many programs change their observed behavior otherwise, often because of varying default buffering semantics). OriginsPseudo terminals originated in 1983 with the 4.2 release of BSD. AT&T's System V included support for pseudo terminals as a driver in their STREAMS device model, along with the pseudo terminal multiplexer. See alsoReferences |
This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License.
Mercedes Car
This site monitored by SitePinger.net