X-Window-System

X-Window-System

-WINDOW SystemprogrammierungSystemprogrammierung SS08SS08 Ahlam BEJJATI E- Mail: [email protected] Mustafa KADI E- Mail: [email protected] 03.06.08 -WINDOW GliederungGliederung ➢ 1. Einleitung ➢ 2. Geschichte ➢ 3. Einführung in Xlib ➢ 4. Toolkits ➢ 5. X-Display Manager ➢ 6. X-Window Manager ➢ 7. Client-Server Prinzip ➢ 8. Vor- und Nachteile ➢ 9. Live-Demo mit X-Win32 -WINDOW 1.1. EinleitungEinleitung Was ist das X-Window-System? ➢ System mit dem Grafische Benutzeroberflächen für Unixsysteme entwikelt werden können ➢ Wichtigste Komponenten X-Server X-Client X-Protokoll Xlib-Routinen 03.06.08 -WINDOW ➢ Netzwerktransparenz ➢ Client-Server-System ➢ Portierbarkeit 03.06.08 -WINDOW 2.2. GeschichteGeschichte ➢ Entwicklung begann 1984 am MIT(Projekt Athena) ➢ Die Sponsoren des Projektes waren IBM, MIT und die DEC (Digital EquipmentCorporation) 03.06.08 -WINDOW ➢ 1985 erschien die 10. Version. Diese wurde gegen eine geringe Gebühr vertrieben. ➢ 1987 Entwicklung der 11. Version die dann als Standard eingeführt wurde. Gründung des X- Konsortiums ➢ 1994 hat die Open Group die Entwicklung übernommen 03.06.08 -WINDOW Programmierung mit der Xlib ➢ Bibliothek die die Routinen beinhaltet, die zur Entwicklung einer Anwendung für X benötigt werden. ➢ C wird in der Regel als Programmiersprache verwendet ➢ Die Xlib besitzt eine niedrige Funktionalität 03.06.08 -WINDOW Im wesentlichen dient die Xlib: ➢ Der Erzeugung von Fenstern ➢ Dem Zeichnen einfacher Objekte ➢ Dem Übertragen von Maus- und Tastaturereignissen vom server an den Client 03.06.08 -WINDOW Xlib-Xlib- FunktionenFunktionen ➢ XopenDisplay() ➢ XcreateSimpleWindow() ➢ XmapWindow() ➢ Xflush() ➢ XcloseDisplay() 03.06.08 #include <stdio.h> #include <unistd.h> #include <X11/Xlib.h> int main(int argc, char *argv[]){ Display *dpy; Window win; if ((dpy = XOpenDisplay(NULL)) == NULL){ printf("Unable to open display\n"); return 1; } win = XCreateSimpleWindow(dpy, DefaultRootWindow(dpy), 0, 0, \ 400, 300, BlackPixel(dpy, DefaultScreen(dpy)), 0, WhitePixel(dpy, DefaultScreen(dpy))); XMapWindow(dpy, win); Xflush(dpy); return 0; } 03.06.08 file:///E:/7.Semester/Systemprogrammierung/Projekt/Präsentation/tux.png file:///E:/7.Semester/Systemprogrammierung/Projekt/Präsentation/180px-X11.svg.png -WINDOW 03.06.08 -WINDOW Xlib Events ➢ Ein Event ist eine Nachricht vom Server an den Client bei der dieser über ein bestimmtes Ereignis informiert wird ➢ Events können u.a Betätigen der Maus oder Tastatur sein ➢ Eventschleifen spielen hierbei eine wichtige 03.06.08 Rolle -WINDOW Eventschleife static void eventschleife(void){ XEvent event; int anzahl_event; anzahl_events = XPending (display); while ((anzahl_events > 0){ anzahl_events-- XNextEvent (display, &event); } } 03.06.08 -WINDOW Xlib Grafik ➢ Die Xlib stellt Zeichenfunktionen zur Verfügung mit denen Objekte wie punkte, Linien oder Kreise gezeichnet werden können 03.06.08 -WINDOW ➢ XdrawPoint() ➢ XdrawLine() ➢ XdrawArc() ➢ XdrawRectangle() 03.06.08 -WINDOW Über 200 Zeilen Code 03.06.08 -WINDOW Toolkits ➢ Toolkits sind GUI-Bibliotheken ➢ Entwicklung von Grafischen Oberfläche auf einer höheren Ebene als der Xlib ➢ Die meistverwendetsten Toolkits unter X- Window sind Motif,Qt und GTK 03.06.08 -WINDOW QT-Bibliothek ➢ C++ wird hauptsächlich als Programmiersprache verwendet ➢ Qt enthält Klassen für alle wichtigen grafischen Eingabeelemente und Klassen für den Zugriff auf angeschlossene Hardware ➢ Qt diente als Grundlage für die Entwicklung von KDE 03.06.08 -WINDOW KDE-Applikation KDE-Bibliothek QT-Bibliothek Xlib-Bibliothek X-Server 03.06.08 -WINDOW GTK ➢ GTK wurde in C geschrieben ➢ Anwendungen können in C entwickelt werden oder auch ➢ GTK diente u.a. als Vorlage für die Entwicklung von GNOME 03.06.08 -WINDOW 5.5. X-DisplayX-Display ManagerManager ➢ optionale Komponente des X-Window Systems ➢ verwaltet Sitzungen 03.06.08 -WINDOW ➢ grafische Anmeldemaske wird zur Verfügung gestellt 03.06.08 -WINDOW ➢ Einstellung des zu verwendenden Desktop- Environments ➢ Alternative zum XDM => KDM , GDM, WDM 03.06.08 -WINDOW 6.6. X-WindowX-Window ManagerManager ➢ ist ein gewöhnlicher Clientprozess ➢ Kontakt zu X-Servern sowie zu allen anderen Clientanwendungen auch 03.06.08 -WINDOW ➢ Funktion von X auch theoretisch ohne Window Manager ➢ der Window-Manager ist für das typische Look & Feel verantwortlich 03.06.08 -WINDOW ➢ optische Konfiguration über Startupfile (z.B. KDE, GNOME ...) 03.06.08 -WINDOW Zudem gibt es eine Reihe verschiedener Window Manager: ➢ Mwm - Motif Window Manager ➢ Twm, tvtwm - Tab Window Manager ➢ Olwm - Open Look Window Manager ➢ 4Dwm - IRIS Extended mwm ➢ Gwm,vuewm - sonstige 03.06.08 -WINDOW ➢ Window Manager => einzeln in Aktion ➢ Alten Window Manager abschiessen, neuen starten ➢ UNIX-Kommando kill oder Befehl zap z.B. zap mwm 03.06.08 -WINDOW Ein Fenster zu erstellen, ist im Prinzip recht einfach und lässt sich mit folgenden Schritten realisieren: 1. Eine Verbindung zum X-Server herstellen 2. Die Umgebung überprüfen 3. Das Fenster erzeugen 4. Das Fenster anzeigen 5. Das Fenster schließen und wieder freigeben 03.06.08 -WINDOW 7.7. Client-ServerClient-Server PrinzipPrinzip ➢ das X-Protokoll definiert eine Client-Server- Beziehung zwischen der Anwendung und seiner Darstellung ➢ der Server kümmert sich um die Darstellung ➢ der Client kümmert sich um das Dargestellte 03.06.08 -WINDOW ➢ X-Window System => Unterteilung des X- Servers in geräteabhängigen bzw geräteunabhängigen Teil ➢ Verdeckung des hardwerspezifischen Details und Besonderheiten des Betriebssytems 03.06.08 -WINDOW ➢ physische Kontrolle Bildschirm, Tastatur, Maus => X-Server ➢ Kommunikation Client-Server => X-Protokoll ➢ TCP/IP und DECnet 03.06.08 -WINDOW Client-Server Beispiel 03.06.08 -WINDOW Funktionsweise des X-Servers 03.06.08 -WINDOW Funktionsweise des X-Clients 03.06.08 -WINDOW Das X-Protokoll unterscheidet drei Arten von Nachrichten, die der Server an einen Client übermitteln kann: ➢ Reply 03.06.08 -WINDOW ➢ Event 03.06.08 -WINDOW ➢ Error 03.06.08 -WINDOW 8.8. Vor-Vor- undund NachteileNachteile ➢ X-System Konzept von Anfang an für den effizienten Netzwerkbetrieb ➢ Kommunikation über standardisiertem Protokoll 03.06.08 -WINDOW ➢ Quellcode ist zwar objektorientiert aber dennoch in C geschrieben ➢ X-System ist im Vergleich zu aktuellen MS- Versionen kein Betriebssystem 03.06.08 -WINDOW Folgendes ist durch den hierarchischen Aufbau des X-Systems möglich: ➢ Mehrere Bildschirm-Arbeitsplätze an einem X-Server ➢ X-Server kann in einem anderen X-Server laufen gelassen werden ➢ Hard- und Softwareunabhängige Bedienung 03.06.08 -WINDOW ➢ Start von X-Anwendung => langsam ➢ reduzierter Datentransfer ➢ resourceaufwändiger X-Server -WINDOW 9.9. Live-DemoLive-Demo X-Win32X-Win32 ➢ Leistungsstarker X-Server für die Windows- Plattform ➢ Zugriff auf unix-basierte Anwendungen sowie für x-server basierte Windows-Programme ➢ 30-tägige Demoversion 03.06.08 -WINDOW ➢ Nach der Installation X-Config aufrufen 03.06.08 -WINDOW ➢ X-Win32-Sitzungassistent starten und XDMCP (X display manager control protocol) wählen 03.06.08 -WINDOW ➢ Broadcast als Verbindungsmethode 03.06.08 -WINDOW ➢ X-WINDOW starten 03.06.08 -WINDOW ➢ Ergebnis aus dem Broadcast-Scan 03.06.08 -WINDOW ➢ Erlaubnis zum Verbindungsaufbau 03.06.08 -WINDOW ➢ Remote-Desktopverbindung X-Server 03.06.08 -WINDOW Quellen: http://www.openbsd.org/faq/de/faq11.html http://www.freebsd.org/doc/de/books/handbook/x11.html http://unix-docu.uibk.ac.at/zid/software/unix/x/x11.html http://wwwcip.informatik.uni-erlangen.de/old/tree/CIP/Manuals/xwin/ http://ara.informatik.tu-freiberg.de/vorlesungen/MurX/ http://gd.tuwien.ac.at/opsys/linux/tut/LinuxFibel/xcliserv.htm http://de.wikipedia.org/wiki/X_Window_System http://www.pronix.de www.eggdrop.ch/texts/xlib/ X Window Systemprogramming (Naba Barkalati) Das Benutzerhandbuch zum X Window System (Niall Mansfield) Einführung in das X Window System (Oliver Jones) Linux-Unix-Programmierung (Jürgen Wolf) 03.06.08 -WINDOW VielenVielen DankDank fürfür diedie Aufmerksamkeit!Aufmerksamkeit! 03.06.08.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    52 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us