Der größte Unterschied besteht darin, dass Sie von anderen Terminals (ob Terminalemulatoren, VTs, SSH-Sessions oder sogar echten seriellen Terminals) wieder auf Ihrem Bildschirm oder bei den tmux-Sitzungen arbeiten können, dies jedoch nicht mit Registerkarten in einem Terminalemulator. Dies mag einfach klingen, bringt jedoch einen der größten Vorteile bei der Verwendung von Screen oder Tmux mit sich, insbesondere wenn Sie mit einem Remote-System zu tun haben: Es kann über die Dauer Ihrer aktuellen Anmeldesitzung hinausbleiben, was für ein System von großem Nutzen ist Anzahl der Gründe.
Es gibt jedoch einige andere Unterschiede:
- Wenn Sie screen oder tmux verwenden, haben Sie immer genau einen zusätzlichen Prozess pro Bildschirm oder tmux-Sitzung (jedoch nicht pro Fenster / Registerkarte). Abhängig vom verwendeten Terminal-Emulator haben Sie möglicherweise keine zusätzlichen Prozesse oder Sie haben mehr als einen zusätzlichen.
- Die Verwendung von screen oder tmux bietet Ihnen einige zusätzliche Funktionen, die die meisten Terminalemulatoren nicht bieten, wie z. B. geteilte Fenster und die Möglichkeit, einen BREAK in der Anwendung auf der Registerkarte zu senden.
- Die zum Wechseln von Fenstern / Registerkarten verwendeten Hotkeys unterscheiden sich (obwohl beide im Allgemeinen ziemlich einfach umkonfiguriert werden können).
- Sie können screen und tmux von jeder Terminalsitzung aus verwenden, aber nur Registerkarten, wenn Sie einen Terminalemulator verwenden.
- Bildschirm (und möglicherweise tmux) bietet eine Klemmenverriegelungsfunktion. Im Wesentlichen entspricht dies der Bildschirmsperre, die auf den meisten Desktops angezeigt wird.
In beiden Fällen hat jedes Fenster / jede Registerkarte letztlich ein zugehöriges Pseudoterminal (normalerweise als PTY abgekürzt). Der wirkliche Unterschied hier ist, was wirklich kontrolliert, zu welchem Pseudoterminal Ihre Eingabe geht und welche Ausgabe angezeigt wird. Die genaue Vorgehensweise, wie ein Pseudoterminal arbeitet, ist etwas kompliziert, aber an mehreren Stellen im Internet gut dokumentiert. Die Grundidee besteht darin, dass ein Prozess die Möglichkeit bietet, sich als Hardware-Terminal auszugeben, sodass er einen anderen Prozess ausführen kann, der erwartet, dass er mit einem Terminal kommuniziert.
Keine der beiden Optionen ist in Bezug auf die Systemressourcen wirklich viel effizienter, und die effizientere Lösung in Bezug auf die UX hängt weitgehend vom Benutzer selbst ab (z. B. ist der Bildschirm für mich effizienter, da ich alle daran gewöhnt bin Standard-Tastenzuordnungen).