28
OSS und GUIs Übersicht Allgemeines (Robert) X Window System (Claudius) GTK/GNOME (Robert)

OSS und GUIs Übersicht Allgemeines (Robert) X Window System (Claudius) GTK/GNOME (Robert)

Embed Size (px)

Citation preview

Page 1: OSS und GUIs Übersicht Allgemeines (Robert) X Window System (Claudius) GTK/GNOME (Robert)

OS

S u

nd

GU

IsÜbersicht

Allgemeines (Robert)

X Window System

(Claudius)

GTK/GNOME (Robert)

Page 2: OSS und GUIs Übersicht Allgemeines (Robert) X Window System (Claudius) GTK/GNOME (Robert)

OS

S u

nd

GU

IsAllgemeines

Verteilte Entwicklergemeinde

Unterschiedliche

Interessen

Freie Ideen

Breites Feedback

Immer mehr Firmen

Page 3: OSS und GUIs Übersicht Allgemeines (Robert) X Window System (Claudius) GTK/GNOME (Robert)

X W

ind

ow

S

yst

em

Übersicht

Einführung

Motivation

Geschichte

Architektur

Technik

Beispiele

Page 4: OSS und GUIs Übersicht Allgemeines (Robert) X Window System (Claudius) GTK/GNOME (Robert)

X W

ind

ow

S

yst

em

Einführung

X ist ein– verteiltes– intelligentes– geräteunabhängiges– O/S – unabhängiges

Windowing System

Page 5: OSS und GUIs Übersicht Allgemeines (Robert) X Window System (Claudius) GTK/GNOME (Robert)

X W

ind

ow

S

yst

em

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

Page 6: OSS und GUIs Übersicht Allgemeines (Robert) X Window System (Claudius) GTK/GNOME (Robert)

X W

ind

ow

S

yst

em

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

Page 7: OSS und GUIs Übersicht Allgemeines (Robert) X Window System (Claudius) GTK/GNOME (Robert)

X W

ind

ow

S

yst

em

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)

Page 8: OSS und GUIs Übersicht Allgemeines (Robert) X Window System (Claudius) GTK/GNOME (Robert)

X W

ind

ow

S

yst

em

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

Page 9: OSS und GUIs Übersicht Allgemeines (Robert) X Window System (Claudius) GTK/GNOME (Robert)

X W

ind

ow

S

yst

em

Architektur II

Page 10: OSS und GUIs Übersicht Allgemeines (Robert) X Window System (Claudius) GTK/GNOME (Robert)

X W

ind

ow

S

yst

em

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

Page 11: OSS und GUIs Übersicht Allgemeines (Robert) X Window System (Claudius) GTK/GNOME (Robert)

X W

ind

ow

S

yst

em

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

Page 12: OSS und GUIs Übersicht Allgemeines (Robert) X Window System (Claudius) GTK/GNOME (Robert)

X W

ind

ow

S

yst

em

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

Page 13: OSS und GUIs Übersicht Allgemeines (Robert) X Window System (Claudius) GTK/GNOME (Robert)

X W

ind

ow

S

yst

em

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)

Page 14: OSS und GUIs Übersicht Allgemeines (Robert) X Window System (Claudius) GTK/GNOME (Robert)

X W

ind

ow

S

yst

em

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

Page 15: OSS und GUIs Übersicht Allgemeines (Robert) X Window System (Claudius) GTK/GNOME (Robert)

X W

ind

ow

S

yst

em

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…

Page 16: OSS und GUIs Übersicht Allgemeines (Robert) X Window System (Claudius) GTK/GNOME (Robert)

X W

ind

ow

S

yst

em

Widget Toolkits

KDE 3.1KDE 3.1

CDE on Solaris 8CDE on Solaris 8

GNOME 2GNOME 2

Page 17: OSS und GUIs Übersicht Allgemeines (Robert) X Window System (Claudius) GTK/GNOME (Robert)

X W

ind

ow

S

yst

em

Beispiel GNOME / GTK+

…gleich geht’s weiter

Page 18: OSS und GUIs Übersicht Allgemeines (Robert) X Window System (Claudius) GTK/GNOME (Robert)

GN

OM

E u

nd

H

CI

Übersicht

Allgemeines

Sicht des Benutzers

Sicht des Entwicklers

Wie gehts weiter

Page 19: OSS und GUIs Übersicht Allgemeines (Robert) X Window System (Claudius) GTK/GNOME (Robert)

GN

OM

E u

nd

H

CI

Allgemeines (1)

Freie Software (Open Source)

Firmen: Novell, Red Hat,

Sun

OS: Linux, Unix, OS X

Partnerprojekte

Mozilla, OpenOffice.org

Page 20: OSS und GUIs Übersicht Allgemeines (Robert) X Window System (Claudius) GTK/GNOME (Robert)

GN

OM

E u

nd

H

CI

Allgemeines (2)

GNU: GNU is not UNIX

GPL: General Public License

GIMP: GNU Image Manipulation

Program

GTK: GIMP Toolkit

GNOME: GNU Network Object

Model

Page 21: OSS und GUIs Übersicht Allgemeines (Robert) X Window System (Claudius) GTK/GNOME (Robert)

GN

OM

E u

nd

H

CI

Sicht des Benutzers (1)

Komplette Oberfläche

Einfache Bedienung

Konsistente Bedienung

(HIG)

Einstellungen nur wo

nötig

Richtige Vorgabewerte

Page 22: OSS und GUIs Übersicht Allgemeines (Robert) X Window System (Claudius) GTK/GNOME (Robert)

GN

OM

E u

nd

H

CI

Sicht des Benutzers (2)

Page 23: OSS und GUIs Übersicht Allgemeines (Robert) X Window System (Claudius) GTK/GNOME (Robert)

GN

OM

E u

nd

H

CI

Sicht des Benutzers (3)

„Auto-Apply“

Integration (VFS,

Adressbuch)

Barrierefreiheit

Internationalisierung

(RTL)

Page 24: OSS und GUIs Übersicht Allgemeines (Robert) X Window System (Claudius) GTK/GNOME (Robert)

GN

OM

E u

nd

H

CI

Sicht des Entwicklers (1)

Geschrieben in C

Portabel und effizient

Objektorientierter

Ansatz

Basierend auf GTK

Sprachanbindungen

C++, C#, Java, Perl,

Python ...

Page 25: OSS und GUIs Übersicht Allgemeines (Robert) X Window System (Claudius) GTK/GNOME (Robert)

GN

OM

E u

nd

H

CI

Sicht des Entwicklers (2) HIG (Human Interface

Guidelines)

Mithilfe von Sun

141 Seiten

Genaue Definitionen

Generelle Aspekte:

Farben

Spezielle Aspekte:

Toolbars, Menüs, Buttons,

Abstände ...

Page 26: OSS und GUIs Übersicht Allgemeines (Robert) X Window System (Claudius) GTK/GNOME (Robert)

GN

OM

E u

nd

H

CI

Sicht des Entwicklers (3) Dialoge in XML-Dateien

Glade: „point and klick“

Laden zur Laufzeit

Änderung ohne

Kompilation

Dynamisches Layout

Änderung Fenstergröße,

Sprache

Page 27: OSS und GUIs Übersicht Allgemeines (Robert) X Window System (Claudius) GTK/GNOME (Robert)

GN

OM

E u

nd

H

CI

Sicht des Entwicklers (3)

Page 28: OSS und GUIs Übersicht Allgemeines (Robert) X Window System (Claudius) GTK/GNOME (Robert)

GN

OM

E u

nd

H

CI

Wie gehts weiter

Kooperation mit Mozilla

Plug and Play

Dashboard (http://nat.org)

Storage

(http://gnome.org/~seth)