280 likes | 402 Views
Allgemeines (Robert) X Window System (Claudius) GTK/GNOME (Robert). OSS und GUIs. Übersicht. Verteilte Entwicklergemeinde Unterschiedliche Interessen Freie Ideen Breites Feedback Immer mehr Firmen. OSS und GUIs. Allgemeines. Übersicht. Einführung Motivation Geschichte
E N D
Allgemeines (Robert) X Window System (Claudius) GTK/GNOME (Robert) OSS und GUIs Übersicht
Verteilte Entwicklergemeinde Unterschiedliche Interessen Freie Ideen Breites Feedback Immer mehr Firmen OSS und GUIs Allgemeines
Übersicht • Einführung • Motivation • Geschichte • Architektur • Technik • Beispiele X Window System
Einführung • 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 X Window System
Motivation • ASCII Terminals • 80x24 Zeichen über serielle Verbindung • Ausreichend geringe Datenmenge • Graphische Terminals • 512x512x4 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 • X10 (1986) erste verbreitete Version • X11 (1987) heute noch gültige Release • Aktuelle Version: X11R6.7.0 • Seit 1999: X Org (www.x.org) X Window System
Architektur • 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 X Window System
Services • Input Handling • Tastatur und Maus Eingaben werden an Clients weitergereicht als Events mittels eines Window-Manager • Window Services • Erstellen und Zerstören von Fenstern • 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 X Window System
Protokoll • 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 Window System
X Display Manager • 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) X Window System
Widget Toolkits • 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 X Window System
Widget Toolkits II • 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) • wxWidgets • fltk, Fox… X Window System
Widget Toolkits X Window System CDE on Solaris 8 GNOME 2 KDE 3.1
Beispiel GNOME / GTK+ • …gleich geht’s weiter X Window System
Allgemeines Sicht des Benutzers Sicht des Entwicklers Wie gehts weiter GNOME und HCI Übersicht
Freie Software (Open Source) Firmen: Novell, Red Hat, Sun OS: Linux, Unix, OS X Partnerprojekte Mozilla, OpenOffice.org GNOME und HCI Allgemeines (1)
GNU: GNU is not UNIX GPL: General Public License GIMP: GNU Image Manipulation Program GTK: GIMP Toolkit GNOME: GNU Network Object Model GNOME und HCI Allgemeines (2)
Komplette Oberfläche Einfache Bedienung Konsistente Bedienung (HIG) Einstellungen nur wo nötig Richtige Vorgabewerte GNOME und HCI Sicht des Benutzers (1)
GNOME und HCI Sicht des Benutzers (2)
„Auto-Apply“ Integration (VFS, Adressbuch) Barrierefreiheit Internationalisierung (RTL) GNOME und HCI Sicht des Benutzers (3)
Geschrieben in C Portabel und effizient Objektorientierter Ansatz Basierend auf GTK Sprachanbindungen C++, C#, Java, Perl, Python ... GNOME und HCI Sicht des Entwicklers (1)
HIG (Human Interface Guidelines) Mithilfe von Sun 141 Seiten Genaue Definitionen Generelle Aspekte: Farben Spezielle Aspekte: Toolbars, Menüs, Buttons, Abstände ... GNOME und HCI Sicht des Entwicklers (2)
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 Sicht des Entwicklers (3)
Kooperation mit Mozilla Plug and Play Dashboard (http://nat.org) Storage (http://gnome.org/~seth) GNOME und HCI Wie gehts weiter