xdpyinfo
X-Server

OpenGL

Übersicht zu den Extensions von X11

Der Kernbestand des X-Protokolls sowie des APIs für X-Applikationen ist seit dem ersten Release von X11 aus Kompatibilitätsgründen gleich geblieben. Um weitere Features, neuere Graphik-Technologien (die sich schon aus den ständig erweiterten Fähigkeiten der Graphik-Hardware ergeben) in X11 zu integrieren, wurden immer wieder neue Erweiterungen, sog. Extensions, zum Kernbestand hinzugefügt.
Besonders erwähnt werden soll hier die RENDER-Extension, eine relativ neue Entwicklung aus dem Linux-Umfeld. Sie ermöglicht kantengeglättete Schriften und Alpha-Blending.. Diese werden von KDE, gnome und mozilla-basierten Applikationen genutzt. Ist kein RENDER vorhanden, so fällt das Erscheinungsbild solcher Applikationen deutlich unschöner aus.
Eine Sonderrolle spielt die Extension GLX, die eigentlich nicht zum X11-Bestand gehört. Sie ermöglicht OpenGL-basierten Applikation netzwerktransparent beschleunigte 3D-Darstellung. OpenGL und GLX sind eingentlich eine eigene Welt mit sog. OpenGL Visuals, unterschiedlichen Versionsständen und zahlreichen fakultativen Fähigkeiten. Deshalb ist OpenGL auch ein eigenes Kapitel gewidmet.

Die folgende Liste von X-Extensions (zu deutsch "Erweiterungen") liefert kurze Erklärungen, wozu die einzelne Extension dient und z.T. auch wann und warum sie entwickelt wurde. Die Liste erfasst den Großteil der existierenden Externsions, ist nicht vollständig, da einerseits von der X.org immer wieder neue Extensions eingeführt werden, andererseits zahlreiche herstellerspezifische Extensions existieren.  In der Praxis machen sich fehlende Extensions (dh. wenn eine X-Appliokation eine Extension benötigt, die der X-Server nicht anbietet) in der Regel mit Fehlermeldungen bemerkbar oder durch das Fehlen bestimmter Funktionalitäten.
  • BIG-REQUESTS erlaubt X-Client eine erweiterte Größenangabe bei X-Requests und damit Requests mit einer Größe über 262140 Bytes; nützlich für komplexe Graphik-Operationen.
  • DOUBLE-BUFFER wurde mit X11R6.1 eingeführt und erlaubt Applikationen in einem unsichtbaren Puffer Bilder "im Hintergrund" aufzubauen, um sie dann fertig in den Vordergrund zu schieben. So sind immer nur fertig gerenderte Bilder sichtbar und Animationen bleiben ruckelfrei.
  • Multi-Buffering nutzt - falls vorhanden - bestimmte Features der Grafik-Hardware zur Beschleunigung von der Bilddarstellung. Diese Extension ist nicht obligatorischer Teil des X11-Standards und wird nur von wenigen X-Applikationen genutzt.
  • GLX ermöglicht OpenGL-basierten Applikation netzwerktransparent beschleunigte 3D-Darstellung. Mehr dazu im Kapitel X11 und OpenGL.
  • LBX steht für Low Bandwidth Xprotocol. Das X-Protokoll ist ganz klar für LAN-Verhältnisse konzipiert. Es ist nicht unbedingt bandbreitenschonend und wegen zahlloser Round Trips angewiesen auf kurze Latenz-Zeiten. Inzwischen wurde LBX allerdings von X.org aus dem X11-Standard entfernt, da es kaum genutzt wurde und sehr viel effizientere Lösungen zur Verfügung stehen Siehe Remote X11.
  • MIT-SHM: Mit dieser Extension können X-Client-Prozesse Shared-Memory-Segmente im X-Server belegen, auf die bestimmte andere X-Client-Prozesse zugreigen können. Dies führt insbesondere beim Austausch großer Bilder zu erheblich besserer Performance bei lokalen X-Clients (dh. die auf der gleichen Maschine laufen wie der X-Server. Allerdings birgt diese Extension u.U. ein Sicherheitsrisiko, wenn nicht vertrauenswürdige ("untrusted") X-Clients Zugriff auf diese Shared-Memory-Segmente bekommen. Vgl. SECURITY-Extension.
  • SECURITY zur Differenzierung von vertrauenswürdigen und nicht vertrauenswürdigen ("trusted" / "untrusted") X-Clients. Für nicht vertrauenswürdigen X-Clients können bestimmte kritische Extensions (z.B. MIT-SHM) ausgeblendet werden.
  • SHAPE ermöglicht Fenster in beliebigen Formen. (Ansonsten sind Fenster immer rechteckig.) 
  • SYNC wurde mit X11R6 eingeführt und ermöglicht die Synchronisation zwischen X-Clients, die auch auf verschiedenen Hosts laufen können, über den X-Server. Besonders nützlich bei Multimedia-Applikationen, die Audio-, Video-, Graphikdatenströme o.ä. synchronisieren müssen.
  • X-InputExtension: Normalerweise unterstützt der X-Server zweierlei Eingabegeräte: eine Tastatur mit beliebigem Layout und eine Maus mit mehreren Knöpfen. Die X-InputExtension dagegen unterstützt komplexere Eingabegeräte wie Graphiktabletts, Digitizer oder sog. Space-Mäuse.
  • XpExtension wurde erst 1999 eingeführt und dient der Ausgabe von X-Clients auf Drucker. Der Drucker erscheint als zusätzlicher Screen mit bestimmten Eigenschaften. X-Applikationen können Ihre Druckausgaben auf diesen Screen "zeichnen". Diese Extension kam aber zu spät, um sich als Standard für X11 zu etablieren; nur wenige moderne X-Applikationen sind in der Lage, Xprint zu nutzen. Umgekehrt kann der zusätzliche Screen bei älteren X-Applikationen zu Funktionsstörungen führen.

Neuere X-Extensions

Nach dem Release X11R6.1 im Jahr 1997 trat in der Entwicklung  von X11 ein gewisser Stillstand ein. Eine aktive Weiterentwicklung, auch von neuen Extensions, fand überwiegend im Open-Source-Umfeld statt, nämlich mit dem Projekt XFree86. Erst nach mehreren organisatorischen Umstellungen gelang es, die X11-Entwicklung in Xorg zu bündeln. Die wichtigste noch von XFree86 entwickelte Extension war das oben aufgeführte RENDER. Mit den jüngsten Releases (zuletzt X11R6.8.2) erhielt die Familie der X11-Extensions deutlich Zuwachs.
  • Composite: Zusammen mit der DAMAGE Extension kann ein sog. "Compositing Manger" spezielle Effekte wie echte Transparenz von Fenstern produzieren. Dies wird von neueren KDE- und gnome-Versionen verwendet..
  • DAMAGE 
  • XINERAMA dient der Nutzung und Verwaltung mehrerer Monitore für einen Screen.
  • RANDR erlaubt im laufenden Betrieb, die Bildschirmgröße und Ausrichtung zu verändern. X-Clients, die diese Extension unterstützen, erhalten dabei eine entsprechende Benachrichtigung.
  • XFIXES enthält eine Reihe von Verbesserungen zur Behebung von Schwächen des ursprünglichen X-Protokolls.
  • Xvideo erlaubt die Nutzung von Hardware-Beschleunigung für die Darstellung von Videos durch X-Clients. Auch hier muss die Grafik-Hardware entsprechende Voraussetzungen erfüllen.

Kommentierte Links

Sehr aufschlussreich ist der Artikel X Window System protocols and architecture in der engl. Wikipedia.
Des weiteren dort Artikel zu einzelnen Extension wie MIT-SHM, Xvideo, Xrender, Xinerama, RandR, XFIXES.
Zu SUN Overlay: http://docs.sun.com/app/docs/doc/801-6677/6i11ng4r6?a=view
Zur Multi-Buffering Extension: http://docs.sun.com/app/docs/doc/801-6677/6i11ng4s0?a=view
xdpyinfo
     ©2005-2008 Andreas Gottwald
OpenGL