GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wechselumgebungen auf dem systemweiten Terminal genannt?

Ich versuche derzeit, eine autonome Drohne mit dem Robot Operating System (ROS) zu bauen. Dazu habe ich Raspbian Lite installiert (Jessie ) auf einem Raspberry Pi 3 und verwende derzeit ROS Kinetic darauf. Weil es Raspbian Lite ist , gab es keine Fenstermanager oder Desktop-Umgebungen, die mit der Installation mitgeliefert wurden. Ich habe mich für Openbox Window Manager entschieden und der Einfachheit halber ein Terminal darauf installiert. Ich kann einfach sudo startx aufrufen , und der Fenstermanager öffnet sich, auf den Sie mit Strg zugreifen können + alt + F2 `.

Jetzt liegt meine Frage in der Tatsache, dass ich den Prozess des Erstellens neuer Sitzungen innerhalb des systemweiten Terminals nicht verstehe. Wird es zunächst als systemweites Terminal bezeichnet? Was sind das für Sitzungen, die ich mit Ctrl aufrufe? + Shift + F ? Einige von ihnen beherbergen Display-Manager und einige von ihnen beherbergen Terminals , während ich mir vorstelle, dass eine ganze Desktop-Umgebung kann auch untergebracht werden. Gibt es eine Manpage, die ich einsehen kann?

Akzeptierte Antwort:

Sie sind virtuelle Terminalgeräte des Kernels , die von einem Terminal-Emulator auf den physischen Framebuffer und menschliche Eingabegeräte gemultiplext werden Programm, das in den Kernel selbst eingebaut ist. Für Anwendungsprogramme, die auf dem Kernel laufen, sehen sie aus wie alle anderen Endgeräte, z. B. ein serielles Endgerät . (Sie haben eine Leitungsdisziplin, aber keine Modemkontrolle.)

Das System implementiert Terminal-Login durch Ausführen eines getty Programm (oder gleichwertig) und ein login Programm, das Benutzeranmeldeinformationen akzeptiert und Anmeldesitzungen aufruft .

Der X-Server Das Programm muss auch den physischen Framebuffer und menschliche Eingabegeräte verwenden. Es muss aushandeln, sie mit dem Terminal-Emulator des Kernels zu teilen. Dies geschieht, indem es ein virtuelles Terminal zuweist und den Kernel anweist, dieses vom Terminal-Emulator des Kernels zu trennen.

Daher scheint es, dass der X-Server auf einem bestimmten Terminal „läuft“. Wenn der Kernel-Terminal-Emulator den Hotkey-Akkord zum Umschalten auf das zugewiesene virtuelle Terminal sieht, übergibt er die Kontrolle über den Framebuffer und die menschlichen Eingabegeräte an den X-Server. Wenn der X-Server den Hotkey-Akkord zum Wechseln zu einem anderen virtuellen Terminal sieht, gibt der X-Server die Kontrolle zurück.

Diese Hotkey-Akkorde sind nicht unbedingt symmetrisch. Auf einem meiner Systeme ist der vom Kernel-Terminalemulationsprogramm implementierte Hotkey-Akkord zum Umschalten auf das virtuelle Terminal #2 Alt +F2 wohingegen der Hotkey-Akkord, der vom X-Server für die gleiche Aktion implementiert wird, Ctrl ist +Alt +F2 .

Wenn es um die grafische Anmeldung geht , ein Display-Manager behandelt das Starten von X-Servern mit greeter Programme. Sie starten einfach direkt einen X-Server und verwenden natürlich keinen Display-Manager. Sobald die Anmeldeinformationen des Benutzers authentifiziert wurden, ein Desktop-Manager zeigt eine Desktop-Umgebung an , die eine Reihe von X-Clients umfasst Anwendungen unterschiedlicher Komplexität. Für komplexe Desktop-Umgebungen gibt es eine ganze Reihe von Serverprogrammen, die über einen Desktop-Bus miteinander verbunden sind . (Auf einem meiner Systeme erfordert der sogenannte „kleine und leichte“ GNOME-Editor einen D-BUS-Broker und neun weitere Serverprogramme ausgeführt werden.)

Siehe auch:Journalctl:Wie kann verhindert werden, dass Text im Terminal abgeschnitten wird?

Einige dieser X-Client-Programme können andere sein Terminalemulatoren, Userspace-Emulatoren wie LXTerminal, Unicode RXVT, GNOME Terminal, Terminate, roxterm, evilvte, xterm und so weiter. Diese verwenden nicht direkt physische Framebuffer und menschliche Eingabegeräte und verwenden Pseudo-Terminal Geräte.

Weiterführende Literatur

  • 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. Kopieren Sie Dateien im Linux-Terminal

  2. Benennen Sie eine Datei im Linux-Terminal um

  3. Verschieben Sie Dateien im Linux-Terminal

  4. Ausgabe des „letzten“ Befehls?

  5. Überprüfen Sie die Systemlast unter Linux

Das Linux-Terminal ist kein One-Trick-Pony

Entspannen Sie am Feuer an Ihrem Linux-Terminal

Einführung in das Linux-Dateisystem

MapSCII – Die Weltkarte in Ihrem Terminal

Ihr erstes Java-Programm im Ubuntu-Terminal

So verwenden Sie den fd-Befehl auf einem Linux-System