Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
atelier:chantier:terminaux-et-consoles-explications [14/06/2023 12:10] agp91 Correction dans la section [Tuto] et sous sections |
atelier:chantier:terminaux-et-consoles-explications [27/04/2024 15:22] agp91 [Les pseudos terminaux] correction des 4 schemas |
||
---|---|---|---|
Ligne 330: | Ligne 330: | ||
>[[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/tty/Kconfig?id=HEAD|(git.kernel)(en) Torvalds/Linux/drivers/tty/Kconfig]] (traduction) : La console système est le périphérique qui reçoit tous les messages du noyau et des avertissements et qui permet les connexions en mode mono-utilisateur. | >[[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/tty/Kconfig?id=HEAD|(git.kernel)(en) Torvalds/Linux/drivers/tty/Kconfig]] (traduction) : La console système est le périphérique qui reçoit tous les messages du noyau et des avertissements et qui permet les connexions en mode mono-utilisateur. | ||
- | Ainsi la **console Linux** est **__la__ console** de l'ordinateur. Elle est, ce qu'est une __console système__ pour l'ordinateur central. | + | Ainsi la **console Linux** est **__la__ console** de l'ordinateur. Elle est, ce qu'est une console système pour l'ordinateur central. |
- | Elle n'existe que dans le noyau, matériel et les drivers. | + | La console Linux **n'existe que dans l'espace noyau et le matériel.** |
+ | |||
+ | <note>__**L'espace noyau**__ fait référence aux anneaux théoriques de sécurité d'un système informatique(([[https://fr.wikipedia.org/wiki/Anneau_de_protection|Anneau de protection (fr)(wikipedia)]])).\\ | ||
+ | \\ | ||
+ | Il y a 4 niveaux de sécurité (numérotés de 0 à 3) :\\ | ||
+ | \\ | ||
+ | * Le **niveau 0** : Le noyau lui-même. | ||
+ | * Le **niveau 1** : Les drivers qui ordonnent le matériel. | ||
+ | * Le **niveau 2** : Les drivers qui implémentent l'accès et l'autorité aux ressources. | ||
+ | * Le **niveau 3** : L'espace utilisateur. Où nous pouvons utiliser les ressources pour exécuter nos programmes. | ||
+ | |||
+ | Depuis l'espace utilisateur, nous accédons au ressources du système (détenue par le noyau), que par le niveau 2.\\ | ||
+ | ... Ainsi le noyau est protégé de tout accès direct. | ||
+ | |||
+ | Pour simplifier ce schéma, **les trois premiers anneaux** (0, 1 et 2),\\ | ||
+ | Sont regroupés en un seul, pour être **nommer** ''l'espace noyau''.\\ | ||
+ | Ainsi nous voyons le système avec : | ||
+ | |||
+ | * L'**espace noyau** (noyau + drivers) | ||
+ | * Et l'**espace utilisateur**. | ||
+ | </note> | ||
<file config La console Linux> | <file config La console Linux> | ||
- | +------------------------Logiciel--------------------------+ | + | +------------------------Logiciel---------------------------------------+ |
- | +---------------------Espace-noyau-------------------------+ | + | +---------------------Espace-noyau--------------------------------------+ |
- | +------------Console-----------------------------------------------------+ | | + | +------------Console------------------------------------------------------------------+ | |
- | | +-Matériel-+ | +-------+ +---------+ +----------+ +-------+ | | | + | | | +-------------Noyau-------------+ | | |
- | | | +-----+ | | |Drivers| | | | | | | | | | + | | +-Matériel-+ | +-------+ | +---------+ +----------+ | +------------------+ | | |
- | | | |Ecran|<-|--|--| vidéo |<--|Emulateur| |Discipline| |Drivers| | | | + | | | +-----+ | | |Drivers| | | | | | | | Drivers | | | |
- | | | +-----+ | | +-------+ | de |<==>| |<==>| | | | | + | | | |Ecran|<-|--|--| vidéo |<-|--|Emulateur| |Discipline| | | +------------+ | | | |
- | | |+-------+ | | +-------+ |terminal | | de ligne | | TTY | | | | + | | | +-----+ | | +-------+ | | de |<==>| de |<=|==|=>|/dev/console| | | | |
- | | ||Clavier|-|--|->|Drivers|-->| | | | | | | | | + | | |+-------+ | | +-------+ | |terminal | | ligne | | | +------------+ | | | |
- | | |+-------+ | | |Clavier| +---------+ +----------+ +-------+ | | | + | | ||Clavier|-|--|->|Drivers|--|->| | | | | | TTY | | | |
- | | +----------+ | +-------+ | | | + | | |+-------+ | | |Clavier| | +---------+ +----------+ | +------------------+ | | |
- | +---------------|--------------------------------------------------------+ | | + | | +----------+ | +-------+ +-------------------------------+ | | |
- | +----------------------------------------------------------+ | + | +---------------|---------------------------------------------------------------------+ | |
+ | +-----------------------------------------------------------------------+ | ||
</file> | </file> | ||
- | * Le matériel UART et ses drivers ont disparu, laissant la place aux **drivers vidéo et clavier**. | + | Le matériel UART et ses drivers ont disparu, laissant la place aux **drivers vidéo et clavier**. |
- | * L'**émulateur de terminal** est désigné comme **terminal physique**. | + | |
+ | **Le terminal est émulé** au sein du noyau.\\ | ||
+ | Le noyau nous le présente donc comme **terminal physique**.\\ | ||
+ | Son émulateur fut **nommé Linux**.\\ | ||
+ | Ce qui donna **le type** ''linux'', pour le différencier des autres types de terminaux. | ||
+ | |||
+ | ---- | ||
Avec les systèmes GNU/Linux modernes, sur un PC et un écran moderne, la **console** est un __terminal graphique__. | Avec les systèmes GNU/Linux modernes, sur un PC et un écran moderne, la **console** est un __terminal graphique__. | ||
Ligne 389: | Ligne 416: | ||
<file config Deux terminaux virtuels (tty1 et tty2), utilisés pour l'exécution d'un shell chacun.> | <file config Deux terminaux virtuels (tty1 et tty2), utilisés pour l'exécution d'un shell chacun.> | ||
+-----------------------------Logiciel---------------------------------+ | +-----------------------------Logiciel---------------------------------+ | ||
- | +----------------------Espace-noyau-------------------+-----Espace-----+ | + | +----------------------Espace-noyau------------------------+--Espace---+ |
- | | | utilisateur | | + | | +---------Noyau---------+ +--Drivers-TTY--+ | utilisat. | |
- | +-Matériel-+ | +-------+ +---------+ +---+ +-------+ +---------+ +-----+ | | + | +-Matériel-+ | +-------+ | +---------+ +---+ | | +---------+ | | +-----+ | |
- | | +-----+ | | |Drivers| | | | | | |<=>|/dev/tty1|<=>|shell| | | + | | +-----+ | | |Drivers| | | | | |<=|==|=>|/dev/tty1|<=|=|=>|shell| | |
- | | |Ecran|<-|--|--| vidéo |<--|Emulateur| | D | |Drivers| +---------+ +-----+ | | + | | |Ecran|<-|--|--| vidéo |<-|--|Emulateur| | D | | | +---------+ | | +-----+ | |
- | | +-----+ | | +-------+ | de |<=>| D |<=>| | | | | + | | +-----+ | | +-------+ | | de |<=>| D | | | | | | |
- | |+-------+ | | +-------+ |terminal | | L | | TTY | +---------+ +-----+ | | + | |+-------+ | | +-------+ | |terminal | | L | | | +---------+ | | +-----+ | |
- | ||Clavier|-|--|->|Drivers|-->| | | | | |<=>|/dev/tty2|<=>|shell| | | + | ||Clavier|-|--|->|Drivers|--|->| | | |<=|==|=>|/dev/tty2|<=|=|=>|shell| | |
- | |+-------+ | | |Clavier| +---------+ +---+ +-------+ +---------+ +-----+ | | + | |+-------+ | | |Clavier| | +---------+ +---+ | | +---------+ | | +-----+ | |
- | +----------+ | +-------+ | | | + | +----------+ | +-------+ +-----------------------+ +---------------+ | | |
- | +-----------------------------------------------------+----------------+ | + | +----------------------------------------------------------+-----------+ |
+ | Alice a ouvert deux terminaux virtuels, sur son PC, démarrant chacun un shell. | ||
DDL : Discipline de ligne | DDL : Discipline de ligne | ||
</file> | </file> | ||
Ligne 478: | Ligne 506: | ||
<file config Deux terminaux fenêtre émulés par le processus xterm> | <file config Deux terminaux fenêtre émulés par le processus xterm> | ||
- | +--------------------------Logiciel-------------------------+ | + | +---------------------------Logiciel--------------------------+ |
- | +-Espace-noyau-------------------------+-Espace-------------+ | + | +--------------Espace-noyau--------------+-Espace-utilisateur-+ |
- | | +-------------+ | utilisateur | | + | | +------Drivers PTY----+ | | |
- | | | Drivers PTY | | | | + | | | +-----esclave----+ | | | |
- | | | +-------+ | +----------+ +-----+ | | + | | +---+ | | +----------+ | | | +-------+ | |
- | | | | |<=|=>|/dev/pts/0|<=>|shell| | | + | | | |<=|==|=>|/dev/pts/0|<=|=|=|====>| shell | | |
- | +-Matériel-+ | +---+ +---+ | |esclave| | +----------+ +-----+ | | + | | | | | | +----------+ | | | +-------+ | |
- | | +------+ | | | | | | | | (PTS) | | +----------+ +-----+ | | + | +-Matériel-+ | +---+ | D | | | +----------+ | | | +-------+ | |
- | | |Souris|-|--|->| D | | D |<=|=>| |<=|=>|/dev/pts/1|<=>|shell| | | + | | +------+ | | | | | D |<=|==|=>|/dev/pts/1|<=|=|=|====>| shell | | |
- | | +------+ | | | R | | D | | +-------+ | +----------+ +-----+ | | + | | |Souris|-|--|->| D | | L | | | +----------+ | | | +-------+ | |
- | |+-------+ | | | I | | L | | +------+ | | | | + | | +------+ | | | R | | | | +----------------+ | | | |
- | ||Clavier|-|--|->| V | | |<=|=>|maitre| | | +-----+ | | + | |+-------+ | | | I | | | | +------+ | | | |
- | |+-------+ | | | E | +---+ | |(PTM) |<==|=======|===========>| | | | + | ||Clavier|-|--|->| V | | |<=|=====>|maitre| | | +-----+ | |
- | | +-----+ | | | R | | +------+ | | +-----+ |xterm| | | + | |+-------+ | | | E | +---+ | |(PTM) |<======|=|===========>| | | |
- | | |Ecran|<-|--|--| S | +-------------+ | |serv.|<=>| | | | + | | +-----+ | | | R | | +------+ | | +-----+ |xterm| | |
- | | +-----+ | | | |<==============================|=>| X | +-----+ | | + | | |Ecran|<-|--|--| S | +---------------------+ | |serv.|<=>| | | |
- | +----------+ | +---+ | +-----+ | | + | | +-----+ | | | |<================================|=>| X | +-----+ | |
- | +--------------------------------------+--------------------+ | + | +----------+ | +---+ | +-----+ | |
- | DDL Discipline de ligne | + | +----------------------------------------+--------------------+ |
+ | Alice à ouvert deux terminaux fenêtre sur son PC. | ||
+ | DDL : Discipline de ligne | ||
</file> | </file> | ||
Ligne 538: | Ligne 568: | ||
<file config Deux accès distants au shell sur un ordinateur hôte> | <file config Deux accès distants au shell sur un ordinateur hôte> | ||
- | +---------------------Logiciel-------------------+ | + | Hôte |
- | +--------Espace-noyau-----------+-Espace---------+ | + | +-----------------Logiciel-----------------------+ |
- | | +-------------+ | utilisateur | | + | +----------Espace-noyau----------+--Espace-------+ |
- | | | Drivers PTY | | | | + | | +------Drivers-PTY----+ | utilisateur | |
- | | | +------+ | | +---------+ | | + | | | +------+ | | +---------+ | |
- | | | | |<==|========|=>|sshd@pts0| | | + | | | | |<==========|=|=>|sshd@pts0|<=|==//=> Alice |
- | | +---+ | |maître| | | +---------+ | | + | | | |maître| | | +---------+ | |
- | | | | | |(PTM) | | | +---------+ | | + | | +---+ | |(PTM) | | | +---------+ | |
- | | | D |<=|=>| |<==|========|=>|sshd@pts1| | | + | | | |<=|=>| |<==========|=|=>|sshd@pts1|<=|==//=> Bob |
- | | | D | | +------+ | | +---------+ | | + | | | | | +------+ | | +---------+ | |
- | | | L | | +-------+ | +----------+ +-----+ | | + | | | D | | +--Esclave-(PTS)-+ | | | |
- | | | |<=|=>| |<=|=>|/dev/pts/0|<=>|shell| | | + | | | D | | | +----------+ | | | +-----+ | |
- | | +---+ | |esclave| | +----------+ +-----+ | | + | | | L |<=|==|=>|/dev/pts/0|<=|=|=|===>|shell| | |
- | | | | (PTS) | | +----------+ +-----+ | | + | | | | | | +----------+ | | | +-----+ | |
- | | | | |<=|=>|/dev/pts/1|<=>|shell| | | + | | | | | | +----------+ | | | +-----+ | |
- | | | +-------+ | +----------+ +-----+ | | + | | | |<=|==|=>|/dev/pts/1|<=|=|=|===>|shell| | |
- | | +-------------+ | | | + | | +---+ | +----------------+ | | +-----+ | |
- | +-------------------------------+----------------+ | + | | +---------------------+ | | |
- | DDL : Discipline | + | +--------------------------------+---------------+ |
+ | Alice et Bob se sont connectés à distance sur l'hôte pour ouvrir un shell. | ||
+ | DDL : Discipline de ligne | ||
+ | PTM : Drivers PTY maître | ||
+ | PTS : Drivers PTY esclave | ||
</file> | </file> | ||
Ligne 565: | Ligne 599: | ||
<file config Accès à distance via un terminal virtuel> | <file config Accès à distance via un terminal virtuel> | ||
- | PC local +---------------------------Logiciel------------------------+ +----------------Logiciel-----------------+ | + | PC local--------------------Logiciel----------------------+ |
- | +---------------Espace-noyau---------------+----------------+ +-Espace----------+----Espace-noyau-------+ | + | +------------------Espace-noyau--------------+-Espace--+ PC distant |
- | +-Matériel-+ | +---+ | | | utilisateur| | | + | +-Matériel-+ | +---+ | utilis. | +------------- ---Logiciel----------------+ |
- | | +-----+ | | | D | +---+ +---+ +-------+ +---------+ +---+ | | +----------+ | +---+ +---+ | | + | | +-----+ | | | D | +---+ +---+ +---------------+ | | +-Espace---------+-----Espace-noyau-------+ |
- | | |Ecran|<-|--|--| R | | L | | | | |<=>|/dev/tty1|<=>|ssh|<=|==//==|=>|sshd@pts42|<==|========>|PTM|<=>| | | | + | | |Ecran|<-|--|--| R | | L | | | | Drivers TTY | | | | utilisateur | | |
- | | +-----+ | | | I |<--| i | | D | |Drivers| +---------+ +---+ | | +----------+ | +---+ | D | | | + | | +-----+ | | | I |<--| i | | D | | +---------+ | | +---+ | | +----------+ | +-----+ +---+ | |
- | |+-------+ | | | V | | n |<=>| D |<=>| | | | | | | D | | | + | |+-------+ | | | V | | n |<=>| D |<=|=>|/dev/tty1|<=|==|=>|ssh|<=|=//=|=>|sshd@pts42|<=|====>| PTM |<====>| D | | |
- | ||Clavier|-|--|->| E | | u | | L | | TTY | | Espace | | +-----+ +-----------+ +---+ | L | | | + | ||Clavier|-|--|->| E | | u | | L | | +---------+ | | +---+ | | +----------+ | +-----+ | D | | |
- | |+-------+ | | | R |-->| x | | | | | | | | |shell|<=>|/dev/pts/42|<=>|PTS|<=>| | | | + | |+-------+ | | | R |-->| x | | | | | | | | +-----+ | +----PTS----+ | L | | |
- | +----------+ | | S | +---+ +---+ +-------+ | utilisateur | | +-----+ +-----------+ +---+ +---+ | | + | +----------+ | | S | +---+ +---+ +---------------+ | | | |shell|<===|=>|/dev/pts/42|<=>| | | |
- | | +---+ | | | | | | + | | +---+ | | | +-----+ | +-----------+ +---+ | |
- | +-------------------------------------------+---------------+ +-----------------+-----------------------+ | + | +--------------------------------------------+---------+ +----------------+------------------------+ |
- | Linux : Émulateur de terminal PC distant | + | Bob utilise ssh depuis une console virtuelle, pour se connecter et ouvrir un shell distant, sur le PC d'Alice. |
+ | Linux : L'émulateur de terminal du noyau | ||
DDL : Discipline de ligne | DDL : Discipline de ligne | ||
PTM : Drivers PTY maître | PTM : Drivers PTY maître | ||
PTS : Drivers PTY esclave | PTS : Drivers PTY esclave | ||
- | |||
</file> | </file> | ||
Ligne 587: | Ligne 621: | ||
<file config Accès à distance via un terminal fenêtre> | <file config Accès à distance via un terminal fenêtre> | ||
- | PC local +-----------------------Logiciel-----------------------+ +------------------Logiciel-----------------+ | + | PC local-----------------Logiciel-----------------------+ +----------------Logiciel------------------+ |
- | +--------Espace-noyau-------------+-Espace-------------+ +-Espace----------+-----Espace-noyau--------+ | + | +----------Espace-noyau---------+-Espace-------------+ +-Espace----------+------Espace-noyau------+ |
- | +-Matériel-+ | +---+ | utilisateur | | utilisateur| | | + | +-Matériel-+ | +---+ | utilisateur | | utilisateur| | |
- | | +------+ | | | | +---+ +-----+ +----------+ +---+ | | +----------+ | +-----+ +---+ | | + | | +------+ | | | | +---+ +---PTS----+ | +---+ | | +----------+ | +-----+ +---+ | |
- | | |Souris|-|--|->| D | | |<=>| PTS |<=>|/dev/pts/0|<=>|ssh|<======|==//==|=>|sshd@pts42|<==|========>| PTM |<=>| | | | + | | |Souris|-|--|->| D | | |<=>|/dev/pts/0|<=|======>|ssh|<=======|=//=|=>|sshd@pts42|<==|====>| PTM |<====>| D | | |
- | | +------+ | | | R | | D | +-----+ +----------+ +---+ | | +----------+ | +-----+ | D | | | + | | +------+ | | | R | | D | +----------+ | +---+ | | +----------+ | +-----+ | D | | |
- | |+-------+ | | | I | | D | | | | | | D | | | + | |+-------+ | | | I | | D | | | | +-----+ | +----PTS----+ | L | | |
- | ||Clavier|-|--|->| V | | L | +-----+ | +-----+ | | +-----+ +-----------+ +-----+ | L | | | + | ||Clavier|-|--|->| V | | L | +-----+ | +-----+ | | |shell|<====|=>|/dev/pts/42|<=>| | | |
- | |+-------+ | | | E | | |<=>| PTM |<========|===========>| | | | |shell|<=>|/dev/pts/42|<=>| PTS |<=>| | | | + | |+-------+ | | | E | | |<===>| PTM |<====|===========>| | | | +-----+ | +-----------+ +---+ | |
- | | +-----+ | | | R | +---+ +-----+ | +-----+ |xterm| | | +-----+ +-----------+ +-----+ +---+ | | + | | +-----+ | | | R | +---+ +-----+ | +-----+ |xterm| | +-----------------+------------------------+ |
- | | |Ecran|<-|--|--| S | | |serv.|<=>| | | | | | | + | | |Ecran|<-|--|--| S | | |serv.|<=>| | | |
- | | +-----+ | | | |<=========================|=>| X | +-----+ | +-----------------+-------------------------+ | + | | +-----+ | | | |<=======================|=>| X | +-----+ | PC distant |
- | +----------+ | +---+ | +-----+ | PC distant | + | +----------+ | +---+ | +-----+ | |
- | +---------------------------------+--------------------+ | + | +-------------------------------+--------------------+ |
+ | Bob utilise ssh depuis un terminal fenêtre, pour se connecter et ouvrir un shell distant, sur le PC d'Alice. | ||
DDL : Discipline de ligne | DDL : Discipline de ligne | ||
PTM : Drivers PTY maître | PTM : Drivers PTY maître | ||
- | PTS : Drivers PTY esclave | ||
</file> | </file> | ||