NOMBRE¶
ptmx y pts - pseudo-terminal maestra y esclava
DESCRIPCIÓN¶
El fichero
/dev/ptmx es un dispositivo de caracteres con número
mayor 5 y número menor 2, creado normalmente con modo 0666 y de
propietario root.root. Se utiliza para crear un par de pseudo-terminales
maestra y esclava.
Cuando un proceso abre
/dev/ptmx, obtiene un descriptor de fichero para
una pseudo-terminal maestra (PTM), y se crea un dispositivo pseudo-terminal
esclavo (PTS) en el directorio
/dev/pts. Cada descriptor de fichero
obtenido al abrir
/dev/ptmx es una PTM independiente con su propia PTS
asociada, cuya ruta puede ser consultada pasando el descriptor a la
función
ptsname(3).
Antes de abrir la pseudo-terminal esclava, debe pasar el descriptor de fichero
de la pseudo-terminal maestra a
grantpt(3) y
unlockpt(3).
Una vez que la pseudo-terminal maestra y esclava están abiertas, la
pseudo-terminal esclava sirve procesos con una interfaz idéntica a la de
una terminal real.
Los datos escritos en el esclavo se presentan en el descriptor maestro como
entrada. Los datos escritos en el maestro se presentan en el esclavo como
entrada.
En la práctica, las pseudo-terminales se usan para implementar emuladores
de terminal como
xterm(1), en los cuales los datos leídos de la
pseudo-terminal maestra son interpretados por la aplicación de la misma
forma que una terminal real los interpretaría, y para implementar
programas de acceso remoto como
sshd(8), en los cuales los datos
leídos de la pseudo-terminal esclava se envían a través de la
red al programa cliente que está conectado al terminal o emulador de
terminal.
Las pseudo-terminales se pueden emplear también para enviar la salida a los
programas que normalmente se niegan a leer la entrada de tuberías (como
su(8), y
passwd(8)).
FICHEROS¶
/dev/ptmx,
/dev/pts/*
OBSERVACIONES¶
El soporte de Linux a todo lo anterior (conocido como sistema de nombres de
pty's de Unix98) se realiza usando el sistema de ficheros
devpts, que
debe montarse en
/dev/pts.
Antes de este esquema de Unix98, las pseudo-terminales maestras se llamaban
/dev/ptyp0, ... y las esclavas
/dev/ttyp0, ... y era necesario
tener ya creados y asignados un gran número de nodos-i de dispositivo.
VÉASE TAMBIÉN¶
getpt(3),
grantpt(3),
ptsname(3),
unlockpt(3)