Ü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
|