Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » GNU/Linux » Fragen zum X-server

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ] [ 3 ]
000
15.07.2003, 11:50 Uhr
Dirk22



Hi,

ich habe ein paar Fragen rund um den X-Server.

1) Ich schreibe jetzt mein bisheriges Verständnis über den X-Server und Qt kurz auf. Es wäre mir wichtig zu wissen, ob mein Verständnis darüber korrekt ist.

Der X-Server kan Grafik darstellen. Er wird unter SuSE mit dem Programm SaX2 bzw. Xfree86 konfiguriert.
KDE, Gnome, ... sind die Clients. Sie müssen den X-Server über die Xlib ansprechen, um ihm mitteilen zu können, was dargestellt werden soll. Heutzutage spricht der Client nicht mehr direkt die Xlib an, sondern die Schnittstelle Qt. Diese vereinfacht den Zugriff auf die Xlib.

Client(z.B. KDE,Gnome)->Qt-API->Xlib->XServer

2) Ist es möglich auf einem Rechner mit einer Grafikkarte und einem Monitor mehrere Clients, d.h. z.B. KDE und Gnome gleichzeitig auf einem XServer laufen zu lassen. Dann könnte man z.B. KDE mit Alt+F7 und Gnome mit Alt+F8 ansprechen. Wenn dies möglich ist, wie? Falls nicht, warum?

3) Kann man mehrere X-Server auf einem Rechner mit einer Grafikkarte und einem Monitor starten?

4) Beim Booten von SuSE hat man schon einen grafischen Hintergrund. Wie ist das möglich, wenn doch der XServer anfangs noch nicht gestartet ist?

5) Gibt es nur Programme für X, d.h. jedes Programm welches unter KDE läuft, würde auch unter jedem anderen Windowmanager laufen. Oder gibt es speziell Programme, welche nur unter KDE, oder nur unter Gnome, ... laufen?

Die Antworten auf diese Fragen würden mich wirklich sehr interessieren.

Vielen Dank im Voraus

Dirk
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
15.07.2003, 12:22 Uhr
0xdeadbeef
Gott
(Operator)


Zu 1: Gnome unterhält sich nicht über Qt, sondern über GTK mit dem X-Server, aber ansonsten richtig. Die ganzen Verhältnisse sind allerdings ein bisschen komplizierter, ich würd mal google dazu ausfragen.

2. Nicht auf einem X-Server, da kriegen sich die Windowmanager in die Haare. Was aber geht, ist, einen zweiten X-Server zu starten, der völlig unabhängig vom ersten läuft und auf dem dann auch eine andere Desktop Environment laufen kann. Siehe 'man startx' für Details.

3. siehe 2.

4. Über den Framebuffer. Das ist eine andere Kernel-Schnittstelle zur Grafikkarte, die deutlich einfacher gestrickt ist als der X-Server und dementsprechend weniger kann. Zum Darstellen von Grafik reicht es aber gerade noch aus.

5. Die Programme laufen unter beliebigen Windowmanagern. Es wäre wohl möglich, Programme zu schreiben, die nur unter bestimmten Windowmanagern laufen, aber wenn man es nicht drauf anlegt, laufen die Dinger unter allen Umgebungen. Allerdings kann es dir passieren, dass Programme unter einem anderen Windowmanager mehr Ressourcen verbrauchen. Gerade bei KDE-Programmen passiert das gerne, weil die sich die ganze KDE-Library dazuladen. Wenn die vorher noch nicht geladen ist - e.g. es läuft Gnome - frißt das Programm erstmal ein paar MB Speicher und braucht ein bisschen, um hochzukommen.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
15.07.2003, 19:37 Uhr
Pablo
Supertux
(Operator)


Also, deadbeef hat quasi alles gesagt. Zu 1, 2 und 3 würde ich das gleiche sagen. Du kannst natürlich mehrere X Server starten, die voneinander unabhängig laufen. Das ist nämlich das tolle an den X Server!!! Ob man das mit nur einer Graphik Karte machen kann, weiß ich wirklich nicht, aber ich glaube, dass es möglich ist, denn jeder X Server einen Namen hat. Der default X Server heißt :0.0 und wenn du mehrere hast, dann :1.0, usw. Also nehme ich deshalb an, dass man mit nur einer Karte mehrer X Server starten kann.

4. Genau wie deadbeef sagte

5. Der Window Manager ist die "Schnittstelle", mit der ein Programm sich mit dem X-Server komuniziert. DIe ganzen Eigenschaften der Fenster, d.h. Rahmen, Buttons, Anzahl der Buttons, (ich meine dir für maximizieren, M#minimizieren, usw.), Lage der Button, und all diese Sachen werden nicht vom Programmier gemacht, sondern vom dem entsprechenden Window Manager. Du kannst natürlich ein anderes Loggin Fenster starten (die sind in /etc/??? keine Ahnung wo, aber mit Yast2 konfigurierbar) und dann kannst du User eingeben, Passwort eingeben und statt OK zu drücken F1 drücken. Da startet nämlich nur eine Shell und dann kannst du die window Manager starten. Wenn du Programmen aufrufst ohne einen window Manager gestartet zu haben, dann haben diese Programmen keine Rahmen, keine Icons, keine Buttons, usw.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
16.07.2003, 10:54 Uhr
virtual
Sexiest Bit alive
(Operator)


Kleine (?) Anmerkung:
Generell muß man verstehen, daß das X System komplett anders arbeitet, als zB die GUI von Windows: X ist eine Netzwerkbasierte Angelegenheit, dh die X Requests (wie zB "MalMirEinFenster" == XCreateWindow) werden an den X Server gesendet, der irgendwo im Netz steht. Bei einfachen Workstations wird das in der Regel der einge Rechner sein. Prinzipiell funktioniert es aber so: Ein Request wird an ein Socket geschickt, der Server hat nen Listener an diesem Socket und sendet eben seine Response.
Bekanntlich benötigen UDP und TCP Sockets (die hier zum Einsatz kommen) eine Kombination aus IP-Addresse und Portnummer. Für X sind die TCP/UDP Ports 6000-6063 reserviert, wenn ich mich recht entsinne.
Ein X Server kann nun verschiedene Displays verwalten, bis zu 64. Das 1. Display wird über port 6000 abgefackelt, das letzte über Port 6063. Ein Display besteht aus 1-N Screens (ich meine hier auch eine Limitierung von 64 in erinnerung zu haben, kann aber auch mehr sein) sowie dazu passend Input devices (Maus, tastatur...). Unter einem Display kann man sich also eine harwareeinheit vorstellen, der 1-N Monitore(Screeens) sowie Maus+Tastatur besitzt.

Aus diesem Zusammenhang folgt zunächst mal, daß es wenig Sinn macht, mehrere X Server aufzusetzen (das dürfte auch zu Problemen führen!), wenn man mehere Graphikkarten besitzt: Ein X Server kann mehrere Screens auf einem Display ansprechen. Man muß es eben "nur" korrekt configurieren.

Um einem X Server mitzuteilen, wo er denn die Ausgabe machen und die Eingaben erwrten soll, muß man einen Displayname Spezifizieren. Dieser hat oft (nicht immer!) das Format "hostrechner:displaynummer.screennummer". hostrechner bezeichnet den Rechner, wo der Server zu hause ist. Wird der leer gelassen, wird gemäß spezification der Server genommen, von dem erwartet wird, daß er am Performantesten ist (bei Linux Installation mit eigenem X Server also der lokale). Displayname gibt eben die Hardwareeinheit an (dies kann eben ein PC sein, der eine eigene CPU hat, aber eben auch eine logische Einheit von Monitoren, Maus und Tastatur; eben ein dummes Terminal), screenname gibt dann noch den Screen oder monitor, auf dem was gezeigt werden soll.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
16.07.2003, 11:33 Uhr
Dirk22



Danke für eure Antworten. Jetzt verstehe ich die Sache schon deutlich besser.
@virtual:
Ich habe noch Verständnisprobleme mit dem Displaynamen und Screennamen. Gut, nun weiss ich was ein Display ist. Entweder ein eigener Rechner mit beliebig vielen Monitoren(die alle das Gleiche darstellen), einer Maus, oder einer Tastatur, oder eben ein Terminal (Monitor, Maus, Tastatur). Und jetzt verstehe ich dich so, dass du Screen und Monitor gleichsetzt. Und da ist mein Verständnisproblem. Oder meinst du mit Screen den auf einem Monitor angezeigten Inhalt. (z.B. KDE, Gnome)
Ich bräuchte nun ein Beispiel um es zu verstehen. Nehmen wir an, ich möchte 2 verschiedene Windowmanager auf dem X-Server gleichzeitig laufen lassen. Den einen auf Port 6000 und den anderen auf Port 6001. (Das wird wahrscheinlich intern automatisch geregelt, welche Ports genommen wird, nehme ich an). Der Hostrechner, worauf sich der X-Server befindet ist natürlich auf meinem Rechner bei mir. Deshalb lasse ich dort die Angabe weg. Da ich nur ein Display habe, kann ich dort immer die gleiche Nummer verwenden(welche Nummer ist das?). Und nun will ich 2 Screens (Monitorinhalte) auf einem Monitor gleichzeitig ausgeben (z.B. KDE auf Screen1 und Gnome auf Screen2). (Sind das Nummer 0 und 1?)
Wohin soll ich diese Informationen abspeichern? Gibt es eine DISPLAY-Variable?


@alle:
Und noch allgemeine Fragen:
Warum braucht jeder Windowmanager eine eigene Schnittstelle zur Xlib? (z.B. KDE Qt und Gnome GTK)
Warum kann man nicht eine einfache Schnittstelle für alle Windowmanager verwenden.
Eigentlich reicht es doch z.B. wenn man Qt oder GTK lernt, wenn das Programm dann sowieso auf jedem Windowmanager ausführbar ist. Ist das so?
Gibt es solche Schnittstellen zur Xlib, wie z.B. Qt oder GTK für viele Programmiersprachen?

Falls euch das zu viele Fragen sind, und ihr meint, dass ich mich erst einmal besser einlesen müsste, dann gebt mir einfach Bescheid. Ich will natürlich gerne meine Fragen beantwortet haben, weil es mich sehr interessiert. Aber ich will hier niemanden überbelasten oder gar nerven.
Aber dann wäre es super, wenn ihr ein paar gute Buchtipps oder Links parat hättet.

Vielen Dank im Voraus

Dirk
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
16.07.2003, 12:33 Uhr
Dirk22



Komisch, ich sehe im Auswahlbildschirm aller Foren, dass virtual um 11:57 eine Antwort zu diesem Thread geschrieben hat. Dann gehe ich ins Linuxforum und dort steht, dass meine letzte Nachricht um 11:33 die letzte gewesen sein soll und virtuals neueste Nachricht wird nicht angezeigt.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
16.07.2003, 12:37 Uhr
virtual
Sexiest Bit alive
(Operator)


Für die Begrifflichkeiten schu mal bitte hier: www.rahul.net/kenton/xglossary.html
Für Protocol internas bitte hier:www.freesoft.org/CIE/Topics/113.htm
Ja, eine DISPLAY Variable gibt es, sie hat das im vorherigen Post erwähnte Format. Darüberhinaus haben die meisten X Programme einen entsprechenden Commandline switch.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
16.07.2003, 12:38 Uhr
virtual
Sexiest Bit alive
(Operator)


@Dirk22:
Ich hatte ein dumme Antwort gegeben, die einiges falsches enthalten hat. Diese habe ich gelöscht, um nicht noch mehr Verwirrung zu stiften (insbes. bzgl Display und Screen Terminologie; siehe vorheriges Post zur Begriffsklärung)
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
16.07.2003, 22:20 Uhr
Pablo
Supertux
(Operator)



Zitat:
virtual postete
Kleine (?) Anmerkung:
Generell muß man verstehen, daß das X System komplett anders arbeitet, als zB die GUI von Windows: X ist eine Netzwerkbasierte Angelegenheit, dh die X Requests (wie zB "MalMirEinFenster" == XCreateWindow) werden an den X Server gesendet,



Richtig, ich hab vergessen zu das zu erwähnen, und das ist, dass (für mich) was Besonderes aus dem X-Server macht, deshalb heißt ja auch X-Server, oder?
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 16.07.2003 um 22:23 Uhr von Pablo Yanez Trujillo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
16.07.2003, 22:23 Uhr
Pablo
Supertux
(Operator)


@Dirk: Du kannst kein weiteres Window Manager starten, wenn ein schon läuft (ich meine, wenn es nur einen X-Server gibt).
Öffne Windowmaker und gibt in der Shell fvwm2 ein oder umgekehrt in fvwm wmaker ein, was ist die Antwort?


Zitat:

Dirk22 postete:

Aber ich will hier niemanden überbelasten oder gar nerven.




Finde ich nicht, dass du uns nervrst, mich auf gar keinen Fall. Dafür ist auch das Forum, oder?

Zu deinen Frage: ich verstehe wirklich nicht, was du da fragst, kannst du sie anders formulieren. Vielleicht liegt das nur an mir, aber ich verstehe sie nicht ganz.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 16.07.2003 um 22:26 Uhr von Pablo Yanez Trujillo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ] [ 3 ]     [ GNU/Linux ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: