Ich kann den Unterschied zwischen / dev / tty und / dev / tty0 erkennen, indem ich die bereitgestellte Methode anhand dieser Frage teste . Aber ich wundere mich wirklich über die praktische Verwendung dieser Geräte (wie Situationen, in denen sie verwendet werden).
8
/dev/sda
und/dev/sda1
bezeichnen bestimmte Blockgeräte (eines ist zufällig ein Teil des anderen)./dev/tty
Auf der anderen Seite handelt es sich um ein virtuelles Gerät, das sich auf keine bestimmte andere Art bezieht.Antworten:
/dev/tty
ist die Steuerungsgröße des aktuellen Prozesses für jeden Prozess, der diese spezielle Datei tatsächlich öffnet. Es ist nicht unbedingt ein virtuelles Konsolengerät (/dev/tty
n ) und kann ein Pty , eine serielle Schnittstelle usw. sein. Wenn das steuernde Tty keine virtuelle Konsole ist, muss der Prozess nicht mit Konsolengeräten interagieren, selbst wenn es pseudoty ist ist tatsächlich auf der Systemkonsole implementiert. Z.B. Für eine Shell in einem Terminalemulator unter einem lokal laufenden X-Server bilden die Programme eine Kette von Interaktionen wie:Unix-Shell
⇕
/dev/pts/2
(≡/dev/tty
für seine Prozesse)Kernel-Pty-Treiber
⇕
/dev/ptmx
Terminal-Emulator
⇕ X-Fenster-Protokoll
X-Server
⇕
/dev/tty7
(≡/dev/tty
für den Server)Systemkonsole
zxc↿⇂ [_̈░░]
Benutzer
Die Verwendung
/dev/tty
durch Userland-Programme umfasst:/dev/tty0
ist die aktuell aktive (d. h. auf dem Monitor sichtbare) virtuelle Konsole des Betriebssystems . Diese spezielle Datei wird nicht erheblich von der Systemsoftware verwendet, sondern/dev/console
ist praktisch ein „Alias“ fürtty0
und/dev/console
vielen Einsatz hat von syslog - Daemons und manchmal vom Kernel selbst.Experimentieren Sie, um den Unterschied zu zeigen: Führen Sie eine
root
Shell auftty3
( Ctrl+ Alt+ F3) oder in einem Terminalemulator aus. Jetztdann schnell Ctrl+ Alt+ F2, zwei Sekunden warten und Ctrl+ Alt+ was auch immer zurück. Wo sehen Sie die Ausgabe?
Und jetzt der gleiche Test für
/dev/tty0
.quelle
sshd
) oder in einemxterm
Fenster ausgeführt wird, nicht die spezifische / dev / tty n . Es interagiert nicht mit Geräten der Systemkonsole , da es an ein Pseudo-Endgerät angeschlossen ist. Dies schließt nicht aus, dass / dev / tty n geöffnet wird, wenn es sich um einen Root-Prozess handelt oder wenn derselbe Benutzer bei tty n angemeldet ist . Über das Hinzufügen einiger Punkte zu "spezifischem tty" zur Antwort./ dev / tty ist die steuernde tty für jeden Prozess. Dies kann Ihre Shell sein.
Wenn Ihr Prozess keine steuernde tty hat, / dev / tty nicht verfügbar ist, gilt dies z. B. für Dämonen.
Wenn Ihr Prozess eine steuernde tty hat, ist / dev / tty ein Treiberalias für den realen tty-Treiber, den Ihr Prozess für stdin, stdout oder stderr verwendet.
Siehe
man -s7d tty
für weitere Informationen. Beachten Sie, dass der Abschnitt, in dem sich dieses Handbuch befindet, zwischen verschiedenen Betriebssystemen unterschiedlich sein kann und nicht mit der Manpage in Abschnitt 1 verwechselt werden sollteman -k tty
.quelle