Vor kurzem wurde ich zum ersten Mal mit dem Konzept des „X Window Servers“ konfrontiert. Nachdem ich viel darüber gelesen hatte und Schwierigkeiten hatte, die meisten seiner Kernkonzepte zu verstehen – hauptsächlich, weil ich im „modernen Computerzeitalter“ geboren wurde und noch nie ein „echtes Terminal“ oder „PCs, die nicht leistungsstark genug waren, um einen X-Client auszuführen“ berührt hatte –, verwirrte mich etwas:
Warum ist der X-Server ein Server und nicht eine Bibliothek mit einer Reihe vordefinierter Funktionen?
Ich konnte aus einigen hier zuvor gestellten Fragen viel lernen, insbesondere aus diesen:
- Warum verwendet das X Window System einen Server?
- Wie ist die Server-Client-Beziehung zwischen [...], einem Fenstermanager und einem X-Serverprozess?
Soweit ich weiß, wurde der X-Server ursprünglich so konzipiert, dass er auch die Kommunikation über Netzwerke unterstützt, da einige alte Computer nicht leistungsstark genug waren, um grafische Elemente auszuführen. Ist das der einzige Grund, warum der X-Server als Server konzipiert wurde? Um „Anfragen“ über ein Netzwerk zu empfangen und mit „grafischen Elementen“ zu antworten?
Gibt es noch einen anderen Grund, warum der X-Server auch lokal als Server fungiert? Wahrscheinlich übersehe ich ein Detail und genau das versuche ich zu verstehen, um alles, was ich bisher gelernt habe, zu „verbinden“.
Wenn möglich, könnt ihr mir auch ein reales Beispiel dafür geben, wie Terminals früher mit X Window-Servern kommuniziert haben? Ich kann mir nur ein Gebäude voller Terminalcomputer vorstellen (auf denen nichts anderes als ein schwarzer Terminalbildschirm läuft) und nur ein einziger Computer, der grafische Benutzeroberflächen ausführen kann. Haben die Leute diesen Computer früher gemeinsam genutzt, um mit den Terminalcomputern zu kommunizieren und schwere Aufgaben auszuführen?
Danke schön!
Antwort1
Sie scheinen in Bezug auf Terminals ein großes Missverständnis zu haben.
Es gab Textterminals und X11-Terminals. Auf den X11-Terminals lief ein X-Server. Dies wurde auch als Thin Client bezeichnet.
Möglicherweise verfügen Sie auch über eine Arbeitsstation, auf der ein X-Server läuft. Diese würde eine Verbindung zu einem Prozessserver herstellen. Eine leistungsstarke Maschine im Keller.
Weitere Vorteile sind:
- Es ist nur ein Prozess (mit Zugriff auf die Grafikhardware, Tastatur und das Zeigegerät), aber eben nur ein Prozess. Das hat Vorteile. Sie können einen Prozess ohne Zugriff auf die Grafikhardware, Tastatur und das Zeigegerät haben. Es könnte auch ein VNC-Server sein, der eine X11-VNC-Brücke bildet. Er könnte zu Testzwecken verwendet werden (lassen Sie ihn von einem Roboterprozess anstelle eines Menschen steuern).
- Es handelt sich um einen separaten Vorgang: Ich habe meinen Computer auf Multicode aktualisiert. Er verwendet diese Kerne, ohne dass Änderungen an der Software erforderlich sind (bis auf einige Kerne).
- Wenn Sie über mehrere Monitore, Tastaturen und Mäuse verfügen, können Sie diese architektonisch problemlos in separate Sitze (Terminals) unterteilen.
- Es vereinfacht die Implementierung von Switch-User.
- Anderen Prozessen keinen Zugriff auf die Hardware zu gewähren. Wie beim Bibliotheksansatz ist dies sicherer (Beachten Sie, dass X11 einige Sicherheitsprobleme hat, die durch ein Redesign behoben werden könnten).
- Der Fenstermanager ist ebenfalls ein separater Prozess. Dies ermöglicht die Auswahl von Desktop-Umgebungen. Also ein Prozess für den X11-Server, einer für den Fenstermanager, einer für den Display-Manager (Anmeldedienst), einer für dies und das. Das macht es flexibel, Sie können Ihre Desktop-Umgebung ändern, ohne sich abzumelden.
Antwort2
Es handelt sich um einen Server, da er einen Anzeigedienst auf einer einzelnen Hardwareeinheit (konzeptionell eine Arbeitsstation) bereitstellt und koordiniert, die über mehrere Tastaturen, andere Eingabegeräte und mehrere Displays verfügen kann.
Mehrere Prozesse können sich lokal oder remote damit verbinden und über Bildschirmplatz, Eingabefokus, Farbkartenplätze und andere Ressourcen verhandeln. Die Prozesse können nicht direkt miteinander verhandeln oder ihre unterschiedlichen Anforderungen in Einklang bringen. Der X-Windows-Server stellt den Dienst bereit, der allen Client-Prozessen das Gefühl gibt, sie hätten Zugriff auf alle Funktionen der Arbeitsstation.