Warum so viele virtuelle Konsolen?

26

Was ist der Grund für so viele virtuelle Konsolen?

Ich würde verstehen, wenn es eine für den Fall gab, dass die GUI abstürzt, aber 6 weitere neben der Standardeinstellung? Wofür sind sie? Ich sehe sogar keine Verwendung für einen von ihnen, außer wenn die GUI einfriert.

Hinklo
quelle
Ich stimme der Antwort von Mateo unten zu. Warum nicht MEHR? Ich habe alle 6 geöffnet und wünsche mir mehr (und die Benutzeroberfläche bleibt oft auf dem Anmeldebildschirm ausgeschaltet).
Haziz

Antworten:

16

Kurze Antwort : warum nicht? (implizites Lächeln, bitte)

Langer gesagt : Ich nehme an, es ist größtenteils eine Geschichte. Es gab 6 virtuelle Konsolen, mit denen gettyich in dem ersten Linux, das ich mit VC-Unterstützung gestartet habe, wirklich vergessen habe, wann (es war ungefähr 1990, glaube ich). Dann, als Sie die grafische Umgebung starteten (von Hand, mitstartx ), öffnete sie sich auf der ersten freien VC, die zufällig # 7 war. Und ich habe damals noch den größten Teil meiner Arbeit an VCs gemacht: Die Editoren waren viel schneller und manchmal habe ich mehr VCs verwendet als die Standard-Sechs, und mein Laptop war nicht gerade ein Grafik-Monster ...

Ich habe zum Beispiel drei Editoren ausgeführt (ein Programm, seine Eingabedaten, eine TeX-Datei, die es beschreibt), einen VC zum Kompilieren, einen anderen zum Lesen eines Handbuchs und einen anderen, der über Telnet mit meinem Mailserver verbunden war.

Ich vermute, dass der Grund für die Verwendung von immer noch sechs virtuellen Konsolen darin besteht, die Grafik-VC für jeden auf Platz 7 zu lassen, damit Sie auf Handbüchern " Ctrl-Alt-F7" schreiben können und nicht " Ctrl-Alt-Fxwo xdie erste freie VC ist".

Als Randnotiz, Sie können (ich nehme an --- nie versucht) die VCs verkleinern. Einfach machen

sudo bash -c "echo 'manual' >> /etc/init/tty6.override"

um VC # 6 zu stoppen, folgen Sie dem Upstart-Handbuch .

Rmano
quelle
Es ist möglich, die Anzahl der aktiven Tty zu reduzieren, aber nicht die Gerätedateien selbst (es sei denn, die Leute möchten die Kernel neu kompilieren). Siehe meine Antwort unten
Sergiy Kolodyazhnyy
9

Warum nicht mehr Führen Sie topoder htopin einem (gibt CPU / Speicher-Nutzungsstatik), sshauf anderen Systemen in 2 oder 3, führen Sie eine automatisierte Aufgabe in einem anderen aus, halten Sie eine für alle Fälle frei, melden Sie sich bei mehreren Benutzern in ein paar weiteren an, führen Sie cmatrixeine aus, starten Sie die GUI in einem anderen mit -

startx -- :1

(Einige Grafiken haben Fehler damit)

http://mostlylinux.wordpress.com/troubleshooter/ttysessions/

Wenn Sie wirklich anfangen, diese Funktion zu nutzen, scheinen 7 tty (die siebte ist die Standardeinstellung) viel zu wenig zu sein - und Sie können noch mehr hinzufügen.

So reduzieren Sie die Anzahl: Wie kann ich die Anzahl der TTYs reduzieren?

Mateo
quelle
8

Alle /dev/tty*Einträge sind device filegemäß der Unix-Philosophie als etwas bekannt . Sie dienen als Verbindung zwischen Benutzer und tatsächlichem Gerät, können sich jedoch in ihrem Zweck geringfügig unterscheiden.

Virtuelle Konsolen

/dev/tty123Gerätedateien wie können verwendet werden, um über eine reguläre Shell mit dem System zu interagieren. Dies sind virtuelle Terminals. Das Ubuntu-System ist so konfiguriert, dass standardmäßig TTY 1 bis 6 geöffnet wird. Es können jedoch auch mehrere manuell geöffnet werden. Beispiel:

sudo openvt -c 9 -s "bash"

Das öffnet sich bashals root auf / dev / tty9 und schaltet Sie sofort auf dieses TTY um (wenn dies auf dem lokalen Terminal erfolgt, aber wenn Sie dies über eine Fernsitzung tun ssh, in diesem Fall müssen Sie möglicherweise chvt 99 verwenden , /dev/tty9in diesem Beispiel 9 ). Um dasselbe ohne sudoNicht-Root zu tun , müssen Sie den Eigentümer von tty ändern, das Sie öffnen möchten. Beispielsweise,

$ sudo chown xieerqi:tty /dev/tty8 
$ openvt -c 8 -l 

Das würde mich mit meiner Standard-Shell auf tty8 anmelden. In meinen Tests scheint es jedoch so zu sein, dass dies nur über TTY funktioniert. Wenn Sie dies also über den Terminal-Emulator tun, funktioniert dies möglicherweise nicht (ich habe einen Couldn't get a file descriptor referring to the console Fehler erhalten und habe nur mit dem sudo openvt -c 8 -lEmulator gearbeitet).

Aus historischer Sicht war dies eine nützliche Funktion, bevor alle ausgefallenen Terminal-Multiplexer erstellt wurden - Sie konnten bis zu 62 Befehle (möglicherweise Server) auf diesen Konsolen erzeugen und sie ausführen lassen, während Sie in der 63. Version arbeiteten. Heutzutage ist es vielleicht nicht mehr so ​​notwendig.

Standardmäßig werden mehrere Gerätedateien erstellt. Aktive sind 1 bis 6, aber man kann ihre Nummer durch Bearbeiten ändern/etc/default/console-setup , insbesondere diesen Teil:

# Setup these consoles.  Most people do not need to change this.
ACTIVE_CONSOLES="/dev/tty[1-6]"

ttyS * Geräte

Hierbei handelt es sich um Gerätedateien, die für serielle Konsolen (auch als RS-232 bezeichnet) verwendet werden. In der Vergangenheit hatten viele Computersysteme eine serielle Schnittstelle. Heutzutage ist dies meistens auf Servertypen von Computern zu finden. Mit RS-232-Hubs können mehrere ttyS-Geräte nützlich sein, mit denen die Verbindung mehrerer Geräte über USB oder Ethernet verwaltet werden kann.

Für Elektrotechniker (was ich am College studiere) verwenden wir die serielle Schnittstelle, um mit Mikrocontrollern und Entwicklungsplatinen (zum Beispiel Arduino) zu interagieren. Single-Port-Computer wie Raspberry Pi verwenden es ebenfalls. Heutzutage wird die serielle Verbindung über ein USB-zu-UART-Kabel hergestellt und die Konsole im Terminal folgendermaßen geöffnet screen:

screen /dev/ttyUSB0 115200 # the number is baud rate or speed

Beachten Sie, dass Arduino und Raspberry ihre eigene Gerätedatei für die serielle Verbindung erstellen /dev/ttyUSB0oder/dev/ttyACM0

vcs * geräte

Demnach man vcshandelt es sich um Konsolenspeichergeräte. In einfachen Worten, wenn Sie dies tun, werden sudo cat /dev/vcs1Sie sehen, was auf dem Bildschirm angezeigt wird /dev/tty1, zumindest bis zur maximalen Anzahl von Zeilen in diesem Terminal.

Anzahl der Konsolen verringern

Das Verringern der Anzahl der tatsächlichen Gerätedateien ist nicht möglich, ohne die tty.hBibliothek zu ändern und den Kernel neu zu kompilieren ( Referenz und eine andere ). Das Löschen dieser Geräte kann jedoch manuell über diesen Befehl erfolgen:

sudo bash -c 'for num in $(seq 10 63 ) ; do MAKEDEV -v -d "tty$num" ; done'

Dies ist jedoch etwas sinnlos - die Gerätedateien belegen keinen Speicherplatz und beeinflussen die Systemleistung nicht.

Sergiy Kolodyazhnyy
quelle
Kommentare sind nicht für eine längere Diskussion gedacht. Diese Unterhaltung wurde in den Chat verschoben .
Terdon
6

Die Praktikabilität ist real. Auf einem Linux-System mit mehreren Benutzern können mehrere Programme gleichzeitig ausgeführt werden, und Sie können vorbeischauen, um zu überprüfen, ob jedes auf einem eigenen virtuellen Terminal ausgeführt wird. Wenn Sie sich bei jedem anmelden, können Sie sich bei Bedarf als unterschiedliche Benutzer anmelden. Zugegeben, viele Leute kommen mit einer Einzelbenutzerperspektive zu Linux, aber da Linux für mehrere Benutzer entwickelt wurde, wurde diese Fähigkeit nie verworfen.

K7AAY
quelle