Οπως έχει ήδη ειπωθεί ορίζοντας το display
που θα χρησιμοποιήσει ένας
πελάτης των X Windows ορίζουμε στην πραγματικότητα ποιόν εξυπηρετητή (X
Server) θα χρησιμοποιήσει και κατ' επέκταση τον υπολογιστή στον οποίο θα
τρέξει. Εξ' ορισμού οι πελάτες τρέχουν στον εξυπηρετητή που ορίζει η
μεταβλητή DISPLAY. Χρησιμοποιώντας την παράμετρο -display
κατά την εκκίνηση
του πελάτη μπορούμε να τον συνδέσουμε σε διαφορετικούς εξυπηρετητές από
αυτόν που δουλεύουμε. Ετσι ενώ το πρόγραμμα θα τρέχει στο δικό μας
υπολογιστή θα εμφανίζει τα παράθυρά του σε άλλο υπολογιστή και θα
επικοινωνεί μέσω αυτού. Προϋποθέσεις να λειτουργήσει το παραπάνω σχήμα είναι
τρεις:
Α. Ο άλλος υπολογιστής πρέπει να τρέχει εκείνη τη στιγμή τα X Windows.
Β. Οι δύο υπολογιστές πρέπει να είναι συνδεμένοι σε δίκτυο ώστε να είναι δυνατή η μεταξύ τους επικοινωνία.
Γ. Ο υπολογιστής που τρέχει το πρόγραμμα πρέπει να έχει άδεια πρόσβασης στον
υπολογιστή του οποίου ο εξυπηρετητής θα φιλοξενήσει τα παράθυρα του
προγράμματος. Με άλλα λόγια ο κάθε εξυπηρετητής έχει την δυνατότητα να
επιτρέπει ή οχι στους άλλους υπολογιστές να στέλνουν δεδομένα στην οθόνη που
ελέγχει. Ο χρήστης μπορεί να καθορίσει την δυνατότητα πρόσβασης των άλλων
υπολογιστών στον εξυπηρετητή που χειρίζεται μέσω της εντολής xhost
. Η εντολή
xhost
συντάσεται ως εξής:
xhost +host : δίνει στον υπολ. host
άδεια προσβασης στον εξυπηρετητή
xhost -host : αφαιρεί την άδεια πρόσβασης από τον υπολογιστή host
Αν για παράδειγμα θεωρήσουμε ότι ο υπολογιστής που δουλεύουμε λέγεται
ourhost και είναι συνδεμένος με το υπολογιστή otherhost
τότε αν έχουμε άδεια
πρόσβασης στον otherhost
, δίνοντας στον ourhost
την εντολή:
xclock -display otherhost:0.0 &τρέχουμε στον υπολογιστή το πρόγραμμα
xclock
το οποίο θα εμφανίσει ένα ρολόι
στην οθόνη του υπολογιστή otherhost
. Η άδεια πρόσβασης του υπολογιστή μας,
ourhost
, στο otherhost
εξασφαλίζεται αν εκτελεστεί στον otherhost
η εντολή:
xhost +ourhostΣτο UNIX υπάρχουν επίσης οι εντολες
rlogin
και rsh
. Η rlogin (remote-login)
μας επιτρέπει να μπούμε από τον υπολογιστή μας σε ένα άλλο (μακρινό)
υπολογιστή αρκεί να έχουμε λογιαριασμό σε αυτόν. Η rsh
(remote-shell) μας
επιτρέπει να εκτελέσουμε ένα πρόγραμμα σε ένα άλλο υπολογιστή χωρίς να
μπούμε σε αυτόν. Χρησιμοποιώντας τις εντολές αυτές μπορούμε να κάνουμε το
αντίστροφο με το προηγούμενο παράδειγμα, δηλαδή να τρέξουμε ένα πελάτη των X
Windows σε ένα άλλο υπολογιστή και να εμφανίσουμε το παράθυρό του στην δική
μας οθόνη απ' όπου και θα το χειριστούμε. Με τον τρόπο αυτό δεν είναι ανάγκη
να έχει ο δικός μας υπολογιστής το πρόγραμμα που θέλουμε, αν υπάρχει σε
κάποιο άλλο υπολογιστή του δικτύου στο οποίο έχουμε λογαριασμό μπορούμε να
το τρέξουμε σε εκείνο και να το δούμε στη δική μας οθόνη.
Αν θεωρήσουμε πάλι τους δύο υπολογιστές ourhost
και otherhost
δίνοντας:
rlogin otherhost xpic -display ourhost:0.0 &ή
rsh otherhost -n /usr/bin/X11/xpic -disp ourhost:0.0&τρέχουμε το πρόγραμμα xpic στον υπολογιστή
otherhost
αλλά το παράθυρό του
εμφανίζεται στον δικό μας υπολογιστή (ourhost)
. Πρέπει να προσέχουμε όταν
χρησιμοποιούμε την εντολή rsh
να δίνουμε το όνομα του προγράμματος μαζί με
ολόκληρο το μονοπάτι του για να μπορέσει να το βρεί η rsh
. Αυτό συμβαίνει
γιατί όταν χρησιμοποιούμε την εντολή rsh δεν μπαίνουμε κανονικά στον άλλο
υπολογιστή και τα αρχεία .login
ή .cshrc
που περιέχουν τον ορισμό της
μεταβλητής path
δεν εκτελούνται.
Πρέπει να σημειωθεί ότι σε καμία από τις περιπτώσεις που ένας πελάτης των X Windows τρέχει σε ένα μηχάνημα και εμφανίζει τα παράθυρά του σε άλλο δεν είναι ανάγκη τα δύο μηχανήμα να είναι της ίδιας αρχιτεκτονικής. Μπορούν να είναι εντελώς διαφορετικοί υπολογιστές, διαφορετικών εταιρειών. Αυτό που τους συνδέει και επιτρέπει την συνεργασία μεταξύ τους είναι το κοινό πρωτόκολλο επικοινωνίας, τα X Windows.