IT-Academy Logo
Sign Up Login Help
Home - Betriebssysteme - Linux - Anwendungssoftware - X-Windows Grundlagen



X-Windows Grundlagen

die grundlagen des X-window systems werden erklaert


Autor: Franz Schaefer (mond)
Datum: 23-01-2002, 19:30:03
Referenzen: man X
http://www.linuxworld.com/site-stories/2001/1018.tco.html
Schwierigkeit: Anfänger
Ansichten: 4473x
Rating: Bisher keine Bewertung.

Hinweis:

Für den hier dargestellte Inhalt ist nicht der Betreiber der Plattform, sondern der jeweilige Autor verantwortlich.
Falls Sie Missbrauch vermuten, bitten wir Sie, uns unter missbrauch@it-academy.cc zu kontaktieren.

[Druckansicht] [Als E-Mail senden] [Kommentar verfassen]



Übersicht

jetzt haben wir schon realtiv lange nur command line befehle gemacht.
heute wollen wir uns mal der grafischen oberflaeche widmen.

die grafsiche oberflaeche von unix heisst X11 oder auch "X-Window System"
oder auch oft "x-windows" genannt oder blos X genannt.

X ist schon etwa 15 bis 20 jahre alt also aelter als microsoft windows
oder die apple oberflaeche.
X hat dennoch gegenueber diesen systemen einige vorteile:

* X ist und war vollkommen und von anfang an netzwerktransparent.
netzwerktransparent heisst dass ein programm auf computer A laufen kann
und seine anzeige aber auf computer B ausgiebt. oder umgekehrt.

der teil der die X anzeigeoberflaeche zur verfuegung gestellt wird wird
als "X server" bezeichnet. die programme die diesen "X server" benutzen um
sich selbst darzustellen werden als "X clients" bezeichnet.

auf den meisten workstations laueft ueblicherweise der X server und X
clients am selben computer was auch geht. aber wie gesagt: nicht notwendig
ist. du kannst sowohl auf deinem laptop programme anzeigen die auf anderen
computern laufen als auch umgekehrt programme laufen lassen die ihre
anzeige woanders haben. (bei text orientierten programmen die in einem
einfachten telnet oder ssh laufen geht das natuerlich ohnehin immer ohne
probleme.. aber mit X11 gilt das auch fuer grafische programme.. also
z.b. xdvi, xterm, gimp, netscape, ... )

der X server der ueblicheweise im linux verwendet wird ist der freie
"XFree86" X-server. es gibt aber auch komerzielle X server. es gibt sogar
X server fuer m$-windows damit kann man unix programme via netz auf
windows anzeigen. (z.b.: eXceed - ist aber sehr teuer.. MI/X ist gratis
aber nicht frei aber nicht besonders gut. auf win2000 laeuft angeblich
aber schon eine version des XFree86)

neben eigenen workstations gibt es auch noch reine "x-terminals" die
parktisch keine eigenen programme laufen haben sondern nur als
anzeigeflaeche fuer einen zentralen applikationsserver dienen. damit
solche terminals direkt via X einloggen koennen laeuft auf den servern ein
programm namens "xdm" (fuer "x display manager").

die netzwerktransparenz des X11 erlaubt es daher dass man in groesseren
firmen netzen programme nur einmal auf zentralen servern installieren muss
und die stehen allen usern zur verfuegung. das spart wesentlich
wartungskosten.

* X bietet trennung von anzeigeoberflaeche und windowmanager. der window
manager ist im prinzip auch nur ein ganz normales client programm. der
window manager ist das programm das dir erlaubt die fenster am bildschirm
herumzuschieben, das den fenstern oben einen balken zeichnet... das
programm das dir 4 virtuelle bildschirme zur verfuegungstellt..etc..etc..

die gebraeuchlichsten windowmanager sind:

icem - ein sehr guter und vorallem auch fuer angaenger praktischer window
manager. andere sind:

afterstep - dem look & feel von nextstep nachempfunden. das ist der window
manager den ich am oeftersten verwende. recht huebsch. gut mit der
tastatur zu bedienen und hat einen guten "pager" (ein kleines mini
fenster in dem man seinene ganzen desktop sieht..)

windowmaker - aehnlich wie afterstep

enlightenment - faellt eher unter "eye candy". extrem gut gestylt aber
funktion ist noch nicht ganz da.. wird aber schoen langsam.

sawmill - ein neuere moderner relativ leistungsfaehger windowmanager.

fvwm, fvwm2 sehr einfache speicherschonende window manager..
fvwm95 so wie fvwm2 nur im windows95 look.

twm, olwm sehr spartanische aeltere unix window manager dafuer aber
speichersparend und schnell....

kde bringt einen eigenen windowmanager (kwm) mit.

etc..etc..etc..

bei den meisten distributionen kannst du verschiedene windowmanager
wechseln.

bis jetzt hatten wir eher vorteile. jetzt zu einem kleinen nachteil von X
gegenueber anderen grafischen oberflaechen:

* das X11 selbst stellt nicht nur keinen window manager zur verfuegung
sondern auch keine moeglichkeiten fuer dialog fenster, file auswahl, etc,
etc.. d.h. jedes X11 faehige programm muss all diese faehigkeiten aufs
neue selbst implementieren. damit sehen diese sachen natuerlich bei jedem
X programm anders aus und funktionieren etwas anders etc.. das traegt
leider nicht gerade dazu bei dem anwender ein gefuehl einer konsistenten
benutzeroberflaeche zu geben... ausserdem ist es fuer den programmierer
zeitaufwendig diese sachen jedes mal selbst programmieren zu muessen.
daher haben sich im laufe der zeit doch einige sogenannte "toolkits"
herausgebildet. hier die wichtigsten:

- athena widgets. eine ziemlich alte und eher primitive bibliothek. stellt
"flache" 2 dimensionale schlaftflaechen zur verfugung. beispiele
dafuer waeren:

xman oder xcalc

- xview/openlook: z.b. der CD player "workman"

- motif. motif ist leider noch immer nicht wirklich frei und war lange
zeit nur hochkomerziell. war urspruenglich als gegenschlag
komerzieller unix firmen gegen windows gedacht. weil es nicht frei
ist und auch extrem haesslich wie ich finde wird es kaum noch fuer
open source projekte eingesetzt: beispiel: netscape

- Tk (fuer toolkit) beispiele: tkman, tkrat, tkxplanet, tkdiff, ..

alle die obigen "took kits" stellen aber leider viel zuwenig funktionen
zur verfuegung.. um microsoft wirklich im bezug auf eine konsistente desktop
oberflaeche paroli bieten zu koennen und das nach moeglichkeit mit freier
software wurde zuerst das KDE (fuer K desktop environment) und kurz daruf
GTK/GNOME gegruendet. beide projekte haben sich das ziel gesetzt eine
konsistente dekstopumgebung zu schaffen.

- KDE basiert auf dem Qt (sprich: cu-te) toolkit der norwegischen firma
trolltech. da Qt am anfang nicht ganz frei war gab es kritik an dem
projekt. viele leute waren (wie ich finde zurecht) der meinung dass
man als eckstein einer freien desktop umgebung nicht ein programm
verwenden duerfe dass nicht wirklich frei ist.. man macht sicht
damit sehr abhaengig.. KDE hat auch einen eigenen window manager den
"kwm" aber KDE programme laufen natuerlich auch mit jedem anderen
window manager. siehe: www.kde.org
inzwischen ist aber KDE auch schon frei und es spricht nichts gegen
den einsatz von KDE am desktop (ausser dass es eventuell etwas
resourcenhungrig ist..)

weil Qt am anfang nicht frei war wurde das GTK/GNOME projet ins leben
gerufen.

- GTK ist das toolkit und GNOME heisst die desktop umgebung. beispiele:
abiword, gnumeric, dia, gimp, etc..etc..etc..

ok. nach soviel theorie noch ein paar praktische uebungen:

zuerst:

wenn du

xterm &

machst startest du ein neues xterm. (der & ist sinnvoll weil du das programm
ja eh ueber die grafische oberflaeche bedinest damit hast du dann das
terminal wieder frei..)

analog kannst du: xclock & oder xcalc &
oder gimp &
etc..etc..etc. starten.

echo $DISPLAY

eintippst siehst du auf welchen bildschirm die anzeige gerade ausgegeben
wird. der erste X server auf deinem lokalen computer hat den namen :0.0
(DISPLAY ist eine environmentvariable die von allen X programmen benutzt
wird.)

will man anzeigen auf andere computer machen kann man z.b. schreiben:

export DISPLAY=mond.at:10.0

das wuerde versuchen die anzeige auf das display nummer 10 auf der mondbasis
zu legen. da du dazu vermutlich kein recht hast und auf der mondbasis gar
keine grafisch oeber flaeche laeuft geht das natuerlich nicht. aber
umgekehrt gehts. wenn du z.b:

ssh -X irgendwo.at

machst (-X schaltet X11 weiterleitung ein)
und dann dort:

xterm &

oder xbiff &

machst startest du direkt programme auf einem anderen rechner die ihre
anzeige zu dir umleiten (das ssh setzt dir die DISPLAY variable
freundlicherweise gleich richtung und ausserdem stopft es all die X
netzwerk uebertragungen in einen verschluesselten tunnel..)

X programme ueber langsame netzerwerke wie telekabel geht natuerlich nicht
besonders schnell. X ist eher fuer lokale netzwerke gedacht. es gibt aber
proxys die den X datenverkehr etwas komprimieren.

zum herumspielen mit X servern ist auch das programm Xnest oft sehr
praktisch. wenn du z.b.:

Xnest :1.0 &

startetst so bekommst du einen Xserver der in einem eigenen fenster in
deinem jetztigen X laueft und auf addresse :1.0 erreichbar ist.

du koennstest dorthin z.b. ein xterm hinlegen:

xterm -display :1.0 &

und dort drinnen dann einen eigenen windowmanager starten...

Xnest :1.0 -query irgend.ein.server.auf.dem.xdm.laeuft.at

wuerde einen Xserver starten der versucht ein login fenster von einem
anderen computer zu bekommen.

EXERCISES:

* erklaere den uneterschied: X-client. X-server. windowmanager.

* was versteht man unter einem x-terminal ?

* was sind die vorteile der netzwerktransparenz?

* versuche auf deinem X11 desktop grafische X programme von anderen
computern anzuzeigen.

_______________________________________________
CD ist ein service von SILVER SERVER
der inhalt unterliegt der GFDL
_______________________________________________



[back to top]



Userdaten
User nicht eingeloggt

Gesamtranking
Werbung
Datenbankstand
Autoren:04506
Artikel:00815
Glossar:04116
News:13565
Userbeiträge:16552
Queueeinträge:06243
News Umfrage
Ihre Anforderungen an ein Online-Zeiterfassungs-Produkt?
Mobile Nutzung möglich (Ipone, Android)
Externe API Schnittstelle/Plugins dritter
Zeiterfassung meiner Mitarbeiter
Exportieren in CSV/XLS
Siehe Kommentar



[Results] | [Archiv] Votes: 1142
Comments: 0