GNU/Linux >> Tutoriales Linux >  >> Linux

¿Por qué hay tantos /dev/tty en Linux?

Los ttys no son solo dispositivos de entrada/salida. También hacen un trabajo especial al actuar como terminal de control de una sesión, como enviar señales (Ctrl+C). /dev/ttyNN son consolas virtuales, que son visualizaciones de pantalla completa en el monitor.

Los terminales comienzan desde /dev/tty1. Puede cambiar a estas consolas, por lo general, presionando las teclas Ctrl+Alt+Fn.

por ejemplo, Ctrl+Alt+F1 lo lleva a la primera terminal virtual. Hoy en día, la mayoría de las distribuciones de Linux ejecutan el servidor X desde el tty1. Por lo tanto, presionar Ctrl+Alt+F1 puede no tener efecto.

$ ps ax | grep Xorg | grep -v grep
 1504 tty1     Ss+   44:57 /usr/bin/Xorg :0 -background none -verbose -auth /var/run/gdm/auth-for-gdm-rfsWyA/database -nolisten tcp vt1

Ctrl+Alt+F2 lo llevará a la segunda terminal. Por lo general, las distribuciones ejecutan un programa de inicio de sesión (agetty) en la terminal virtual.

$ ps ax | grep tty2 | grep -v grep
31865 tty2     Ss+    0:00 /sbin/agetty tty2 38400

Los programas de inicio de sesión le brindan un aviso de inicio de sesión y le permiten iniciar sesión con nombre de usuario/contraseña. Los scripts de inicio deciden dónde se ejecutará todo el programa de inicio de sesión. Entonces, dependiendo de eso, puede o no ver un aviso de inicio de sesión, digamos tty9. Para volver a su interfaz GUI, presione Ctrl+Alt+F1 (como en el ejemplo de salida anterior).

/dev/tty0 es un dispositivo especial que apunta a la terminal actual. Por lo tanto, independientemente de desde dónde lo ejecute (cualquier consola virtual), cualquier cosa que se lea/escriba en tty0 va a su terminal actual.

La segunda columna en 'ps ax' también proporciona el terminal de control del programa. Para algunos programas, como demonios, puede ver que la columna es '?', lo que significa que no están vinculados a una terminal.

/dev/pts/0, etc. son dispositivos pseudoterminales que no están conectados a la pantalla del sistema. por ejemplo, el terminal que obtienes cuando abres un gnome-terminal o cualquier otro terminal GUI. Estos son enfoques basados ​​en cliente-servidor donde el lado del cliente se exportará a programas, como bash. Los datos enviados por el programa al pseudo terminal se envían al lado del 'servidor' (que generalmente es monitoreado por otro programa, como gnome-terminal). El proceso de control (lado del servidor) determina lo que debe enviarse a la terminal, que finalmente es visto por el cliente. Estos dispositivos lo ayudan a abrir múltiples 'terminales GUI' sin ningún límite en su sistema, aún brindando el mismo terminal antiguo como controles (ioctl(), configuración de color, envío de señales [Ctrl+C], etc.).


Linux
  1. ¿Cómo maneja Linux múltiples separadores de rutas consecutivas (/home////username///file)?

  2. ¿Qué tan portátiles son /dev/stdin, /dev/stdout y /dev/stderr?

  3. ¿Cuándo usar /dev/random Vs /dev/urandom?

  4. Cómo usa Linux /dev/tty y /dev/tty0

  5. hacer eco o imprimir /dev/stdin /dev/stdout /dev/stderr

Cómo reemplazar un disco duro fallido en el software RAID de Linux

tty (/dev/tty) vs pts (/dev/pts) en Linux

Linux:diferencia entre /dev/console, /dev/tty y /dev/tty0

¿Está mal vincular /dev/random a /dev/urandom en Linux?

¿Por qué en algunos sistemas Linux, el sistema de archivos raíz aparece como /dev/root en lugar de /dev/<nodo de dispositivo real> en mtab?

Crear un dispositivo de bloque virtual que escriba en /dev/null