perdu entre tty, pts, pty, console et autres...
Le
fabrice
Bonsoir à tous,
voila un moment que je tourne en rond pour essayer de comprendre la notion
de terminal, pseudo termiinal et la signfication exacte de certaines
notions.
Si je me connecte sur linux j'ai à ma disposition des consoles virtuelles
nommés /dev/tty0 63
Mais je ne comprends pas tout a fait que représente ce fichier spécial.
Si je me connecte en runlevel 3 en root et que je fais un who j'obtiens :
> root tty1
Avec la commande tty
> /dev/tty1
J'aurais pensé être sur /dev/tty0 et non pas /dev/tty1
Si ensuite je lance le serveur X avec la commande STARTX et que je fais un
ps -a
j ai un processus attaché ay terminal PTS/0. Que représente t il ?
Voila globalement je suis perdu entre les TTY, PTS,PTY, Console virtuelle,
/dev/tty,/dev/pts ..
Si quelqu'un était assez charitable de m'éclairer ce serait génial..
merci par avance
fabrice
voila un moment que je tourne en rond pour essayer de comprendre la notion
de terminal, pseudo termiinal et la signfication exacte de certaines
notions.
Si je me connecte sur linux j'ai à ma disposition des consoles virtuelles
nommés /dev/tty0 63
Mais je ne comprends pas tout a fait que représente ce fichier spécial.
Si je me connecte en runlevel 3 en root et que je fais un who j'obtiens :
> root tty1
Avec la commande tty
> /dev/tty1
J'aurais pensé être sur /dev/tty0 et non pas /dev/tty1
Si ensuite je lance le serveur X avec la commande STARTX et que je fais un
ps -a
j ai un processus attaché ay terminal PTS/0. Que représente t il ?
Voila globalement je suis perdu entre les TTY, PTS,PTY, Console virtuelle,
/dev/tty,/dev/pts ..
Si quelqu'un était assez charitable de m'éclairer ce serait génial..
merci par avance
fabrice

Poser une question


retireras de cette connaissance, personnellement ça ne m'a jamais servi
vraiment...En tout cas voici une "synthèse" de tout ce que j'ai pu
trouver le jour où moi (aussi) j'ai cherché à savoir.
là sert à la communication entre le système et son utilisateur. Il faut
remonter assez loin d'aujourd'hui pour comprendre. A l'origine les
terminaux n'étaient pas "pseudo" c'étaient des périphériques télétype
qui se branchaient à un système par le port série et qui permettaient
d'envoyer et de recevoir des caractères. D'ailleurs /dev/tty* est
toujours un fichier de périphérique par caractère et tty est une
contraction de TeleTYpe :-)
Sous Linux il existe trois types différents de périphérique tty. Les
périphériques série sont utilisés avec les connexions série, par
exemple par modem ou câble série. Ils s'appellent ttySx à cause de la
différence avec les pseudo terminaux. Les terminaux virtuels (tty ou vt)
créent la connexion console commune, telle que les consoles virtuelles
disponibles lorsque tu appuies sur [Alt]-[Fx] sur la console système. Les
pseudo-terminaux (pts) créent une communication à double sens utilisée
par certaines applications de niveau supérieur, telles que XFree86. Le
fichier /proc/tty/drivers maintient une liste des périphériques tty
actuellement utilisés, moi j'ai:
/dev/tty /dev/tty 5 0 system:/dev/tty
/dev/console /dev/console 5 1 system:console
/dev/ptmx /dev/ptmx 5 2 system
/dev/vc/0 /dev/vc/0 4 0 system:vtmaster
serial /dev/ttyS 4 64-117 serial
pty_slave /dev/pts 136 0-1048575 pty:slave
pty_master /dev/ptm 128 0-1048575 pty:master
pty_slave /dev/ttyp 3 0-255 pty:slave
pty_master /dev/pty 2 0-255 pty:master
unknown /dev/tty 4 1-63 console
Toujours là? ok...
Comme tu peux le voir il y a deux composants par pseudo terminal : la
partie maître (tout ce qui est master dans la liste) est le programme qui
cherche à accéder au pseudo terminal, et la partie esclave (slave) est
le programme qui simule le terminal physique. Les composants maîtres
peuvent ouvrir le pseudo terminal par l'intermédiaire des fichiers
spéciaux /dev/ptyxx. En revanche, il existe deux protocoles de nommage
des fichiers spéciaux utilisés par les composants esclaves. L'ancienne
méthode utilisait les fichiers spéciaux /dev/ttyxx, qui existent
encore (utilisés pour les consoles sans framebuffer) mais qui a été
remplacée par un autre protocole, dans lequel le composant esclave doit
d'abord ouvrir le fichier spécial /dev/ptmx , qui lui donne le numéro n
de pseudo terminal qu'il doit simuler, et il ouvre ensuite le fichier
/dev/pts/n. Ce dernier fichier spécial est créé à la volée, grâce à
un système de fichier virtuel. Pour que ce mécanisme fonctionne, il faut
que le système de fichiers /dev/pts/ ait été également choisi parmi
les systèmes de fichiers à la configuration du noyau, et qu'il soit
monté (ça ce n'est plus obligatoire depuis devfs/udev). La valeur par
défaut du nombre de ces pts est 256
commande :-)
le man dit: "Afficher le nom du terminal associe à l'entrée
standard." C'était pratique pour le programme 'talk'.
l'affichage des messages au boot. Il n'est jamais libéré. Ce qui veut
dire qu'en réalité tu n'as pas droit à 64 consoles mais 63...
le mode graphique (quel qu'il soit) ouvrent des pts
tout ça?
--
A+
Jack H.
"Tant que ça aide...8+)"
[...]
Ouhlaa grosse boulette sur le tty0, en fait il n'est disponible que pour
le système et pour root. Plus d'infos dans le Text-Terminal-HOWTO
--
A+
Jack H.
"Tant que ça aide...8+)"
Non, c'est le contraire : le maître est le côté qui simule le terminal
(xterm, ssh, screen, typiquement).
Pour le reste, rien à redire, c'est très bien.
J'aimerais juste ajouter qu'un terminal n'est pas simplement un flux de
caractères. La propriété la plus importante qu'a un terminal par rapport à
un flux de caractères, c'est la possibilité qu'il a d'envoyer des signaux
aux processus qui tournent dedans. C'est important dans le cas d'un
pseudo-terminal, parce que les droits ne sont parfois pas suffisants pour
envoyer directement le signal : si on utilise sudo dans un xterm, xterm n'as
pas les droits pour envoyer un signal aux processus lancés avec sudo, et
pourtant, Ctrl-C les interrompt.
Je vais lire cela a tête reposée, :-$ dans le train demain matin. Vous serez
donc du voyage. !
Pour information, je suis sous une red hat enterprise.
Je lis tout cela et je vous dis tout ce que j ai compris.
En tout cas merci d'avoir pris le temps de cette longue réponse.
fabrice.
Je viens de faire un cop
"Jack Holborn" news: