web-dev-qa-db-fra.com

Pourquoi autant de consoles virtuelles?

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

Je comprendrais s'il y en avait un au cas où l'interface graphique planterait, mais 6 autres 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 fige.

25
Hinklo

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

Plus long: c'est probablement une histoire, je suppose. Là où 6 consoles virtuelles configurées avec getty dans le premier Linux que j'ai démarré avec le support VC, j'ai vraiment oublié quand (c'était autour de 1990, je pense). Ensuite, lorsque vous avez démarré l’environnement graphique (à la main, avec startx ), il s’est ouvert sur le premier VC libre, qui s’est avéré être # 7. Et j’ai encore fait la plupart de mes travaux sur les VCs à l’époque: les éditeurs étaient beaucoup plus rapides et j’utilisais parfois plus de VC que le standard six, et mon ordinateur portable n’était pas exactement un monstre graphique ...

Par exemple, j’exécutais 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 courrier. serveur.

Je suppose que la raison d'utiliser encore six consoles virtuelles est de laisser le graphique VC sur # 7 pour tout le monde, afin que vous puissiez écrire sur les manuels "Ctrl-Alt-F7" et non "Ctrl-Alt-Fx", où x est le premier VC libre " .

En remarque, vous pouvez (je suppose - jamais essayé) réduire les VC. Il suffit de faire

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

arrêter VC # 6, en suivant le manuel de Upstart .

15
Rmano

Pourquoi pas plus? Exécutez topou htopdans un (donne la statistique des utilisations cpu/memory), sshà d’autres systèmes dans 2 ou 3, exécutez une tâche automatisée dans un autre, laissez-la libre au cas où, connectez-vous à plusieurs utilisateurs dans un petit nombre d’autres, exécutez cmatrixsur. un, lancez l'interface graphique 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 terminaux (le septième par défaut) semblent rares, et vous pouvez en ajouter davantage.

Pour réduire le nombre: Comment puis-je réduire le nombre de téléscripteurs?

9
Mateo

Toutes les entrées /dev/tty* sont appelées device file, conformément à la philosophie Unix. Ils servent de lien entre l'utilisateur et le périphérique réel, mais leur objectif peut être légèrement différent.

Consoles virtuelles

Des fichiers de périphérique tels que /dev/tty123 peuvent être utilisés pour interagir avec le système via Shell standard. Ce sont des terminaux virtuels. Le système Ubuntu est configuré pour ouvrir par défaut les TTY 1 à 6, mais on peut en ouvrir plus manuellement, par exemple:

Sudo openvt -c 9 -s "bash"

Cela ouvrira bashen tant que racine sur/dev/tty9 et vous basculera immédiatement vers ce TTY. Pour faire la même chose sans Sudoen tant que non-root, vous devrez changer la propriété du tty que vous voulez ouvrir. Par exemple,

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

Cela me connecter avec mon shell par défaut sur tty8. Dans mes tests, cependant, il semble que cela fonctionne uniquement avec un téléscripteur, donc si vous le faites via un émulateur de terminal, cela risque de ne pas fonctionner (je recevais une erreur Couldn't get a file descriptor referring to the console et seul Sudo openvt -c 8 -l fonctionnait pour moi depuis l'émulateur).

D'un point de vue historique, avant la création de tous les multiplexeurs de terminaux sophistiqués, il s'agissait d'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 en 63ème. De nos jours, cela n’est peut-être pas aussi nécessaire.

Il existe plusieurs fichiers de périphérique créés par défaut. Les actifs sont compris entre 1 et 6, mais on peut modifier leur nombre en éditant /etc/default/console-setup, plus précisément cette partie:

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

appareils ttyS *

Il s’agit de fichiers de périphérique utilisés pour les consoles série, aussi appelé UART (également appelé RS-232). Dans le passé, de nombreux systèmes informatiques venaient avec un port série. De nos jours, cela se trouve principalement sur des 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 (ce que je spécialise au collège), nous utilisons un 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/ttyUSB0 ou /dev/ttyACM0

vcs * devices

Selon man vcs, il s'agit de périphériques de mémoire de la console. En termes simples, si vous faites Sudo cat /dev/vcs1, vous verrez ce qui est à l’écran dans /dev/tty1, au moins jusqu’à concurrence du nombre maximum de lignes dans ce terminal.

Diminuer le nombre de consoles

Il est impossible de réduire le nombre de fichiers de périphérique réels sans modifier la bibliothèque tty.h et recompiler le noyau ( Référence et n autre ). Toutefois, 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'

Cela n'a toutefois aucun sens: les fichiers de périphérique ne prennent pas d'espace et n'influencent pas les performances du système.

8
Sergiy Kolodyazhnyy

Le côté pratique est réel. Plusieurs systèmes peuvent être exécutés simultanément dans le système Linux véritablement multi-utilisateurs, et vous pouvez vérifier chacun d'eux si chacun d'entre eux s'exécute dans son propre terminal virtuel. Lorsque vous vous connectez à chacun d'entre eux, vous pouvez vous connecter en tant qu'utilisateur différent, si nécessaire. Maintenant, d'accord, de nombreuses personnes arrivent à Linux avec une perspective mono-utilisateur, mais depuis que Linux est né multi-utilisateur, cette fonctionnalité n'a jamais été ignorée.

6
K7AAY