„X Window System“ – Versionsunterschied
[ungesichtete Version] | [ungesichtete Version] |
K Quellen nach unten, Wikibooks nach Weblinks (weil es genau das ist), tote Links unter siehe auch raus, Sprache |
Das war eine spezielle formulierung unter http://www.google.de/search?q=x11+mailbombe findest Du mehr Treffer |
||
Zeile 82: | Zeile 82: | ||
Ein anderer Ansatz ist der Versuch, durch gemeinsame Richtlinien für 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. |
Ein anderer Ansatz ist der Versuch, durch gemeinsame Richtlinien für 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. |
||
== Dies und das == |
|||
In den frühen [[1990er]]-Jahren war die komplette X11-[[Distribution]] oft die größte Datei auf Unix-Rechnern. Da sie zudem [[Freie Software|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 [[Newbie]]s auf Fehlverhalten hinzuweisen. |
|||
== Siehe auch == |
== Siehe auch == |
Version vom 11. Februar 2008, 20:36 Uhr




Das X Window System (auch: X Version 11, X11, X) ist ein Protokoll, das Fenster auf Bitmap-Displays auf den meisten Unix-artigen Betriebssystemen und OpenVMS ermöglicht. X11 wurde auf alle gegenwärtig gebräuchlichen Betriebssysteme portiert.
Es stellt einen Standardbaukasten und das Protokoll zum Bauen einer grafischen Benutzeroberfläche zur Verfügung. Dazu gehören Zeichnen und Bewegen von Fenstern auf dem Bildschirm, Behandeln der Benutzereingaben mit Maus und Tastatur. X schreibt keine spezielle Benutzerschnittstelle vor, sondern überlässt das seinen Client-Programmen. Deshalb können X-basierte Umgebungen in ihrem Aussehen sehr variieren.
Frühere Anzeigeprotokolle konnten eingebaute oder direkt angeschlossene Anzeigen verwalten. Im Gegensatz dazu wurde X spezifisch mit Client-Server-Technik entworfen, was die Verwendung sowohl lokal wie auch netzwerktransparent ermöglicht.
Die X.Org Foundation betreut heute das Projekt und hat am 6. September 2007 die Version 7.3 der Referenzimplementierung als freie Software unter der MIT-Lizenz herausgegeben.
Geschichte von X
X wurde 1984 im Projekt Athena in Zusammenarbeit des MIT, der Digital Equipment Corporation und IBM entwickelt. Die erste Version wurde im Juni 1984 freigegeben, im September 1987 folgte die Version X11.
Als 1988 der Erfolg immer größer wurde, wurde das nicht-kommerzielle X-Konsortium gegründet, das die weitere Entwicklung übernahm. Es veröffentlichte verschiedene Versionen, die letzte große war X11R6 1994. Danach übernahm The Open Group die Entwicklung und Standardisierung. Seit 2004 wird es unter Führung von X.Org weitestgehend standardisiert. Im Dezember 2005 wurde die Version X11R7.0 veröffentlicht. Zu großer Verbreitung auf PCs brachte es die Implementierung in Form der freien Software XFree86. Diese hatte aber 2003 projektinterne und lizenzrechtliche Probleme, was im Endeffekt zur Auflösung des Entwicklerteams führte. Der weiterentwickelte X.Org-Server der X.Org Foundation trat in den meisten Fällen in dessen Fußstapfen und gilt seitdem als der meistverbreitete X-Server.
Technik
Der X-Server steuert die Ein- und Ausgabegeräte wie die Maus, Tastatur, den Bildschirm und die Grafikkarte. Dazu kommuniziert er in der Theorie mit dem Betriebssystem-Kernel, in der Praxis wird der Kernel aber auch umgangen. Das zugrunde liegende Konzept ist eine Erweiterung des Terminal-Konzeptes auf grafische Benutzeroberflächen: Ein Anwendungsprogramm verlässt sich für die grafische Eingabe (Maus) und Ausgabe (Fenstertechnik) auf die Dienste eines dafür spezialisierten Programms (X-Server), die Kommunikation läuft immer über das Netzwerk.
Die Darstellung bei X ist die eines rastergrafikbasierten Fenstermanagers, der verschiedene Funktionen bereitstellt. Dazu gehört das Zeichnen und Bewegen der Fenster, die ereignisorientierte Handhabung eines Zeigergeräts wie einer Maus, die Interprozesskommunikation und teilweise auch die Verwaltungsfunktionen für 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 läuft. Für das Aussehen der Programme selbst aber ist dieser nicht verantwortlich, dieses übernimmt meistens das sog. Toolkit (eine spezielle Komponentenbibliothek), welches das Zeichnen und Verwalten der typischen Elemente einer grafischen Oberfläche wie z. B. Menüs und Buttons übernimmt. Siehe dazu auch Arbeitsoberfläche.
Kommunikationsmodell
X ist netzwerktransparent und baut auf dem Client-Server-Modell auf:
- Der X-Server läuft auf dem Rechner am Arbeitsplatz und stellt seine (grafischen) Dienste den X-Clients zur Verfügung. Er enthält den Grafikkartentreiber sowie Treiber für Tastatur, Maus und andere Eingabegeräte (wie z.B. Grafik-Tablets) und kommuniziert mit dem X-Client über das Netzwerk.
- 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 empfängt von ihm die diversen Ereignisse (events) wie Tastenanschläge, Mausbewegungen, Klicks usw.
X-Terminal
Das in der Großrechner-Welt bekannte, textbasierte Terminal-System (dort meistens proprietäre wie IBM 5250 und 3270; unter Unix 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 läuft. Diese X-Terminals werden häufig genutzt, um mit leistungsschwachen Rechnern auf rechenintensive Anwendungen zuzugreifen: Die Anwendung selbst läuft auf einem Server, das X-Terminal übernimmt nur die Anzeige der grafischen Oberfläche.
Durch die hohen Kosten eines X-Terminals ist es heute praktischer, einen ThinClient - das ist ein billiger mini PC ohne Festplatte - oder einen normalen PC mit einem X-Server zu benutzen.
Stärken
Das X-System wurde von Anfang an für den effizienten Netzwerkbetrieb konzipiert. Die Kommunikation zwischen Client und Server läuft über ein standardisiertes Protokoll ab, das nur relativ geringe Transferraten benötigt. Der Quellcode des X-Systems ist zwar objektorientiert, aber dennoch in C geschrieben, so dass eine Übersetzung auf nahezu jedem Unix-Rechner möglich ist. Das X-System ist im Gegensatz zu aktuellen MS-Windows-Versionen kein Betriebssystem, weswegen ein Absturz von X in der Regel keinen Einfluss auf die Integrität desselbigen hat. Weiterhin hat der Windowmanager (die „Bedienoberfläche“) im Prinzip denselben Status wie ein X-Client: Man kann im laufenden Betrieb einen Windowmanager durch einen anderen ersetzen. Bereits mit sehr kleinen Windowmanagern (z. B. twm, ca. 140 KB) kann komfortabel gearbeitet werden.
Durch den durchdachten, hierarchischen Aufbau des Systems ist beispielsweise folgendes möglich:
- An einem X-Server mehrere Bildschirm-Arbeitsplätze betreiben.
- Für Entwicklungs- und Testzwecke einen X-Server in einem Fenster eines anderen X-Servers laufen lassen.
- Programme an einem Rechner mit völlig anderer Hard- und Software als dem Bedienrechner ausführen.
Die Weiterentwicklung von X läuft im Vergleich zur Hardware auf großen Zeitskalen und mit nur geringen Veränderungen ab. Kompatibilitätsprobleme treten daher nicht auf, wenn nur Standardbibliotheken verwendet werden. Allerdings benutzt ein großer Teil der X-Clients heute Erweiterungen wie Xft, XVideo oder Xinerama.
Schwächen
Die strikte Trennung des X Window Systems von der Benutzeroberfläche führt zu einem vergleichsweise flexiblen System, das aber auch sehr uneinheitlich erscheinen kann: Da es im Gegensatz zu Windows oder Mac OS nicht ein Haupt-Toolkit, sondern verschiedene Toolkits (unter anderem Qt und GTK+) mit verschiedenen Eigenschaften gibt, kann es durchaus vorkommen, dass jedes der genutzten Programme ein unterschiedliches Verhalten zeigt.
Eine weitere Schwäche ist das Fehlen von Hardwarebeschleunigung für 3D-Anwendungen. Xgl und Xegl versuchen hier Abhilfe zu schaffen. Außerdem ist eine Verschlüsselung nicht integriert, über Tunneling jedoch möglich.
Ansätze zur Verbesserung
Ein weiteres Problem beim Einsatz des X-Window-Systems über Rechnergrenzen hinweg ist seine sehr häufig langsame und dem Anwender „zäh“ vorkommende Geschwindigkeit und Reaktionszeit bei Verbindungen über schmale Bandbreiten mit hoher Latenzzeit (Modem, ISDN).
Mögliche Ansätze, diesen Problemen zu begegnen, sind
- Kompression der Übertragungsdaten,
- Anlegen eines Caches für schon übertragene Daten und
- Reduzierung der Roundtrips zwischen X-Client und X-Server
- und am bekanntesten, die XCB Bibliothek.
Viele „Roundtrips“ sind unnötig und werden teilweise von ineffizienter Programmierung von X-Applikationsprogrammen verursacht. Ein effizienter Cache erspart die wiederholte Übertragungen derselben Datenblöcke (z. B. Symbole in Programm-Menüleisten). Die starke Komprimierung reduziert den Datenverkehr weiter.
Low Bandwidth X
Ein anderes Projekt, das diese Ansätze umsetzen wollte, war das Low-Bandwidth-X-Projekt von Keith Packard. Es war gedacht, eine Erweiterung des X-Protokolls zu erstellen, um dessen Netzwerktransparenz auch für niedrige Bandbreiten nutzbar zu machen. Mit der Veröffentlichung der von X11R6.3 durch das X-Konsortium im Dezember 1996 wurde LBX eine volle Erweiterung des X-Protokolls. Da es aber nie großflächig genutzt wurde und auch nur für einen Teil der Probleme eine Lösung bieten konnte, wurde das Projekt im Laufe des Jahres 2000 von Keith Packard für tot erklärt [1].
Bekannte Vertreter
Da es sich bei X um frei einsehbare Protokolle und Standards handelt, gibt es mehrere Projekte, die versuchen, diese umzusetzen. Die bekanntesten sind die auch schon erwähnten Server X.Org und XFree86.
Geschichte
Verschiedene Projekte versuchten und versuchen die oben genannten Herausforderungen und Lösungsansätze zu implementieren. In jüngerer Zeit hat dabei das NX-Projekt der italienischen Firma NoMachine einen hohen Bekanntheitsgrad erreicht.
Andere Lösungsansätze waren die Erstellung einer Desktopoberfläche mit einheitlichen Oberflächenbibliotheken oder aber das Ersetzen von X durch ein auf höherem Niveau angelegtes System, das von Beginn an eine einheitliche Behandlung von Oberflächenelementen beinhaltete. Das Fresco-Projekt und das Y Window System entwickelten jeweils Lösungen, um den zweiten Ansatz umzusetzen, die Projekte ruhen zur Zeit aber.
Ein anderer Ansatz ist der Versuch, durch gemeinsame Richtlinien für 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.
Dies und das
In den frühen 1990er-Jahren war die komplette X11-Distribution oft die größte Datei 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.
Siehe auch
- X Display Manager
- Xming (Windows Implementierung)
- Cygwin (Windows Implementierung)
- Fenstermanager
- Quartz Compositor
- rio
Literatur
- Xlib Programming Manual, O'Reilly & Associates, Inc. (Online-Version)
Weblinks
- Wikibooks: Guide to X11 (engl.) – Lern- und Lehrmaterialien
- X.Org Foundation
- XFree86 Project, Inc
- Fresco – a windowing system
- LBX is a compression and caching scheme
Quellen
- ↑ Keith Packard: "An LBX Postmortem", 2000
Vorlage:Link FA Vorlage:Link FA Vorlage:Link FA Vorlage:Link FA Vorlage:Link FA