ptmx, pts - pseudoterminal maestra y esclava
El archivo
/dev/ptmx (dispositivo multiplexador del pseudoterminal) 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 pseudoterminales maestra y esclava.
Cuando un proceso abre
/dev/ptmx, obtiene un descriptor de archivo para
una pseudoterminal maestra (PTM), y se crea un dispositivo pseudoterminal
esclavo (PTS) en el directorio
/dev/pts. Cada descriptor de archivo
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 pseudoterminal esclava, debe pasar el descriptor de archivo de
la pseudoterminal maestra a
grantpt(3) y
unlockpt(3).
Una vez que la pseudoterminal 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 pseudoterminales se usan para implementar emuladores
de terminal como
xterm(1), en los cuales los datos leídos de la
pseudoterminal 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 pseudoterminal esclava se envían a través de
la red al programa cliente que está conectado al terminal o emulador de
terminal.
Las pseudoterminales 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(1) y
passwd(1)).
/dev/ptmx,
/dev/pts/*
El soporte de Linux a todo lo anterior (conocido como sistema de nombres de
pseudoterminales de UNIX 98) se realiza usando el sistema de archivos
devpts, que debe montarse en
/dev/pts.
getpt(3),
grantpt(3),
ptsname(3),
unlockpt(3),
pty(7)
La traducción al español de esta página del manual fue
creada por Miguel Pérez Ibars <
[email protected]> y Marcos
Fouces <
[email protected]>
Esta traducción es documentación libre; lea la
GNU
General Public License Version 3 o posterior con respecto a las
condiciones de copyright. No existe NINGUNA RESPONSABILIDAD.
Si encuentra algún error en la traducción de esta página
del manual, envíe un correo electrónico a
[email protected]