3 votos

¿Cuál es el propósito de los archivos de dispositivo BSD pty/tty en /dev?

Estoy en MacOS Catalina.

Por lo que sé (leyendo man pty , man tty partes de este artículo de wikipedia, y este referencia algo anticuada sobre los ttys), estos archivos de dispositivo ya no se utilizan.

En cambio, cuando uno abre Terminal.app, /dev/ptmx (pseudo multiplexor maestro terminal) crea dinámicamente un /dev/ttys### esclavo para que el usuario escriba entradas de comandos. Esto es lo que se ve al llamar a who .

Sin embargo, cuando ls /dev , veo muchos pares de estos archivos pseudoterminales estilo BSD, es decir, /dev/ttyXY y /dev/ptyXY donde XY son un par de caracteres. Creo que hay 255 pares en total de estos archivos.

  • ¿Hay alguna razón específica, aparte de la compatibilidad con versiones anteriores, para que estos archivos estén en las nuevas versiones de macOS? ¿Algún caso de uso moderno?
  • Si es posible, ¿cómo podría abrir uno de estos archivos BSD PTY, en lugar de /dev/ptmx para uso general de terminales o con screen ? Cuando intenté screen \dev\ttyw0 no pasó nada, y xterm creó otro \dev\ttys### .
  • ¿Por qué el nuevo ptmx sistema adoptado? ¿Para poder crear más de 255 sesiones de terminal simultáneamente?

Edición: relacionado pero diferente Correo electrónico: .

2voto

Jose Chavez Puntos 645

La compatibilidad con versiones anteriores es la razón por la que estos archivos están en la versión más reciente de MacOS. Está ahí para asegurar que los programas que esperan esta forma de manejar pseudoterminales sigan funcionando.

Puede abrir el /dev/ptyX# de la misma forma que abriría /dev/ttys### archivos. Parece que ha invertido las barras diagonales en su comando - por favor, asegúrese de que está utilizando barras diagonales así:

screen /dev/ttyw0

Ten en cuenta que esto en sí mismo no hace que ocurra nada. Sólo te has conectado a un extremo del par de terminales. Necesitarías conectarte al otro extremo también para transferir algunos datos.

Por ejemplo, puede abrir una ventana de Terminal y ejecutar el comando anterior y, a continuación, abrir otra ventana de Terminal y ejecutar el comando siguiente:

screen /dev/ptyw0

Ahora, si escribes algo en una ventana, aparece en la otra (y viceversa).

El principal factor para adoptar la ptmx era que el sistema antiguo es muy complejo para que los programadores lo utilicen correctamente. Parece engañosamente sencillo, pero cuando te adentras en él, te das cuenta de que en realidad no lo es.

Uno de los principales problemas es determinar cuál de los /dev/ttyXX para utilizarlos realmente. Es decir, quieres usar uno que no esté en uso por otros. Si no tienes mucho cuidado, dos programas que quieran abrir un nuevo pseudo terminal al mismo tiempo podrían pensar erróneamente que el mismo terminal no está siendo usado por otros, y entonces ambos empezarían a usarlo - causando todo tipo de problemas. El sitio ptmx resuelve este problema.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X