OSS und GUIs bersicht Allgemeines Robert X Window
OSS und GUIs Übersicht Allgemeines (Robert) X Window System (Claudius) GTK/GNOME (Robert)
Allgemeines Verteilte Entwicklergemeinde OSS und GUIs Unterschiedliche Interessen Freie Ideen Breites Feedback Immer mehr Firmen
Übersicht X Window System Einführung Motivation Geschichte Architektur Technik Beispiele
Einführung X Window System X ist ein – verteiltes – intelligentes – geräteunabhängiges – O/S – unabhängiges Windowing System
X Window System Einführung II X ist ein Windows System für Computer mit Bitmap – Displays Standard bei Linux, Unix und Unixähnlichen System Client-Server Basierend
Motivation X Window System ASCII Terminals – 80 x 24 Zeichen über serielle Verbindung – Ausreichend geringe Datenmenge Graphische Terminals – 512 x 4 bis hin zu heutigen Auflösungen – Zu hohe Netzlast für „full refresh“ Neues Protokoll „X“ – Nicht Bildinhalte schicken – sondern Information, wie Bild aufgebaut werden soll
X Window System Geschichte Konzept erstmalig 1984 am M. I. T Motivation: platform-unabhängiges Grafiksystem um heterogene System zusammenzuführen Versionen – – – X 10 (1986) erste verbreitete Version X 11 (1987) heute noch gültige Release Aktuelle Version: X 11 R 6. 7. 0 Seit 1999: X Org (www. x. org)
Architektur X Window System Client-Server Modell – – Display-Server läuft auf Rechner mit graphischem Display und kommuniziert mit Client Programmen Akzeptiert Request für graphischen Output (Fenster) und sendet User. Input (Tastatur, Maus) zurück Terminologie aus der Sicht des Programms nicht aus der des Benutzers
X Window System Architektur II
X Window System Kommunikation Protokoll zw. Client und Server ist netzwerk-transparent Client und Server können auf gleicher Maschine laufen oder auf verschiedenen – auch verschiedene Hardware und OS. – Beispiel: Simulation auf entferntem Supercomputer berechnen lassen, Anzeige des Ergebnisses auf lokalem Rechner
Services Input Handling X Window System – Tastatur und Maus Eingaben werden an Clients weitergereicht als Events mittels eines Window. Manager Window Services – – – Erstellen und Zerstören von Fenster können hierarchisch angeordnet werden Clients können Information über Fenster anfordern Text und Schriften – – Texte können mit einer bestimmten Schriftart an einer bestimmten Position gerendert werden Clients können Information über Schriftarten anfordern Graphics – Clients können den Server auffordern, pixels, lines, shapes zu zeichnen oder bimap operationen auszuführen
Protokoll X Window System Request – Client request an action or information Reply – Server Reply – Nicht alle Requests generieren Antworten Event – Server schickt Client einen Event – Tastatur, Maus input – Fenster wird bewegt, Grösse geändert etc. Error – Server schickt einen Error wenn Request ungültig ist – Request kommen in Queue daher muss ein Error nicht umgehend geschickt werden
X Display Manager X Window System Hält den Server-Prozess am Leben Connected ihn zu einem physischen Screen Liefert einen Login-Prompt auf diesem Screen Display Manager – XDM („Standard“ Display Manager) – GDM (entwickelt von Gnome Project) – KDM (entwickelt von KDE Project) – wdm (window Maker) – entrance (architecture von enlightenment)
Widget Toolkits X Window System X liefert „Mechanism, not Policy“ Spezifiziert und liefert keine User. Interface Features wie buttons, menüs etc. Wird geliefert von – Window Managern – GUI Widget Toolkits – Desktop Environments
Widget Toolkits II X Window System Frühe GUI Toolkits für X inkludierten – – – Xaw (Athena Widget Set) OLIT (OPEN LOOK Intrinsics Toolkit XView Motif (CDE „Unix Standard“) Tk Neuer Toolkits der letzten Jahre – – Qt (KDE, entwickelt von Trolltech) GTK+ (GNOME, GIMP Tool Kit) wx. Widgets fltk, Fox…
X Window System Widget Toolkits CDE on Solaris 8 GNOME 2 KDE 3. 1
Beispiel GNOME / GTK+ X Window System …gleich geht’s weiter
GNOME und HCI Übersicht Allgemeines Sicht des Benutzers Sicht des Entwicklers Wie gehts weiter
Allgemeines (1) GNOME und HCI Freie Software (Open Source) Firmen: Novell, Red Hat, Sun OS: Linux, Unix, OS X Partnerprojekte Mozilla, Open. Office. org
GNOME und HCI Allgemeines (2) GNU: GNU is not UNIX GPL: General Public License GIMP: GNU Image Manipulation Program GTK: GIMP Toolkit GNOME: GNU Network Object Model
Sicht des Benutzers (1) GNOME und HCI Komplette Oberfläche Einfache Bedienung Konsistente Bedienung (HIG) Einstellungen nur wo nötig Richtige Vorgabewerte
GNOME und HCI Sicht des Benutzers (2)
GNOME und HCI Sicht des Benutzers (3) „Auto-Apply“ Integration (VFS, Adressbuch) Barrierefreiheit Internationalisierung (RTL)
Sicht des Entwicklers (1) GNOME und HCI Geschrieben in C Portabel und effizient Objektorientierter Ansatz Basierend auf GTK Sprachanbindungen C++, C#, Java, Perl, Python. . .
Sicht des Entwicklers (2) HIG (Human Interface Guidelines) GNOME und HCI Mithilfe von Sun 141 Seiten Genaue Definitionen Generelle Aspekte: Farben Spezielle Aspekte: Toolbars, Menüs, Buttons, Abstände. . .
Sicht des Entwicklers (3) GNOME und HCI Dialoge in XML-Dateien Glade: „point and klick“ Laden zur Laufzeit Änderung ohne Kompilation Dynamisches Layout Änderung Fenstergröße, Sprache
GNOME und HCI Sicht des Entwicklers (3)
GNOME und HCI Wie gehts weiter Kooperation mit Mozilla Plug and Play Dashboard (http: //nat. org) Storage (http: //gnome. org/~seth)
- Slides: 28