-WINDOW - cs.hs-rm.deweber/sysprog/proj08/xwindow.pdf · -WINDOW Systemprogrammierung SS08 Ahlam...
Transcript of -WINDOW - cs.hs-rm.deweber/sysprog/proj08/xwindow.pdf · -WINDOW Systemprogrammierung SS08 Ahlam...
-WINDOWSystemprogrammierung SS08Systemprogrammierung SS08
Ahlam BEJJATI E- Mail: [email protected] BEJJATI E- Mail: [email protected] Mustafa KADI E- Mail: [email protected] Mustafa KADI E- Mail: [email protected]
03.06.0803.06.08
-WINDOWGliederungGliederung
➢ 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
-WINDOWWas 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
1. Einleitung1. Einleitung
03.06.0803.06.08
-WINDOW➢ Netzwerktransparenz
➢ Client-Server-System
➢ Portierbarkeit
03.06.0803.06.08
-WINDOW2. Geschichte2. Geschichte
➢ Entwicklung begann 1984 am MIT(Projekt Athena)
➢ Die Sponsoren des Projektes waren IBM, MIT und die DEC (Digital EquipmentCorporation)
03.06.0803.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.0803.06.08
-WINDOW
➢ 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
Programmierung mit der Xlib
03.06.0803.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.0803.06.08
-WINDOW
➢ XopenDisplay()➢ XcreateSimpleWindow()➢ XmapWindow()➢ Xflush()➢ XcloseDisplay()
Xlib- FunktionenXlib- Funktionen
03.06.0803.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.0803.06.08
-WINDOWfile:///E:/7.Semester/Systemprogrammierung/Projekt/Präsentation/180px-X11.svg.png
file:///E:/7.Semester/Systemprogrammierung/Projekt/Präsentation/tux.png
03.06.0803.06.08
-WINDOW
03.06.0803.06.08
➢ 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 Rolle
Xlib Events
-WINDOW
03.06.0803.06.08
static void eventschleife(void){XEvent event;int anzahl_event;anzahl_events = XPending (display);while ((anzahl_events > 0){ anzahl_events-- XNextEvent (display, &event); }}
Eventschleife
-WINDOW
➢ Die Xlib stellt Zeichenfunktionen zur Verfügung mit denen Objekte wie punkte, Linien oder Kreise gezeichnet werden können
Xlib Grafik
03.06.0803.06.08
-WINDOW
➢ XdrawPoint()➢ XdrawLine()➢ XdrawArc()➢ XdrawRectangle()
03.06.0803.06.08
-WINDOWÜber 200 Zeilen Code
03.06.0803.06.08
-WINDOW
➢ 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
Toolkits
03.06.0803.06.08
-WINDOW
➢ 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
QT-Bibliothek
03.06.0803.06.08
-WINDOW
KDE-Applikation
KDE-Bibliothek
QT-Bibliothek
Xlib-Bibliothek
X-Server03.06.0803.06.08
-WINDOW
➢ 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
GTK
03.06.0803.06.08
-WINDOW
03.06.0803.06.08
5. X-Display Manager5. X-Display Manager
➢ optionale Komponente des X-Window Systems
➢ verwaltet Sitzungen
-WINDOW
03.06.0803.06.08
➢ grafische Anmeldemaske wird zur Verfügung gestellt
-WINDOW
03.06.0803.06.08
➢ Einstellung des zu verwendenden Desktop-Environments
➢ Alternative zum XDM => KDM , GDM, WDM
-WINDOW
03.06.0803.06.08
6. X-Window Manager6. X-Window Manager
➢ ist ein gewöhnlicher Clientprozess➢ Kontakt zu X-Servern sowie zu allen anderen
Clientanwendungen auch
-WINDOW
03.06.0803.06.08
➢ Funktion von X auch theoretisch ohne Window Manager
➢ der Window-Manager ist für das typische Look & Feel verantwortlich
-WINDOW
03.06.0803.06.08
➢ optische Konfiguration über Startupfile (z.B. KDE, GNOME ...)
-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.0803.06.08
-WINDOW
03.06.0803.06.08
➢ Window Manager => einzeln in Aktion➢ Alten Window Manager abschiessen, neuen
starten➢ UNIX-Kommando kill oder Befehl zap
z.B. zap mwm
-WINDOW
03.06.0803.06.08
Ein Fenster zu erstellen, ist im Prinzip recht einfach und lässt sich mit folgenden Schrittenrealisieren:
1. Eine Verbindung zum X-Server herstellen2. Die Umgebung überprüfen3. Das Fenster erzeugen 4. Das Fenster anzeigen5. Das Fenster schließen und wieder freigeben
-WINDOW
03.06.0803.06.08
-WINDOW
03.06.0803.06.08
7. Client-Server Prinzip7. Client-Server Prinzip
➢ 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
-WINDOW
03.06.0803.06.08
➢ X-Window System => Unterteilung des X-Servers in geräteabhängigen bzw geräteunabhängigen Teil
➢ Verdeckung des hardwerspezifischen Details und Besonderheiten des Betriebssytems
-WINDOW
03.06.0803.06.08
➢ physische Kontrolle Bildschirm, Tastatur, Maus => X-Server
➢ Kommunikation Client-Server => X-Protokoll➢ TCP/IP und DECnet
-WINDOW
03.06.0803.06.08
Client-Server Beispiel
-WINDOW
03.06.0803.06.08
Funktionsweise des X-Servers
-WINDOW
03.06.0803.06.08
Funktionsweise des X-Clients
-WINDOW
03.06.0803.06.08
Das X-Protokoll unterscheidet drei Arten von Nachrichten, die der Server an einen Client übermitteln kann:
➢ Reply
-WINDOW
03.06.0803.06.08
➢ Event
-WINDOW
03.06.0803.06.08
➢ Error
-WINDOW
03.06.0803.06.08
-WINDOW
03.06.0803.06.08
8. Vor- und Nachteile8. Vor- und Nachteile
➢ X-System Konzept von Anfang an für den effizienten Netzwerkbetrieb
➢ Kommunikation über standardisiertem Protokoll
-WINDOW
03.06.0803.06.08
-WINDOW
03.06.0803.06.08
➢ Quellcode ist zwar objektorientiert aber dennoch in C geschrieben
➢ X-System ist im Vergleich zu aktuellen MS-Versionen kein Betriebssystem
-WINDOW
03.06.0803.06.08
-WINDOW
03.06.0803.06.08
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
-WINDOW
➢ Start von X-Anwendung => langsam➢ reduzierter Datentransfer➢ resourceaufwändiger X-Server
-WINDOW
03.06.0803.06.08
9. Live-Demo X-Win329. Live-Demo X-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
-WINDOW
03.06.0803.06.08
➢ Nach der Installation X-Config aufrufen
-WINDOW
03.06.0803.06.08
➢ X-Win32-Sitzungassistent starten und XDMCP (X display manager control protocol) wählen
-WINDOW
03.06.0803.06.08
➢ Broadcast als Verbindungsmethode
-WINDOW
03.06.0803.06.08
➢ X-WINDOW starten
-WINDOW
03.06.0803.06.08
➢ Ergebnis aus dem Broadcast-Scan
-WINDOW
03.06.0803.06.08
➢ Erlaubnis zum Verbindungsaufbau
-WINDOW
03.06.0803.06.08
➢ Remote-Desktopverbindung X-Server
-WINDOWQuellen:
http://www.openbsd.org/faq/de/faq11.htmlhttp://www.freebsd.org/doc/de/books/handbook/x11.htmlhttp://unix-docu.uibk.ac.at/zid/software/unix/x/x11.htmlhttp://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.htmhttp://de.wikipedia.org/wiki/X_Window_Systemhttp://www.pronix.dewww.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.0803.06.08
-WINDOW
Vielen Dank für die Vielen Dank für die Aufmerksamkeit!Aufmerksamkeit!
03.06.0803.06.08