Upload
pankraz-heitner
View
108
Download
0
Embed Size (px)
Citation preview
OS
S u
nd
GU
IsÜ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
X W
ind
ow
S
yst
em
Übersicht
Einführung
Motivation
Geschichte
Architektur
Technik
Beispiele
X W
ind
ow
S
yst
em
Einführung
X ist ein– verteiltes– intelligentes– geräteunabhängiges– O/S – unabhängiges
Windowing System
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
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
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)
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
X W
ind
ow
S
yst
em
Architektur II
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
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
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
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)
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
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…
X W
ind
ow
S
yst
em
Widget Toolkits
KDE 3.1KDE 3.1
CDE on Solaris 8CDE on Solaris 8
GNOME 2GNOME 2
X W
ind
ow
S
yst
em
Beispiel GNOME / GTK+
…gleich geht’s weiter
GN
OM
E u
nd
H
CI
Übersicht
Allgemeines
Sicht des Benutzers
Sicht des Entwicklers
Wie gehts weiter
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
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
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
GN
OM
E u
nd
H
CI
Sicht des Benutzers (2)
GN
OM
E u
nd
H
CI
Sicht des Benutzers (3)
„Auto-Apply“
Integration (VFS,
Adressbuch)
Barrierefreiheit
Internationalisierung
(RTL)
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 ...
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 ...
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
GN
OM
E u
nd
H
CI
Sicht des Entwicklers (3)
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)