Pourquoi autant de consoles virtuelles?

26

Quelle est la raison d'avoir autant de consoles virtuelles?

Je comprendrais s'il y en avait un au cas où l'interface graphique se bloquerait mais 6 de plus en plus de la valeur par défaut? À quoi servent-ils? Je ne vois même aucune utilisation pour aucun d'entre eux, sauf lorsque l'interface graphique se bloque.

Hinklo
la source
Je suis d'accord avec la réponse de Mateo ci-dessous. Pourquoi pas PLUS? Je me retrouve à avoir tous les 6 ouverts et j'en souhaite plus (et l'interface graphique reste souvent «fermée» à l'écran de connexion).
Haziz

Réponses:

16

Réponse courte : pourquoi pas? (sourire implicite, s'il vous plaît)

Plus longue : c'est surtout une histoire, je suppose. Il y avait 6 consoles virtuelles configurées avec gettydans le premier linux avec lequel j'ai démarré avec le support VC, j'ai vraiment oublié quand (c'était vers 1990, je pense). Ensuite, lorsque vous avez démarré l'environnement graphique (à la main, avecstartx ), il s'est ouvert sur le premier VC gratuit, qui se trouvait être # 7. Et je faisais encore la plupart de mon travail sur les VC à l'époque: les éditeurs étaient beaucoup plus rapides et parfois j'utilisais plus de VC que les six standard, et mon ordinateur portable n'était pas exactement un monstre graphique ...

Par exemple, j'avais l'habitude d'exécuter trois éditeurs (un programme, ses données d'entrée, un fichier TeX le décrivant), un VC pour la compilation, un autre pour lire un manuel et un autre connecté via telnet à mon serveur de messagerie.

Je soupçonne que la raison de continuer à utiliser six consoles virtuelles est de laisser le VC graphique sur # 7 pour tout le monde, afin que vous puissiez écrire sur les manuels " Ctrl-Alt-F7" et non " Ctrl-Alt-Fxxest le premier VC gratuit".

En remarque, vous pouvez (je suppose --- jamais essayé) réduire les VC. Faites simplement

sudo bash -c "echo 'manual' >> /etc/init/tty6.override"

pour arrêter VC # 6, en suivant le manuel de démarrage .

Rmano
la source
Il est possible de réduire le nombre de tty actifs , mais pas les fichiers de périphérique eux-mêmes (sauf si les gens veulent recompiler les noyaux). Voir ma réponse ci
Sergiy Kolodyazhnyy
9

Pourquoi pas plus? Exécutez topou htopen un (donne des statistiques d'utilisation des processeurs / mémoire), sshà d'autres systèmes en 2 ou 3, exécutez une tâche automatisée dans un autre, gardez-en une libre au cas où, connectez-vous à plusieurs utilisateurs dans quelques autres, exécutez- cmatrixen un, lancez le GUI dans un autre avec -

startx -- :1

(certains graphiques ont des bugs avec cela)

http://mostlylinux.wordpress.com/troubleshooting/ttysessions/

Lorsque vous commencez vraiment à utiliser cette fonctionnalité, 7 tty (le septième est la valeur par défaut) semblent très peu nombreux - et vous pouvez en ajouter plus.

Pour réduire le nombre: Comment puis-je réduire le nombre d'ATS?

Mateo
la source
8

Toutes les /dev/tty*entrées sont connues sous le nom de device file, conformément à la philosophie Unix. Ils servent de lien entre l'utilisateur et l'appareil réel, mais leur objectif peut différer légèrement.

Consoles virtuelles

Les fichiers de périphérique comme /dev/tty123peuvent être utilisés pour interagir avec le système via un shell standard. Ce sont des terminaux virtuels. Le système Ubuntu est configuré pour s'ouvrir par défaut TTY 1 à 6, mais on peut en ouvrir manuellement plus, par exemple:

sudo openvt -c 9 -s "bash"

Cela s'ouvrira en bashtant que root sur / dev / tty9 et vous basculera immédiatement vers ce TTY (si cela est fait sur le terminal local, mais si vous le faites via une sshsession distante , auquel cas vous devrez peut-être utiliser chvt 9, où 9 est /dev/tty9dans cet exemple). Pour faire de même sans sudoêtre non root, vous devrez changer la propriété du tty que vous souhaitez ouvrir. Par exemple,

$ sudo chown xieerqi:tty /dev/tty8 
$ openvt -c 8 -l 

Cela me connecterait avec mon shell par défaut sur tty8. Dans mes tests, cependant, il semble que cela ne fonctionne que via TTY, donc si vous le faites via l'émulateur de terminal, cela pourrait ne pas fonctionner (j'obtenais une Couldn't get a file descriptor referring to the console erreur et ne sudo openvt -c 8 -lfonctionnais pour moi qu'à partir de l'émulateur)

Du point de vue historique, avant que tous les multiplexeurs de terminaux sophistiqués ne soient créés, c'était une fonctionnalité utile - vous pouviez générer jusqu'à 62 commandes (peut-être des serveurs) sur ces consoles, et les laisser s'exécuter, tout en travaillant dans la 63e. De nos jours, ce n'est peut-être pas aussi nécessaire.

Il existe plusieurs fichiers de périphérique créés par défaut. Les actifs sont de 1 à 6, mais on peut modifier leur nombre en modifiant /etc/default/console-setup, en particulier cette partie:

# Setup these consoles.  Most people do not need to change this.
ACTIVE_CONSOLES="/dev/tty[1-6]"

appareils ttyS *

Ce sont des fichiers de périphérique utilisés pour les consoles série, alias UART (également connu sous le nom de RS-232). Dans le passé, de nombreux systèmes informatiques étaient équipés d'un port série. De nos jours, cela se trouve principalement sur les ordinateurs de type serveur. Plusieurs périphériques ttyS pourraient être utiles avec les concentrateurs RS-232, qui permettent de connecter plusieurs périphériques à gérer via USB ou Ethernet.

Pour les ingénieurs électriciens (dans lesquels je me spécialise au collège), nous utilisons le port série pour interagir avec les microcontrôleurs et les cartes de développement (Arduino, par exemple). Les ordinateurs à port unique, tels que Raspberry Pi, l'utilisent également. De nos jours, la connexion série est établie en utilisant un câble USB vers UART, et en ouvrant la console dans le terminal via screencomme ceci:

screen /dev/ttyUSB0 115200 # the number is baud rate or speed

Notez que Arduino et Raspberry créeront leur propre fichier de périphérique pour la connexion série, /dev/ttyUSB0ou/dev/ttyACM0

périphériques vcs *

Selon man vcsce sont des dispositifs de mémoire de console. En termes simples, si vous le faites, sudo cat /dev/vcs1vous verrez ce qui est à l'écran /dev/tty1, au moins jusqu'à la quantité maximale de lignes dans ce terminal.

Diminuer le nombre de consoles

Il n'est pas possible de diminuer le nombre de fichiers de périphériques réels sans modifier la tty.hbibliothèque et recompiler le noyau ( référence et autre ). Cependant, la suppression de ces périphériques peut être effectuée manuellement via cette commande:

sudo bash -c 'for num in $(seq 10 63 ) ; do MAKEDEV -v -d "tty$num" ; done'

Cependant, cela est quelque peu inutile - les fichiers du périphérique ne prennent pas d'espace et n'influencent pas les performances du système.

Sergiy Kolodyazhnyy
la source
Les commentaires ne sont pas pour une discussion approfondie; cette conversation a été déplacée vers le chat .
terdon
6

Le côté pratique est réel. Il peut y avoir plusieurs programmes s'exécutant simultanément dans le système Linux véritablement multi-utilisateurs, et vous pouvez vous connecter pour vérifier si chacun s'exécute dans son propre terminal virtuel. Lorsque vous vous connectez à chacun, vous pouvez vous connecter en tant qu'utilisateurs différents, si nécessaire. Maintenant, d'accord, de nombreuses personnes arrivent à Linux avec une perspective mono-utilisateur, mais depuis que Linux est né multi-utilisateurs, cette capacité n'a jamais été abandonnée.

K7AAY
la source