www.wikidata.de-de.nina.az
Das X Window System auch X Version 11 X11 X ist ein Netzwerkprotokoll und eine Software die Fenster auf Bitmap Displays auf den meisten unixoiden Betriebssystemen und OpenVMS ermoglicht X11 wurde auf allen gebrauchlichen Betriebssystemen implementiert X Window SystemBasisdatenMaintainer X Org FoundationEntwickler X Org Foundation Keith PackardErscheinungsjahr 1984Aktuelle Version X11R7 7 6 Juni 2012 darin X Org Server 21 1 8 29 Marz 2023 Betriebssystem unixoide BSD macOS Linux u a VMSProgrammiersprache CKategorie Grafische Benutzeroberflache NetzwerkprotokollLizenz MIT Lizenzdeutschsprachig neinx orgGnome 2 18 1KDE 4 10Xfce 4 6 1Zusammenwirken von X Server und X Client Im oberen Teil der Grafik ist ein Benutzerrechner schematisch dargestellt auf dem ein X Server die Tastatur die Maus und den Bildschirm verwaltet Der X Server interagiert in dem Beispiel mit drei X Clients einem lokalen Browser einem lokalen xterm zur Interaktion mit Unix Shell und einem entfernten xtermEs stellt einen Standardbaukasten und das Protokoll zum Bau einer grafischen Benutzeroberflache zur Verfugung Dazu gehoren Zeichnen und Bewegen von Fenstern auf dem Bildschirm sowie das Behandeln der Benutzereingaben mit Maus und Tastatur X schreibt keine spezielle Benutzerschnittstelle vor sondern uberlasst dies seinen Client Programmen Deshalb konnen X basierte Umgebungen in ihrem Aussehen sehr variieren Mithilfe von Desktop Umgebungen die bekanntesten KDE und Gnome sind rechts abgebildet wird dem entgegengewirkt Endanwender kommen auf modernen Unix Desktops mit den Kernprogrammen des X Window Systems kaum noch in Beruhrung Fruhere Anzeigeprotokolle konnten nur eingebaute oder direkt angeschlossene Anzeigen verwalten In Erweiterung dazu wurde X spezifisch als Client Server System entworfen was neben der lokalen auch eine netzwerktransparente Verwendung ermoglicht Die X Org Foundation betreut heute das Projekt und hat am 6 Juni 2012 die Version 7 7 der Referenzimplementierung als freie Software unter der MIT Lizenz herausgegeben Eine weitere in den 1990ern weit verbreitete Implementierung ist XFree86 Als Nachfolger soll Wayland dienen Inhaltsverzeichnis 1 Geschichte 2 Technik 2 1 Kommunikationsmodell 2 2 X Terminal 2 3 3D Beschleunigung 3 Starken 4 Schwachen 5 Ansatze zur Verbesserung 5 1 Ubertragungsgeschwindigkeit 5 2 Gesteigerte Einheitlichkeit 6 Sonstiges 7 Siehe auch 8 Literatur 9 Weblinks 10 EinzelnachweiseGeschichte BearbeitenX wurde 1984 im Projekt Athena in Zusammenarbeit des MIT DEC und IBM entwickelt 1 Die erste Version wurde am 19 Juni 1984 vorgestellt und 1986 wurde X 10 4 mit grossem Erfolg gegen eine Schutzgebuhr an alle Interessierten verteilt womit X erstmals eine grosse Verbreitung auf den Unix Rechnern jener Zeit erreichte X10 war jedoch inkompatibel zum spateren X11 2 Im September 1987 schliesslich folgte das erste Release von X11 Als 1988 die Popularitat immer grosser wurde wurde das nicht kommerzielle X Konsortium gegrundet das die weitere Entwicklung ubernahm Es veroffentlichte verschiedene Versionen die letzte grosse war X11R6 1994 Danach ubernahm The Open Group die Entwicklung und Standardisierung In der gleichen Zeit erreichte die freie X Implementierung XFree86 einen immer grosseren Bekanntheitsgrad und wurde zum De facto Standard der X Implementierung 2003 aber gab es projektinterne und lizenzrechtliche Probleme bei XFree86 die im Endeffekt zur Auflosung des Entwicklerteams fuhrten Unter dem Dach der daraufhin neu gegrundeten X Org Foundation wurde fortan eine Abspaltung des alten XFree86 weiterentwickelt die unter dem Namen X Org Server grosstenteils in dessen Fussstapfen trat Seit etwa 2005 gilt er als der meistverbreitete X Server und damit die meistverbreitete X Implementierung Technik Bearbeiten nbsp Mogliche Fensterverteilung durch einen X11 Fenstermanager nbsp X11 Fensterelemente Beispiel mit Fenstermanager FVWM2Der X Server steuert die Ein und Ausgabegerate wie unter anderem Zeigegerate z B Maus Tastatur Bildschirm und Grafikkarte Dazu kommuniziert er in der Theorie mit dem Betriebssystem Kernel in der Praxis wird der Kernel aber auch umgangen Das zugrundeliegende Konzept ist eine Erweiterung des Terminal Konzeptes auf grafische Benutzeroberflachen Ein Programm verlasst sich fur die grafische Eingabe Maus und Ausgabe Fenstertechnik auf die Dienste eines anderen dafur spezialisierten Programms X Server die Kommunikation lauft immer uber das Netzwerk Die Darstellung bei X ist die eines Rastergrafik basierten Fenstermanagers der verschiedene Funktionen bereitstellt Dazu gehort das Zeichnen und Bewegen der Fenster die ereignisorientierte Handhabung eines Zeigegerats z B einer Maus die Interprozesskommunikation und teilweise auch die Verwaltungsfunktionen fur Druck und Audio Ausgabe X ist also ein Minimalsystem bei dem zum Zeichnen lediglich Primitive wie Linien Muster etc bereitgestellt werden Das eigentliche Aussehen und Verhalten des Fenstersystems wird deshalb nicht von X bestimmt sondern von dem Fenstermanager der wie eine normale Anwendung einfach als Client des X Servers lauft Fur das Aussehen der Programme selbst ist er aber nicht verantwortlich das ubernimmt meistens das sog GUI Toolkit welches das Zeichnen und Verwalten der typischen Elemente einer grafischen Oberflache wie z B Menus und Buttons ubernimmt Siehe dazu auch Desktop Umgebung Kommunikationsmodell Bearbeiten X baut auf einem Client Server Modell auf Der X Server lauft auf dem Rechner am Arbeitsplatz und stellt seine grafischen Dienste den X Clients zur Verfugung Er enthalt den Grafikkartentreiber sowie Treiber fur Tastatur Maus und andere Eingabegerate wie z B Grafik Tablets und kommuniziert mit dem X Client mittels Interprozesskommunikation Der X Client ist das Anwendungsprogramm das die grafischen Ein Ausgabe Dienste des X Servers benutzt Er kann auf demselben oder auch auf irgendeinem entfernten Rechner laufen sofern eine Netzwerkverbindung zwischen beiden besteht Der X Client benutzt die Dienste des X Servers um eine grafische Darstellung zu erreichen und empfangt von ihm die diversen Ereignisse events wie Tastenanschlage Mausbewegungen Klicks usw X Terminal Bearbeiten Das in der Grossrechner Welt bekannte textbasierte Terminal System dort meistens proprietare wie IBM 5250 und 3270 unter Digitals VMS die bekannten seriellen Terminals wie z B VT100 erlebte seine grafische Weiterentwicklung zum X Terminal ein Rechner auf dem nichts anderes als ein X Server lauft Diese X Terminals werden haufig genutzt um mit leistungsschwachen Rechnern auf rechenintensive Anwendungen zuzugreifen Die Anwendung selbst lauft auf einem Server das X Terminal ubernimmt nur die Anzeige der grafischen Oberflache Mittlerweile hat es sich durchgesetzt statt spezieller Hardware fur X Terminals auf Standard Hardware von PCs zuruckzugreifen Mit dieser konnen die Funktionen von X Terminals zum Beispiel in Form von Thin Client preiswert umgesetzt werden 3D Beschleunigung Bearbeiten Um schnelle 2D und 3D Beschleunigung zu ermoglichen stellt das X Window System die Schnittstelle Direct Rendering Infrastructure DRI bereit uber die Programme direkt auf die Grafik Hardware zugreifen konnen Das geschieht bei freien Treibern durch die OpenGL und Vulkan Implementierung Mesa 3D im Fall von proprietaren Treibern durch jeweils proprietare Implementierungen davon Mit Hilfe von 3D Erweiterungen wie AIGLX und xgl werden im X Org Server daruber hinaus 3D Effekte auf dem Desktop selbst unterstutzt Starken BearbeitenDas X System wurde von Anfang an fur den effizienten Netzwerkbetrieb konzipiert Die Kommunikation zwischen Client und Server lauft uber ein standardisiertes Protokoll ab das nur relativ geringe Transferraten benotigt Der Quellcode des X Systems ist zwar objektorientiert aber dennoch in C geschrieben so dass eine Ubersetzung auf nahezu jedem Unix Rechner moglich ist Das X System ist im Gegensatz zu aktuellen MS Windows Versionen kein Bestandteil des Betriebssystems weswegen ein Absturz von X in der Regel keinen Einfluss auf dessen Integritat hat Sturzt der X Server ab oder reagiert nicht mehr konnen die Clients reagieren und z B auf einen Neustart des X Servers warten oder sich was meistens der Fall ist beenden Weiterhin hat der Fenstermanager die Bedienoberflache im Prinzip denselben Status wie ein X Client Im laufenden Betrieb kann ein Fenstermanager durch einen anderen ersetzt werden Bereits mit sehr kleinen Fenstermanagern z B twm rund 140 KB kann komfortabel gearbeitet werden Durch den durchdachten hierarchischen Aufbau des Systems ist beispielsweise Folgendes moglich An einem X Server mehrere Bildschirm Arbeitsplatze betreiben Fur Entwicklungs und Testzwecke einen X Server in einem Fenster eines anderen X Servers laufen lassen Programme an einem Rechner mit vollig anderer Hard und Software als dem Bedienrechner ausfuhren Die Weiterentwicklung von X lauft im Vergleich zur Hardware auf grossen Zeitskalen und mit nur geringen Veranderungen ab Kompatibilitatsprobleme treten daher nicht auf wenn nur Standardbibliotheken verwendet werden Allerdings benutzt ein grosser Teil der X Clients heute Erweiterungen wie Xft XVideo oder Xinerama Die strikte Trennung des X Window Systems von der Benutzeroberflache fuhrt zu einem vergleichsweise flexiblen System das aber auch sehr uneinheitlich erscheinen kann Da das Design der Oberflachenelemente im Gegensatz zu Windows oder Mac OS nicht aus dem eingestellten Design des Haupt GUI Toolkits stammt sondern es verschiedene Toolkits unter anderem Qt und GTK mit verschiedenen Eigenschaften gibt die verschiedene Designs verwenden kann es durchaus vorkommen dass jedes der genutzten Programme ein unterschiedliches Aussehen und Verhalten zeigt Schwachen BearbeitenMit xinput list und xinput test id fungiert der X Server als Keylogger wobei selbst das sudo Passwort ausgelesen werden kann Voraussetzung fur diese Art des Angriffs ist aber dass bereits ein X Server mit root Rechten lauft Viele Linux Distributionen verhindern deshalb in der Standardkonfiguration die Anmeldung als root 3 Das erstmals 2008 vorgestellte Wayland System soll den X Server ablosen dessen historisch gewachsene Schwachpunkte vermeiden und deutlich weniger Sicherheitslucken aufweisen 4 5 Ansatze zur Verbesserung BearbeitenUbertragungsgeschwindigkeit Bearbeiten Es wurden mehrere Ansatze entwickelt um die Ubertragungsgeschwindigkeit zu verbessern Kompression der Ubertragungsdaten Anlegen eines Caches fur schon ubertragene Daten und Reduzierung des Einflusses der Paketumlaufzeit zwischen X Client und X Server durch effizientere Programmierung Mehrere Projekte versuchen diese Techniken umzusetzen Die XCB Bibliothek ist eine Neufassung der Xlib Bibliothek die im X Server den Datenverkehr zwischen Client und Server regelt Bei der Entwicklung von XCB wird insbesondere Wert auf eine gesteigerte Effizienz gelegt Einen hohen Bekanntheitsgrad hat ebenfalls das NX Projekt des italienischen Unternehmens NoMachine das mit Hilfe eines Caches und Datenkompression X auch uber Modem Leitungen nutzbar macht In der Vergangenheit arbeitete auch das Low Bandwidth X Projekt von Keith Packard in diesem Bereich Es war gedacht eine Erweiterung des X Protokolls zu erstellen um dessen Netzwerktransparenz auch fur niedrige Bandbreiten nutzbar zu machen Mit der Veroffentlichung der von X11R6 3 durch das X Konsortium im Dezember 1996 wurde LBX eine volle Erweiterung des X Protokolls Da es aber nie grossflachig genutzt wurde und auch nur fur einen Teil der Probleme eine Losung bieten konnte wurde das Projekt im Laufe des Jahres 2000 von Keith Packard fur tot erklart 6 Gesteigerte Einheitlichkeit Bearbeiten Eine gesteigerte Einheitlichkeit wurde ebenfalls von mehreren Projekten verfolgt Ansatze waren die Erstellung einer Desktopoberflache mit einheitlichen Oberflachenbibliotheken oder aber das Ersetzen von X durch ein auf hoherem Niveau angelegtes System das von Beginn an eine einheitliche Behandlung von Oberflachenelementen beinhaltete Das Fresco Projekt und das Y Window System entwickelten jeweils Losungen um den zweiten Ansatz umzusetzen die Projekte ruhen aber zurzeit Ein anderer aktiv verfolgter Ansatz ist der Versuch durch gemeinsame Richtlinien fur Benutzerschnittstellen und Verhaltensweisen der Software Einheitlichkeit zwischen den verschiedenen Toolkits zu erlangen Dieser Ansatz wird vor allen Dingen im Rahmen des freedesktop org Projekts verfolgt und fuhrte dort z B zu einheitlichen Standards fur Icons Sonstiges BearbeitenIn den fruhen 1990er Jahren war die komplette X11 Distribution oft die grosste Datei rund 10 bis 50 MB auf Unix Rechnern Da sie zudem frei war wurde sie gerne als Mailbombe verwendet oder zumindest damit gedroht Soll ich Dir ein X11R3 schicken war daher im Usenet ein Running Gag um Newbies auf Fehlverhalten hinzuweisen Die X11 Farben sind heute Grundlage der Farbnamen in CSS Siehe auch BearbeitenX Display Manager Cygwin X Windows Implementierung Xming Windows Implementierung XQuartz macOS Implementierung Quartz Compositor Rio Software Kategorie X ServerLiteratur BearbeitenXlib Programming Manual O Reilly amp AssociatesWeblinks Bearbeiten nbsp Commons X Window System Sammlung von Bildern Videos und Audiodateien nbsp Wikibooks Guide to X11 Lern und Lehrmaterialien englisch X Org Foundation XFree86 Project Inc Fresco a windowing system Die Woche Das Ende von X11 c tEinzelnachweise Bearbeiten Jurgen Seeger Das X Window System wird 30 Am 19 Juni 1984 lief der erste Prototyp des netzweiten grafischen Fenstersystems X das bis heute Standard auf Unix und Linux Systemen ist In Heise online 20 Juni 2014 abgerufen am 20 Juni 2014 The X Window System In Guidebook Stand 25 Juni 2005 englisch ursprunglich in der Byte Ausgabe 1 89 S 353 360 abgerufen am 31 Mai 2013 Michael Plura Aufgesperrt Root Rechte mit X Org iX Magazin In heise de 29 Oktober 2018 abgerufen am 29 Oktober 2018 The Invisible Things Lab s blog The Linux Security Circus On GUI isolation In theinvisiblethings blogspot com 23 April 2011 abgerufen am 28 Oktober 2018 Linux und BSD Sicherheitslucke in X org ermoglicht Root Rechte Golem de Abgerufen im 1 Januar 1 An LBX Postmortem Keithp com Stand 2000 englisch abgerufen am 31 Mai 2013 Abgerufen von https de wikipedia org w index php title X Window System amp oldid 235806513