HOWTO Terminal Texte pour Linux: Fichiers spéciaux pour les terminaux tels que /dev/tty
6. Fichiers spéciaux pour les terminaux tels que /dev/tty
"tty" est l'abréviation de "Teletype". Les premiers terminaux étaient des
télétypes (comme machine à écrire pilotée à distance). Voyez la sous-section
télétypes.
6.1 Terminaux sur port série
L'ordinateur considère chaque port série comme un "périphérique". On
l'appelle parfois périphérique terminal puisqu'à un moment les terminaux
représentaient une utilisation courante des ports série.
Pour chacun de ces ports série, il existe un fichier spécial dans le répertoire
/dev (device : périphérique). /dev/ttyS0 est le fichier spécial pour le port
série connu sous le nom COM1 dans le monde DOS/Windows. Pour envoyer du texte
à un terminal vous pouvez rediriger la sortie standard de certains programmes
en ligne de commande vers le fichier spécial approprié. Par exemple en tapant
"echo test > /dev/ttyS1" à l'invite de commandes, le mot "test" devrait être
envoyé sur le terminal sur ttyS1 (COM2) à condition que vous ayez la
permission d'écrire sur /dev/ttyS1. De même, taper "cat mon_fichier >
/dev/ttyS0" enverra le contenu du fichier mon_fichier sur COM1 (ttyS0).
En plus de ttyS0 (/dev/ttyS0), ttyS1, ttyS2, etc. (le "S" veut dire port
Série) il y a aussi une série de "cua" : cua0, cua1, cua2, etc. cua0
correspond au même port que ttyS0, etc. Le "cu" dans cua veut dire CalloUt
(appel sortant). Les séries ttyS sont conformes à Posix alors que
l'utilisation de cua peut permettre l'ouverture d'un port dont les lignes de
contrôles du modem affirment qu'il n'est pas prêt. À partir du noyau 2.2 cua
est obsolète et un message d'avertissement est affiché quand vous essayez de
l'utiliser (bien qu'il fonctionne encore). Pendant les dernières années, il
n'était présent dans Linux que pour assurer une compatibilité ascendante. Un
programmeur peut faire en sorte que ttyS se comporte comme cua, et donc cua
n'est pas vraiment utile.
6.2 Pseudo-terminaux
Les pseudo-terminaux n'ont pas de connecteur physique associé sur
l'ordinateur. On les utilise pour émuler un port série. Par exemple, si
quelqu'un se connecte grâce à telnet sur votre ordinateur à travers un
réseau, il peut se trouver connecté au périphérique /dev/ptyp2 (un port de
pseudo-terminal). Dans X Window, le programme d'émulation de terminal, xterm
(ou rxvt), utilise des pseudo-terminaux. Les programmes pour les
radioamateurs sous Linux les utilisent aussi. Avec certaines applications, il
est possible d'attacher deux ou plus de deux pseudo-terminaux sur le même
port série physique.
Les pseudo-terminaux vont par deux comme ttyp3 et ptyp3. La série pty... est
le terminal maître ou contrôleur et la série tty... est l'esclave. ttyq5 est
aussi un pseudo-terminal comme l'est ttysc (``c'' est un chiffre
hexadécimal). Plus précisément, les pseudo-terminaux maîtres sont
/dev/pty[p-s]N et les esclaves correspondants sont
/dev/tty[p-s]N où N est un chiffre hexadécimal.
6.3 Le terminal contrôlant /dev/tty
/dev/tty est le terminal contrôlant (s'il y en a un) le processus en cours
(le processus qui utilise "/dev/tty" dans une commande). Pour déterminer
quels ttys sont attachés à quels processus, utilisez la commande "ps -a" à
l'invite de commandes (la ligne de commandes). Regardez la colonne "tty".
Pour le processus shell que vous utilisez, /dev/tty est le terminal que vous
utilisez à l'instant. Tapez "tty" à l'invite de commandes pour voir lequel
c'est (voyez la page de manuel tty(1)). /dev/tty est quelque chose semblable
à un lien vers le nom de périphérique du terminal en cours avec certaines
possibilités supplémentaires pour les programmeurs en C : voyez la page de
manuel tty(4).
6.4 "Terminaux" /dev/ttyIN
N représente un entier. L'une des utilisations possibles de ces terminaux
dans Linux est le paquet du pilote ISDN (RNIS) : isdn4linux. La série ttyIN
ressemble à ttySN. Il y a aussi une série cuiN qui ressemble à cuaN. Les
séries ttyI et cui émulent des modems et on peut leur envoyer des commandes
de modems.
6.5 La console : /dev/ttyN
Dans Linux le moniteur du PC est en général appelé la console et on lui associe
plusieurs fichiers spéciaux de périphériques : tty0, tty1, tty2, etc. Quand
vous vous loggez vous êtes sur le tty1. Pour aller sur le tty2 appuyez sur
Alt-F2. tty1, tty2, etc. sont des "terminaux virtuels" (qu'on appelle parfois
des "consoles virtuelles"). Vous pouvez vous logger sur différents terminaux
virtuels et ainsi avoir plusieurs sessions différentes tournant en même temps
sur l'ordinateur. Vous basculez de l'une à l'autre en utilisant la touche
Alt-F? où "?" est le numéro de terminal virtuel que vous désirez. La console
est aussi appelée /dev/tty0 et les messages du système peuvent aller sur ce
périphérique et s'afficher sur votre console. Seuls le système et
l'utilisateur root peuvent écrire dans /dev/tty0 à laquelle /dev/console est
quelquefois liée. Les messages du système peuvent aussi être écrits
directement à l'adresse matérielle de la console, court-circuitant ainsi
/dev/tty0. Pour plus d'informations sur la console, voyez
la console Linux.
6.6 Créer un périphérique avec "mknod"
Le répertoire /dev est installé avec beaucoup de fichiers spéciaux de
périphériques. Si vous avez besoin de quelque chose non présent dans ce
répertoire, vous pouvez essayer de le créer avec la commande "mknod". Voyez
la page de manuel de ttys(4) pour savoir comment le faire pour les ports
série. Pour utiliser mknod vous devez connaître les numéros de
périphériques mineur et majeur. Vous pourriez déduire les numéros dont vous
avez besoin en utilisant la commande "ls -l " dans le répertoire /dev.
Elle affichera les numéros majeur et mineur des fichiers spéciaux existants.
[22 février 2002, JDNet]
|