Page suivante Page précédente Table des matières

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.


Page suivante Page précédente Table des matières