GNU/Linux >> Tutoriels Linux >  >> Linux

Pourquoi y a-t-il autant de /dev/tty sous Linux ?

Les ttys ne sont pas seulement des périphériques d'entrée/sortie. Ils font également un travail spécial en agissant en tant que terminal de contrôle pour une session, comme envoyer des signaux (Ctrl+C). /dev/ttyNN sont des consoles virtuelles, qui sont des affichages plein écran sur le moniteur.

Les terminaux commencent à partir de /dev/tty1. Vous pouvez basculer vers ces consoles, généralement, en appuyant sur les touches Ctrl+Alt+Fn.

par exemple, Ctrl+Alt+F1 vous amène au premier terminal virtuel. De nos jours, la plupart des distributions Linux exécutent le serveur X à partir du tty1. Ainsi, appuyer sur Ctrl+Alt+F1 peut ne pas avoir d'effet.

$ 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 vous amènera au deuxième terminal. Habituellement, les distributions exécutent un programme de connexion (agetty) sur le terminal virtuel.

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

Les programmes de connexion vous fournissent une invite de connexion et vous permettent de vous connecter avec un nom d'utilisateur/mot de passe. Les scripts d'initialisation décident où tous les programmes de connexion seront exécutés. Donc, selon cela, vous pouvez ou non voir une invite de connexion, disons tty9. Pour revenir à votre interface graphique, appuyez sur Ctrl+Alt+F1 (comme dans l'exemple de sortie ci-dessus).

/dev/tty0 est un périphérique spécial qui pointe vers le terminal actuel. Ainsi, quel que soit l'endroit d'où vous l'exécutez (n'importe quelle console virtuelle), tout ce qui est lu/écrit sur tty0 va à votre terminal actuel.

La deuxième colonne dans 'ps ax' donne également le terminal de contrôle du programme. Pour certains programmes, comme les démons, vous pouvez voir que la colonne est '?', ce qui signifie qu'ils ne sont pas liés à un terminal.

/dev/pts/0 etc sont des périphériques pseudo-terminaux, qui ne sont pas connectés à l'affichage du système. par exemple, le terminal que vous obtenez lorsque vous ouvrez un terminal gnome ou tout autre terminal GUI. Il s'agit d'une approche basée sur le client-serveur où le côté client sera exporté vers des programmes, comme bash. Les données envoyées par le programme au pseudo-terminal sont envoyées au côté "serveur" (qui est généralement surveillé par un autre programme, comme gnome-terminal). Le processus de contrôle (côté serveur) détermine ce qui doit être envoyé au terminal, qui est finalement vu par le client. Ces appareils vous aident à ouvrir plusieurs 'terminaux GUI' sans aucune limite sur votre système, en fournissant toujours le même ancien terminal comme les contrôles (ioctl(), le réglage des couleurs, l'envoi de signaux [Ctrl+C] etc.).


Linux
  1. Comment générer un mot de passe aléatoire sous Linux en utilisant /dev/random

  2. Comment Linux gère-t-il plusieurs séparateurs de chemins consécutifs (/home////nom d'utilisateur///fichier) ?

  3. Quand dois-je utiliser /dev/shm/ et quand dois-je utiliser /tmp/?

  4. Pourquoi Linux répertorie-t-il les lecteurs NVMe comme /dev/nvme0 au lieu de /dev/sda ?

  5. Linux :Différence entre /dev/console , /dev/tty et /dev/tty0

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

Comment Linux utilise /dev/tty et /dev/tty0

Est-ce une erreur de lier /dev/random à /dev/urandom sous Linux ?

echo ou print /dev/stdin /dev/stdout /dev/stderr

Pourquoi < ou > sont-ils nécessaires pour utiliser /dev/tcp

Existe-t-il un répertoire équivalent à /dev/null sous Linux ?