Pseudoterminal

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar
Pseudoterminals como son utilizados por script unix comando que registra la entrada del usuario para reproducirla más tarde.

En algunos sistemas operativos, incluidos Unix y Linux, un pseudoterminal, pseudotty o PTY es un par de puntos finales de pseudodispositivo (archivos) que establecen un canal de comunicación bidireccional (IPC) asíncrono (con dos puertos) entre dos o más procesos. El maestro proporciona medios mediante los cuales un proceso de emulador de terminal controla al esclavo. El esclavo emula un dispositivo terminal de texto de hardware. Los PTY son similares a las tuberías bidireccionales.

Los archivos master suelen ser utilizados por aplicaciones de red (por ejemplo, rlogin) y los archivos slave son utilizados por programas orientados a terminales como shells (por ejemplo, bash) como procesos. para leer/escribir datos desde/hacia el punto final maestro. La aplicación común de los PTY es la prestación de servicios de inicio de sesión en la red.

Devpts es un sistema de archivos virtual del kernel de Linux que se utiliza para emular la conexión de PTY.

La implementación de Linux se basa en terminales estilo System V (comúnmente denominados pseudoterminales UNIX 98) y proporciona POSIX y la API de especificación única de Unix en forma de posix_openpt() en funcionamiento desde 1998.

El comando tty de Unix se utiliza normalmente para conectar la ruta del archivo PTY a la entrada estándar actual.

Historia

Los pseudoterminales estaban presentes en el monitor de tiempo compartido DEC PDP-6 al menos desde 1967 y se utilizaban para implementar el procesamiento por lotes. Se describen en la documentación del siguiente TOPS-10 en el PDP-10. Otros sistemas operativos DEC también tenían PTY, incluido RSTS/E para el PDP-11, al igual que el sistema operativo TENEX de terceros para el PDP-10.

Las implementaciones de pseudo terminales Unix se remontan a las modificaciones que RAND y BBN hicieron a una sexta edición a fines de la década de 1970 para admitir el acceso remoto a través de una red. Los pseudoterminales Unix modernos se originaron en 1983 durante el desarrollo de la octava edición de Unix y se basaron en una característica similar en TENEX. Eran parte de la versión 4.2 de BSD, con un openpty bastante engorroso. () interfaz definida para su uso.

El System V de AT&T incluía soporte para pseudoterminales como controlador en su modelo de dispositivo STREAMS, junto con el multiplexor de pseudoterminal (/dev/ptmx). Esto luego evolucionó hasta convertirse en el estilo Unix98 de PTY.

Libros

La interfaz de programación de Linux de 2010 contiene un capítulo completo (capítulo 64 "Pseudoterminales" p1375–1399.) que explica los pseudoterminales. Luego hay otro, Capítulo 62 "Terminales", dedicado a los terminales.

La consola de Windows se amplió para tener una interfaz PTY llamada ConPTY en 2018.

Aplicaciones

La función del proceso del emulador de terminal es:

  • para interactuar con el usuario,
  • para alimentar la entrada de texto al maestro pseudo-dispositivo para su uso por la cáscara (como bash), que está conectado al pseudo-dispositivo esclavo,
  • para leer la salida de texto del maestro pseudo-dispositivo y mostrarlo al usuario.

El proceso del emulador de terminal también debe manejar comandos de control de terminal, por ejemplo, para cambiar el tamaño de la pantalla. Los programas emuladores de terminal más utilizados incluyen xterm, GNOME Terminal, Konsole y Terminal (macOS). Los controladores de inicio de sesión remotos, como los servidores ssh y telnet, desempeñan la misma función pero se comunican con un usuario remoto en lugar de con uno local. Considere también programas como expect.

Screen y Tmux se utilizan para agregar un contexto de sesión a un pseudoterminal, haciendo una solución mucho más robusta y versátil. Por ejemplo, cada uno proporciona persistencia terminal, permitiendo que un usuario se desconecte de un ordenador y luego se conecta más tarde de otro ordenador.

Variantes

En el sistema BSD PTY, el archivo del dispositivo esclavo, que generalmente tiene un nombre del formato /dev/tty[p-za-e][0-9a-f], admite todos llamadas al sistema aplicables a dispositivos terminales de texto. Por lo tanto, admite sesiones de inicio de sesión. El archivo del dispositivo maestro, que generalmente tiene un nombre con el formato /dev/pty[p-za-e][0-9a-f], es el punto final para la comunicación con el emulador de terminal. Con este esquema de nomenclatura [p-za-e], puede haber como máximo 256 pares de tty. Además, encontrar el primer maestro pty libre puede ser complicado a menos que se adopte un esquema de bloqueo. Por esa razón, los sistemas operativos BSD recientes, como FreeBSD, implementan PTY Unix98.

Los PTY de BSD han quedado obsoletos debido a los pty de Unix98, cuyo sistema de nombres no limita el número de pseudo-terminales y cuyo acceso se produce sin peligro de condiciones de carrera. /dev/ptmx es el "multiplexor maestro pseudo-terminal". Al abrirlo se devuelve un descriptor de archivo de un nodo maestro y se crea un nodo esclavo asociado /dev/pts/N.

Contenido relacionado

Tarjeta perforada

Una tarjeta perforada es un trozo de papel rígido que contiene datos digitales representados por la presencia o ausencia de agujeros en posiciones...

CPython

CPython es la implementación de referencia del lenguaje de programación Python. Escrito en C y Python, CPython es la implementación predeterminada y más...

Arquitectura Harvard

La Arquitectura Harvard es un modelo de arquitectura informática que separa físicamente la memoria de código de programa de la memoria de almacenamiento de...
Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save