Pourquoi les systèmes Linux ont-ils plusieurs consoles virtuelles?

Nous pouvons passer à une console de texte en appuyant sur Ctrl + Alt + F <1-7> sur le clavier.

Quelles sont les utilisations de ces consoles, et pourquoi y at-il plusieurs consoles?

Pourquoi les consoles multiples? Parce que – assez curieusement – Linux a commencé comme émulateur de terminal.

http://en.wikipedia.org/wiki/History_of_Linux#The_creation_of_Linux

En ce qui concerne "pourquoi 7"? Cela n'est pas inhérent au système d'exploitation; Vous pouvez effectivement avoir n'importe quel nombre de consoles virtuelles, au motif. Il est configurable dans /etc/inittab sur la plupart des distributions.

Si vous exécutez un serveur (sans GUI) au lieu d'un système d'exploitation de bureau (avec GUI), vous pouvez avoir plusieurs terminaux ouverts en même temps sans utiliser un logiciel comme l'écran pour gérer plusieurs terminaux.

Sur un système GUI, ce n'est pas très utile, mais voici quelques situations où je l'utilise:

Vous pouvez utiliser l'une des consoles pour vous connecter au système sans charger l'interface graphique, par exemple, pour mettre à jour ou modifier l'interface graphique.

Si vous n'avez besoin que de faire quelque chose rapidement (sans attendre le chargement complet de GUI), comme le démarrage de mises à jour sur quelques machines, par exemple. Il est plus rapide d'ouvrir l'une des consoles et de l'utiliser que de charger le gui et d'ouvrir un terminal et de vous déconnecter après avoir terminé.

Je l'ai parfois utilisé pour me connecter à une machine (localement sans utiliser ssh) alors qu'un autre utilisateur a déjà été connecté avec l'interface graphique (sans avoir besoin de changer d'utilisateur ou d'ouvrir un terminal sur son écran)

Cela permet à l'utilisateur d'effectuer une tâche multitâche directement directement à partir d'un clavier / moniteur connecté au système. Neuf fois sur dix, je suis télécommandé dans un système via ssh et je peux ouvrir autant de "consoles" que je le veux, mais si vous ne travaillez pas en réseau, cela vous aidera. Un bon exemple: l'installateur Debian utilise plusieurs consoles virtuelles: l'un possède le programme d'installation basé sur ncurses , deux autres ont un shell juste au cas où quelque chose ne va pas ou vous voulez exécuter des commandes shell pour regarder le matériel, etc., et un quatrième est Utilisé pour afficher l'état et la sortie d'erreur des processus d'installation.

Les systèmes GUI vous permettent de basculer entre les programmes en cours d'exécution et d'interagir avec eux. Ainsi, l'utilisateur peut faire des choses comme démarrer un travail, placer sa fenêtre en arrière-plan, et exécuter des tâches supplémentaires, tout en gardant régulièrement un contrôle sur ce qui fonctionne également.

Vous pouvez vous connecter à une seule console, exécuter une commande longue durée, puis basculer / vous connecter à une autre console et faire d'autres choses. Vous pouvez revenir à la première console pour surveiller la progression. Alternativement, vous pouvez vous connecter en tant qu'utilisateurs différents si vous le souhaitez, tester comment les choses fonctionnent dans des comptes différents ou simplement ne pas utiliser un compte racine à tout moment.

Il est également possible d'utiliser une des consoles comme un simple périphérique de sortie, de sorte que vous pouvez afficher des journaux ou des rapports et ne pas encombrer votre console actuelle. /etc/inittab contrôle les tty ou les consoles avec getty cours d'exécution, ce qui fournit l'invite de connexion.

Parce que c'est ce que l'on faisait si l'on était un système d'exploitation multi-utilisateur sur un PC compatible.

Dans le monde des minicomputers, on avait plusieurs terminaux réels, habituellement attachés par un concentrateur terminal ou certains, et plusieurs utilisateurs pouvaient chacun avoir un terminal. Dans le monde de l'IBM PC, cependant, il n'y avait généralement pas de terminaux réels. C'était, après tout, un ordinateur personnel .

Ainsi, les systèmes d'exploitation multi-utilisateurs ont fourni des consoles virtuelles qui ont été affichées sur l'adaptateur d'affichage du PC, et que l'on a commuté entre l'utilisation de combinaisons hot-key. Parallèlement, CP / M-86, en 1982, avait quatre consoles virtuelles, dont on a commuté entre les combinaisons de touches Ctrl + 1 , Ctrl + 2 , Ctrl + 3 et Ctrl + 4 .

SCO Xenix au début des années 1980 avait ce qu'on appelait Multiscreen . En tant qu'utilisateur Linux, vous le trouverez très familier. Il y avait à l'origine 10 terminaux virtuels, dont les fichiers de périphérique de caractère ont été nommés /dev/tty01 à /dev/tty10 . On a commuté entre eux en utilisant Alt et une touche de fonction – Alt + F4 pour passer à la console virtuelle numéro 4, par exemple. On pourrait également les parcourir en appuyant sur Control + PrtSc . Avec la sortie de Xenix 5, le nombre de consoles virtuelles a été augmenté de 10 à 12, afin de refléter l'existence du clavier Enhanced PC / AT avec ses touches de fonction F11 et F12 supplémentaires.

Loin du monde de MP / M et Unix, les systèmes d'exploitation compatibles VMS et DOS de PC compatibles avaient des idées similaires. Cela était vrai même pour les systèmes d'exploitation non multi-utilisateurs. OS / 2 version 1.0 en 1987, par exemple, avait un gestionnaire de session à partir duquel on pouvait démarrer jusqu'à 15 sessions , séparer les combinaisons virtualisées de sortie d'affichage et l'entrée clavier / souris. Un cycle entre les sessions avec Alt + Esc et retourné au Gestionnaire de session (à partir duquel on pourrait lancer de nouvelles sessions ou passer aux sessions existantes à partir d'un menu) avec Control + Echap .

MS-DOS 5 avait dosshell qui a changé l'écran entre plusieurs programmes (même si sans multitâche comme OS / 2 avait) et avait le familier Alt + Tab et Alt + Esc . DR-DOS 6 avait taskmax où l'on a utilisé Control + Esc pour accéder au Task Manager et Ctrl + 1 , Ctrl + 2 , etc., pour passer directement aux écrans des tâches individuelles, qui pourraient être échangées vers et à partir d'un disque ou d'un disque étendu / Mémoire étendue (sous réserve de certaines contraintes).

Au moment où Linux est venu dans les années 1990, l'idée que ce que l'on voyait sur le mode (mode texte) et tapé au clavier était l'entrée / sortie virtualisée d'une seule de plusieurs sessions / tâches / terminaux / consoles, On pourrait changer de clavier avec les touches chaudes, était à peu près intégré dans la pensée des gens. Il y a eu quelque chose dans le monde compatible PC depuis près de dix ans.

En ce qui concerne leur utilisation, je vous donne les mots de Robin Raskin et Kaare Christian:

La fonction Multiscreen de Xenix est une aubaine pour ceux qui aiment faire plusieurs choses à la fois. Une seule frappe commute l'écran de la console et le clavier d'une session de connexion à une autre. C'est comme si vous disposiez de plusieurs terminaux sur votre bureau, mais avec un seul écran physique et un clavier. Les applications pour cette fonctionnalité deviennent rapidement évidentes. Par exemple, lors de la préparation d'un tableau de figures, j'ai utilisé l'éditeur sur un écran et un programme de calcul de bureau sur un autre, et j'ai prévisualisé la sortie de l'imprimante sur un troisième. Passer de l'un à l'autre était trivial: Alt-F1 a tiré l'écran de l'éditeur, Alt-F2 a apporté la calculatrice, et Alt-F3 m'a montré l'aperçu de l'imprimante. Chaque commutateur d'écran prend seulement une fraction de seconde.

– Robin Raskin et Kaare Christian (août 1986). "Xenix System V: une réponse multi-utilisateurs pour l'AT?". PC Magazine 5 (14). ISSN 0888-8507. Ziff Davis, Inc .. pp. 253-266

De nos jours, bien sûr, on peut mettre en marche une interface graphique avec plusieurs émulseurs de terminal et basculer entre eux sans commuter l'intégralité du tampon d'affichage, et l'adaptateur d'affichage obtient à peine un coup de foudre dans son mode texte. (Même alors, on pourrait le faire sur les postes de travail Unix, qui avaient des tampons de trames graphiques et le système X Window). Donc, avoir plusieurs consoles virtuelles semble moins d'une fonctionnalité. Mais pour ceux qui sont venus du monde de l'informatique multi-utilisateur sur les mini-ordinateurs avec seulement des terminaux réels, où le regroupement d'un groupe de terminaux sur son bureau était un élément de l'utilisateur, surtout si l'on n'avait pas tiré l' screen de la comp.sources.unix (l' autre chose à faire), c'était certainement à l'époque.

Autres lectures

  • SCO Xenix System V Système d'exploitation Run-Time Environment . The Santa Cruz Operation Inc .. 1987.
  • Guide d'utilisation du CP / M-86 simultané . Recherche numérique. 1982.
  • Judd Robbins (1988). Essential OS / 2 . Paraninfo. ISBN 9780895884787. pp. 10,92

Si vous avez un travail de longue durée, vous voudrez peut-être consulter le fichier journal, le fichier d'erreur, la charge du système, l'espace de travail gratuit, l'espace disque libre, le nombre d'utilisateurs sur le système, etc.

La question devient: non, pourquoi 7 – mais pourquoi pas plus …

Les systèmes traditionnels Unix ne permettent qu'un seul utilisateur connecté sur un terminal (distant). Mais les utilisateurs ont rapidement cherché des façons de «faire plusieurs choses à la fois», c'est-à-dire pouvoir exécuter plusieurs sessions. D'accord, vous pourriez prendre en charge le terminal neigboring aussi … mais ce n'est pas très gentil. Donc, des programmes comme l' screen sont devenus.

Peu de temps après la création de Linux, la possibilité d'avoir plusieurs sessions disponibles a été ajoutée. Pas encore d' screen et un PC ne possède toujours qu'un seul ensemble de clavier / écran / souris …

À la fin, si cela peut être fait avec (relativement) peu d'effort, pourquoi pas? C'est très pratique (OK, aujourd'hui, je suis heureux d'avoir une douzaine de terminaux ouverts sous X, mais dans l'ancien temps il n'y avait pas de X).