Warum bietet UNIX/Linux mehrere Terminals?

Warum bietet UNIX/Linux mehrere Terminals?

In den 1970er Jahren hatten wir Hardware-Terminals mit CUI-Schnittstelle (Character User Interface) für die Eingabe/Ausgabe.

Jetzt haben wir Terminalemulatoren ( Ctrl+ Alt+ Fn) in der Unix/Linux-Welt.

Im Ubuntu-Betriebssystem sehe ich sieben Terminalemulatoren, wobei die GUI den siebten Terminalemulator einnimmt ( Ctrl+ Alt+ F7).

Dies ist beispielsweise mein erster Terminalemulator ( Ctrl+ Alt+ F1)

$ tty
/dev/tty0

Warum bietet Unix/Linux mehrere Terminalemulatoren?

Antwort1

Warum bietet UNIX/Linux mehrere Terminalemulatoren [auf der Konsole]?

Aus dem gleichen Grund unterstützt Ihr GUI-Terminalemulator wahrscheinlich Tabs (z. B. GNOME Terminal), und wenn nicht (z. B.rxvt), dann führt aus demselben Grund das Starten einer zweiten Instanz der GUI-Terminal-App nicht einfach dazu, dass die erste in den Vordergrund gezogen und beendet wird, sodass Sie gezwungen sind, die erste Instanz zu verwenden.

Ich verwende bei meiner Arbeit routinemäßig mindestens drei Terminalfenster, oft aber auch mehr:

  1. Texteditor für die Serverseite des Systems, an dem ich arbeite

  2. Texteditor für die Clientseite desselben Systems

  3. Befehlsfenster zum Ausführen des Servers

Ich brauche selten ein viertes Terminal zum Ausführen des Client-Programms, da es normalerweise woanders ausgeführt wird (Web-App, native GUI-App, mobile App usw.). Wenn ich jedoch einen CLI-Client für meine Server-App entwickeln würde, hätte ich auch dafür ein separates Terminal geöffnet.

Früher, bevor sudoes populär wurde, hatte ich rootständig ein Terminal geöffnet.

Ich verwende Unix/Linux-Boxen heutzutage nur noch selten interaktiv an der Konsole ohne GUI, aber ich führe sie oft ohne Benutzeroberfläche aus und greife über SSH darauf zu. Mein bevorzugter SSH-Terminalclient unterstützt Tabs, die wie oben konfiguriert sind.

Eines meiner aktuellen Hobbyprojektehat mich mit einem wirklich altenGlasterminalgelegentlich, was bedeutet, dass ich nicht mehr mehrere Terminalfenster habe, also lerne ich endlich ein bisschen überGNUscreen, ein Programm, das ich bisher nie viel gebraucht habe, da ich entweder mehrere Konsolenterminals oder mehrere GUI-Terminals hatte. Und was macht es screen? Unter anderem kann manKonfigurieren Sie es so, dass Sie mehrere virtuelle Terminals erhaltenauf einem einzigen Bildschirm, genau wie Linux es mit Ctrl- Alt- macht .Fx

Antwort2

Diese Funktion wird von fast allen, wenn nicht allen Unix- und Unix-ähnlichen Versionen bereitgestellt, die auf x86-Hardware laufen. Interessanterweise wurden virtuelle Konsolen erstmals in den frühen 80er Jahren von Microsoft Xenix in einem Unix eingeführt und waren auch im parallelen CP/M verfügbar.

Diese Funktion wurde später in AT&T SVR4 Unix und Solaris integriert und von BSDs und Linux übernommen.

Warum bietet UNIX/Linux mehrere Terminalemulatoren?

Als sie erstmals eingeführt wurden, gab es für die Maschinen, auf denen diese Unix-Implementierungen liefen, keine grafische Umgebung. Während ein physisches Terminal, das über RS232-Leitungen mit einem zentralen Unix-Server verbunden war, der Standard war, war der Anschluss mehrerer Terminals an einen Standard-PC mit Xenix übertrieben, wenn das Ziel nur darin bestand, dass ein einzelner Benutzer mehrere interaktive Programme gleichzeitig ausführen konnte. Virtuelle Terminals boten eine elegante und bequeme Lösung für dieses Problem.

Um denselben Bedarf zu decken, stellten später andere Unix-Implementierungen dieselbe Funktion bereit.

Als sich grafische Umgebungen, insbesondere X11, verbreiteten, stellte die Möglichkeit, mehrere Terminalemulatoren gleichzeitig auf demselben Bildschirm anzuzeigen, eine erhebliche Verbesserung dar. Die Funktion der virtuellen Konsole wurde jedoch im Allgemeinen beibehalten, schon allein deshalb, weil es immer noch praktisch war, zu einer Konsole wechseln zu können, wenn die grafische Umgebung eingefroren oder aus irgendeinem Grund nicht funktionierte.

Beachten Sie, dass Dienstprogramme wie screenund tmuxviel später als virtuelle Terminals kamen, um die gleiche Funktionalität zu verallgemeinern. Ihr Vorteil ist, dass sie nicht nur auf der lokalen physischen Konsole verwendet werden können, sondern auch in jeder beliebigen Sitzung, egal ob lokal oder remote (z. B. telnet, ssh). Bei Verwendung auf der physischen Konsole sind virtuelle Konsolen immer noch nützlich, da sie in einigen Situationen funktionieren, in denen screen/ tmuxnicht helfen kann, z. B. wenn X11 eingefroren ist oder wenn ein Fenster den Fokus eingenommen hat und ihn nicht freigibt.

zlogin -C zoneContainerbasierte Virtualisierung wie Solaris-Zonen oder Linux LXC bieten auch eine Methode, um über bzw. eine Verbindung mit der Containerkonsole herzustellen lxc-console -t 0 -n container.

Antwort3

Ich denke, ein guter Grund für zusätzliche Terminalemulatoren ist, dass Sie, wenn Sie etwas an Ihrer grafischen Oberfläche falsch machen und diese dadurch unbrauchbar wird, schnell zu einem Terminalemulator wechseln und alle Probleme beheben können, die mit der grafischen Oberfläche auftreten. Das passiert tatsächlich ziemlich oft, wenn Sie Änderungen an Ihrem Fenstermanager oder anderen Funktionen der grafischen Oberfläche vornehmen. Ich denke, es wäre auch nützlich, ein paar zusätzliche Terminals zu haben, aber sechs zusätzlich zur Haupt-Grafikoberfläche erscheinen mir etwas übertrieben.

Korrigieren Sie mich, wenn ich falsch liege, aber ist es nicht möglich, mehrere Befehle als unterschiedliche Benutzer von einem einzigen Terminalemulator aus auszuführen?

Antwort4

Das Erste, wonach Sie gefragt haben, ist eine Funktion eines Kernels namens Linux. Nicht von Unix im Allgemeinen und auch nicht von GNU.

Den Grund dafür müssten Sie die Autoren fragen. Ich vermute jedoch, dass es einem Administrator eines nicht vernetzten Geräts (hier schließe ich RS232 als Netzwerktyp ein) ermöglicht, sich anzumelden und einige Verwaltungsaufgaben zu erledigen, ohne einen anderen Benutzer abmelden zu müssen.

verwandte Informationen