Originální popis anglicky:
ptmx and pts - pseudo-terminal master and slave
The file
/dev/ptmx is a character file with major number 5 and minor
number 2, usually of mode 0666 and owner.group of root.root. It is used to
create a pseudo-terminal master and slave pair.
When a process opens
/dev/ptmx, it gets a file descriptor for a
pseudo-terminal master (PTM), and a pseudo-terminal slave (PTS) device is
created in the
/dev/pts directory. Each file descriptor obtained by
opening
/dev/ptmx is an independent PTM with its own associated PTS,
whose path can be found by passing the descriptor to
ptsname(3).
Before opening the pseudo-terminal slave, you must pass the master's file
descriptor to
grantpt(3) and
unlockpt(3).
Once both the pseudo-terminal master and slave are open, the slave provides
processes with an interface that is identical to that of a real terminal.
Data written to the slave is presented on the master descriptor as input. Data
written to the master is presented to the slave as input.
In practice, pseudo-terminals are used for implementing terminal emulators such
as
xterm(1), in which data read from the pseudo-terminal master is
interpreted by the application in the same way a real terminal would interpret
the data, and for implementing remote-login programs such as
sshd(8),
in which data read from the pseudo-terminal master is sent across the network
to a client program that is connected to a terminal or terminal emulator.
Pseudo-terminals can also be used to send input to programs that normally refuse
to read input from pipes (such as
su(8), and
passwd(8)).
/dev/ptmx,
/dev/pts/*
The Linux support for the above (known as Unix98 pty naming) is done using the
devpts filesystem, that should be mounted on
/dev/pts.
Before this Unix98 scheme, master ptys were called
/dev/ptyp0, ... and
slave ptys
/dev/ttyp0, ... and one needed lots of preallocated device
nodes.
getpt(3),
grantpt(3),
ptsname(3),
unlockpt(3)