Wie stellt der X-Server unter Linux eine Beziehung zu einem bestimmten TTY (z. B. TTY7) her, sodass der X-Server nur dann Eingaben empfangen und auf dem Bildschirm zeichnen kann, wenn sich dieses TTY im Vordergrund befindet? Wie wird dies erzwungen?
(Ich habe diese Frage zuvor im unten gezeigten Formular auf Stack Overflow gepostet, wo sie geschlossen wurde.)
Ich habe ein paar Fragen dazu, was es bedeutet, wenn jemand sagt: „Der X-Server läuft auf /dev/tty7“. Ich habe ein paar Vermutungen angestellt, wie es funktioniert, und hoffe, dass mir jemand sagen kann, ob die folgenden Aussagen wahr oder falsch sind.
- /dev/tty7 ist normalerweise das Steuerterminal für Xorg.
- Obwohl tty7 das Steuerterminal für Xorg ist, „steuert“ es Xorg nicht in sinnvoller Weise.
- Xorg empfängt Tastatur- und Mauseingaben direkt durch Abfragen von /dev/input/... oder etwas Ähnlichem und nicht durch Lesen von /dev/tty7. Trotzdem empfängt /dev/tty7 auch Tastatureingaben, was Sie (zum Beispiel) sehen können, indem Sie „xxd -p /dev/tty7“ in einem Terminalemulator ausführen.
- Xorg zeichnet auf dem Bildschirm mithilfe einer hardwarespezifischen Schnittstelle, beispielsweise einer vom Treiber erstellten Gerätedatei oder einem per E/A zugeordneten Speicherbereich, und nicht durch Schreiben in /dev/tty7.
- Wenn Xorg den Videomodus einstellt, stoppt der TTY-Treiber automatisch die Darstellung auf dem Bildschirm. Wenn Sie also eine Taste drücken oder eine Zeichenfolge an /dev/tty7 zurücksenden, wird diese nicht auf dem Bildschirm angezeigt.
- Xorg empfängt Tastatur- und Mauseingaben über /dev/events, auch wenn tty7 im Hintergrund ist, ignoriert sie jedoch, sofern tty7 nicht im Vordergrund ist.
- Was auch immer Xorg auf dem Bildschirm zeichnet, wird nur dann auf dem Monitor sichtbar, wenn tty7 im Vordergrund ist.
- Wenn Xorg das Video initialisiert (Videomodus einstellen usw.), werden die Einstellungen nur auf tty7 und keinem anderen Terminal wirksam, weil tty7 im Vordergrund ist.