GNU/Linux >> Tutoriels Linux >  >> Linux

Changer d'environnement sur le terminal à l'échelle du système appelé ?

J'essaie actuellement de fabriquer un drone autonome en utilisant le Robot Operating System (ROS). Pour ce faire, j'ai installé Raspbian Lite (Jessie ) sur un Raspberry Pi 3 et j'utilise actuellement ROS Kinetic dessus. Parce que c'est Raspbian Lite , aucun gestionnaire de fenêtres ou environnement de bureau n'était fourni avec l'installation. J'ai décidé d'utiliser Openbox Window Manager et installé un terminal dessus pour plus de commodité. Je peux juste appeler sudo startx , et le gestionnaire de fenêtres s'ouvre, accessible par Ctrl + alt + F2 `.

Maintenant, ma question réside dans le fait que je ne comprends pas le processus de création de nouvelles sessions dans le terminal à l'échelle du système. S'appelle-t-il le terminal à l'échelle du système pour commencer? Quelles sont ces sessions, que j'invoque avec l'utilisation de Ctrl + Maj + F ? Certains d'entre eux accueillent des gestionnaires d'affichage et certains d'entre eux accueillent des terminaux , alors que j'imagine que tout un environnement de bureau peuvent également être accueillis. Existe-t-il une page de manuel que je peux consulter ?

Réponse acceptée :

Ce sont des terminaux virtuels du noyau , multiplexé sur le framebuffer physique et les périphériques d'entrée humaine par un émulateur de terminal programme intégré au noyau lui-même. Pour les programmes d'application s'exécutant au-dessus du noyau, ils ressemblent à n'importe quel autre périphérique terminal, tel qu'un périphérique terminal série . (Ils ont une discipline de ligne, mais pas de contrôle du modem.)

Le système implémente la connexion au terminal à force de lancer un getty programme (ou équivalent) et un login programme qui accepte les informations d'identification de l'utilisateur et appelle les sessions de connexion .

Le serveur X Le programme doit également utiliser le framebuffer physique et les périphériques d'entrée humaine. Il doit négocier leur partage avec l'émulateur de terminal du noyau. Pour ce faire, il alloue un terminal virtuel et demande au noyau de le déconnecter de l'émulateur de terminal du noyau.

D'où la raison pour laquelle il semble que le serveur X "fonctionne" sur un terminal particulier. Lorsque l'émulateur de terminal du noyau voit le raccourci clavier pour basculer vers le terminal virtuel alloué, il cède le contrôle du framebuffer et des périphériques d'entrée humaine au serveur X. Lorsque le serveur X voit le raccourci clavier pour basculer vers un autre terminal virtuel, le serveur X cède le contrôle.

Ces accords de raccourci ne sont pas nécessairement symétriques. Sur l'un de mes systèmes, le raccourci clavier implémenté par le programme d'émulation de terminal du noyau pour passer au terminal virtuel #2 est Alt +F2 alors que l'accord de raccourci implémenté par le serveur X pour la même action est Ctrl +Alt +F2 .

En ce qui concerne la connexion graphique , un gestionnaire d'affichage gère le démarrage des serveurs X avec greeter programmes. Vous démarrez juste un serveur X directement et n'utilisez pas de gestionnaire d'affichage, bien sûr. Une fois les informations d'identification de l'utilisateur authentifiées, un gestionnaire de bureau affiche un environnement de bureau , qui comprend un ensemble de client X applications plus ou moins complexes. Pour les environnements de bureau complexes, il existe tout un tas de programmes serveur interconnectés via un bus de bureau . (Sur l'un de mes systèmes, le soi-disant éditeur GNOME "petit et léger" nécessite un courtier D-BUS et neuf autres programmes serveur à exécuter.)

Connexe :Journalctl :comment empêcher le texte de tronquer dans le terminal ?

Certains de ces programmes clients X peuvent être autres émulateurs de terminaux, ceux de l'espace utilisateur, tels que LXTerminal, Unicode RXVT, GNOME Terminal, Terminate, roxterm, evilvte, xterm, etc. Ceux-ci n'utilisent pas directement le framebuffer physique et les périphériques d'entrée humaine, et ils utilisent des pseudo-terminaux appareils.

Autres lectures

  • https://superuser.com/a/723442/38062
  • https://unix.stackexchange.com/a/316279/5132
  • https://unix.stackexchange.com/a/194218/5132
  • https://unix.stackexchange.com/a/178807/5132
  • https://stackoverflow.com/a/39302351/340790

Linux
  1. Écoutez la radio sur le terminal Linux

  2. Comment changer l'identité d'un système Linux

  3. Quel est le niveau d'exécution actuel du système Linux ?

  4. Sortie de la "dernière" commande ?

  5. Vérifiez la charge du système sous Linux

Le terminal Linux n'est pas un poney à un tour

Détendez-vous au coin du feu sur votre terminal Linux

Introduction au système de fichiers Linux

MapSCII – La carte du monde dans votre terminal

Votre premier programme Java dans le terminal Ubuntu

Comment utiliser la commande fd sur le système Linux