Επόμενο Προηγούμενο Περιεχόμενα
Τα X-Windows δεν αποτελούν εξαίρεση στον κανόνα.
Ακολουθούν και αυτά την φιλοσοφία του Unix. Δηλαδή
κατασκευάζουμε μικρά προγράμματα που κάνουν μια δουλειά
καλά και δίνουμε στον προγραμματιστή την μέγιστη
ελευθερία να προσαρμόσει το περιβάλλον του όπως θέλει.
(το "μικρά" βέβαια σε αυτήν την περίπτωση είναι
αμφιλεγόμενο)
Αυτό έρχεται σε αντίθεση με τα καταναλωτικά λειτουργικά
συστήματα (γκουχ,γκουχ) που πιστεύουν ότι "ξέρουμε τι
θέλουν οι χρήστες μας πριν από αυτούς για αυτούς και θα
τους παρέχουμε εμείς το καλύτερο γραφικό περιβάλλον.
Ξέρουμε βέβαια ότι αυτό θα ικανοποιήσει μόνο το 80% των
χρηστών. Δεν πειράζει όμως, το υπόλοιπο 20% ας πάει να
πνιγεί".
Μετά από αυτήν την σύντομη αλλά αναγκαία προπαγάνδα
μπορούμε να δούμε τα πράγματα από μια πιο ρεαλιστική
σκοπιά. Έτσι λοιπόν ένα μονολιθικό λειτουργικό σύστημα
που βασίζεται στην πλήρης ενοποίηση (integration) όλων
των υποσυστημάτων του μοιάζει κάπως έτσι [εικόνα]
Κύριο πλεονέκτημα αυτής της αρχιτεκτονικής είναι βέβαια ή
ταχύτητα. Με αυτό εννοούμε ότι όλα τα υποσυστήματα (άρα
και το γραφικό περιβάλλον) είναι πλήρως εναρμονισμένα
μεταξύ τους (αφού είναι εντελώς προβλέψιμη η σύνθεση
τους) και τα κανάλια επικοινωνίας μεταξύ τους είναι τα
βέλτιστα δυνατά.
Αντιθέτως σε ένα GNU/Linux σύστημα όπου Linux σημαίνει
μόνο ο πυρήνας (φαντάζομαι ότι το ξέρετε αυτό :-) τα
πράγματα είναι κάπως έτσι [εικόνα] . Η εικόνα δείχνει ένα
σύστημα βασισμένο σε gtk+/GNOME αλλά ανάλογα πράγματα
ισχύουν και για QT/KDE.
Το όλο σύστημα δηλαδή αποτελείται από αυτοδύναμα κομμάτια
τα οποία μπορούν να να συνεργαστούν με διάφορους τρόπους
μεταξύ τους. Κύριο πλεονέκτημα αυτής της αρχιτεκτονικής
είναι η επεκτασιμότητα και η ευελιξία. Έτσι είναι δυνατόν
κάποιος ανάλογα με τις ανάγκες του να αρχίσει να αφαιρεί
από "την κορυφή" υποσυστήματα φτάνοντας σε ένα πιο ελαφρύ
σύστημα.
Θα μπορούσατε ας πούμε να αφαιρέσετε το GNOME και να
βάλετε έναν άλλο απλό window manager κρατώντας όμως τις
Gtk βιβλιοθήκες. H να αφήσετε μόνο τα ίδια τα X-windows
για να τρέχετε μόνο μια συγκεκριμένη εφαρμογή σε Motif. Η
ακόμα να αφαιρέσετε όλο το γραφικό περιβάλλον αφήνοντας
μόνο τον πυρήνα και τις εφαρμογές κονσόλας, έχοντας έτσι
ένα πολύ γρήγορο σύστημα ιδανικό για server.
Στην πραγματικότητα βέβαια επειδή κάποιος θέλει να τρέχει
πολλά και διαφορετικά προγράμματα τα πράγματα δεν είναι
τόσο απλά. Έτσι αν είστε στο KDE και σηκώσετε το Mozilla
θα φορτωθούν όλες οι βιβλιοθήκες του στην ίδια μνήμη που
είναι ήδη φορτωμένες αυτές του KDE. Αν σηκώσετε και GIMP
ας πούμε θα έχετε και το GTK+ να καταναλώνει μνήμη.
Ουσιαστικά δηλαδή σε ένα μηχάνημα έχετε 3 ειδών
βιβλιοθήκες. Αυτήν την ευελιξία (πολλά είδη εφαρμογών)
την πληρώνετε σε απόδοση (μνήμη)
Επίσης είναι δυνατόν να αλλάξουν τα "κάτω" ή τα "πάνω"
επίπεδα του συστήματος χωρίς καμία επίπτωση. Όπως θα
ξέρετε τα X-windows δεν είναι αποκλειστικό προνόμιο του
Linux. Τα *ΒSDς τρέχουν επίσης X-Windows όπως και μερικά
εμπορικά Unix (π.χ. Solaris). Αυτό δίνει πάλι μεγάλη
ευελιξία καθώς ένα πρόγραμμα που χρησιμοποιεί μόνο
γραφικές βιβλιοθήκες (Xlib και πάνω) τρέχει όπου υπάρχουν
X-windows άσχετα με το αν "από κάτω" υπάρχει
Linux/FreeBSD/Solaris ή οτιδήποτε άλλο.
Τα KDE/GNOME για παράδειγμα τρέχουν άνετα σε FreeBSD.
Προφανώς θα μεταφέρθηκαν (ported) κάποια συγκεκριμένα
κομμάτια από το ένα σύστημα στο άλλο, αλλά κανείς δεν
ξανάγραψε κώδικα "από το γραφικό περιβάλλον του Linux"
στο "γραφικό περιβάλλον του FreeBSD".
Τέλος, η αντικατάσταση των πάνω επιπέδων σημαίνει
αντικατάσταση των X-Windows. Τι σημαίνει αυτό; Τι θα
μπορούσαμε να βάλουμε στην θέση τους; Εδώ φτάνουμε σε ένα
σημαντικό σημείο του άρθρου. Τα x-windows (η επίσημα "The
X-Window system") είναι απλά μια περιγραφή
(specification). Ο XFree86 είναι απλά μια δωρεάν
υλοποίηση (implementation). Υπάρχουν και άλλες
υλοποιήσεις. Προφανώς αρκετές είναι forks του XFree86
αλλά υπάρχουν και εμπορικές εκδόσεις με διάφορα
χαρακτηριστικά (π.χ. 3D επιτάχυνση). Τον τελευταίο καιρό
λόγω διάφορων νομικών επιπλοκών με την άδεια χρήσης του
XFree86 αρκετές διανομές ψάχνουν εναλλακτικές λύσεις.
Αυτό όμως δεν έχει καμία επίπτωση στο τεχνικό επίπεδο.
Όλες οι γραφικές εφαρμογές μπορούν να λειτουργήσουν όπως
και πριν.
Μέχρι στιγμής δεν έχουμε πει τίποτα καινούριο. Γιατί
λοιπόν αυτή η ευελιξία που προσφέρουν τα X-Windows
μεταφράζεται σε μειωμένη απόδοση; (άσχετα με το μπάχαλο
με τις πολλές βιβλιοθήκες που έχει μεγαλύτερη επίπτωση
στην μνήμη παρά σε επεξεργαστική ισχύ). Η απάντηση είναι
η εξής.
Κάθε γραφικό πρόγραμμα (Χ client) είναι μια εφαρμογή που
στο 99% των περιπτώσεων αναλογεί σε μία διεργασία του
Unix (process). Το ίδιο όμως το υποσύστημα γραφικών (Χ
server) που ελέγχει οθόνη, πληκτρολόγιο και ποντίκι είναι
επίσης απλά άλλη μία διεργασία του συστήματος που τρέχει
πάνω από τον πυρήνα (userspace). Ξαναδιαβάστε την
τελευταία πρόταση δύο φορές. Δεν υπάρχει καμία ειδική
μεταχείριση μέσα στο πυρήνα του Linux για γραφικά ή για Χ
servers ή για διάφορα άλλα τέτοια. (Εδώ κλέβω λίγο
βέβαια, αλλά αν το ξέρετε αυτό είστε αρκετά έμπειρος ώστε
αυτό το άρθρο μάλλον δεν σας ενδιαφέρει). Το "γραφικό
περιβάλλον" είναι δηλαδή άλλο ένα πρόγραμμα που
μοιράζεται τους πόρους του μηχανήματος στην ίδια βάση με
τα υπόλοιπα προγράμματα που τρέχουν εκείνη την στιγμή
(κονσόλας ή γραφικά).
Αυτό μπορείτε να το διαπιστώσετε και οι ίδιοι. Με ένα
απλό ps μπορείτε να βρείτε τον ίδιο τον Xserver και
"σκοτώνοντας" τον θα καταρρεύσει αυτομάτως όλο το γραφικό
περιβάλλον. Τόσο απλά. Μάλιστα μπορείτε να
χρησιμοποιήσετε τις κλασσικές εντολές του Unix πάνω στον
Xserver. Για παράδειγμα με την εντολή nice μπορείτε να
ανεβάσετε ή να μειώσετε την προτεραιότητα του Xserver σε
σχέση με τα άλλα προγράμματα. Ακόμα και στα επίπεδα πάνω
από τα ίδια τα X-Windows η λογική είναι η ίδια. O window
manager που σχεδιάσει τα περιγράμματα των παραθύρων και
ασχολείται με την θέση τους είναι επίσης απλά άλλο ένα
userspace πρόγραμμα. Τα ίδια ισχύουν και για KDE/GNOME.
Το πάνελ τους, o window manager, ο file manager κ.τ.λ
είναι "κανονικά" προγράμματα χωρίς κάποιο ειδικό
χαρακτηριστικό.
Ξαναδείτε τις δύο εικόνες που αναφέρθηκαν προηγουμένως.
Αν φανταστείτε ότι κάθε "βελάκι" αποτελεί μία σημαντική
καθυστέρηση (communication overhead) μπορείτε εύκολα να
δείτε ότι ένα σύστημα βασισμένο σε GNOME/KDE και γενικά
με X-Windows πληρώνει μερικές έξτρα καθυστερήσεις οι
οποίες πολύ απλά δεν υπάρχουν σε ένα μονολιθικό
λειτουργικό σύστημα όπου τα πάντα είναι ενωμένα (και ο
πυρήνας έχει και λειτουργίες για γραφικά).
Αυτό είναι το τίμημα που πληρώνετε για την ευελιξία των
X-Windows. Να το θυμάστε λοιπόν την επόμενη φορά που θα
επιδοθείτε στο αγαπημένο σπορ των απανταχού Unixάδων,
αυτό δηλαδή της εύρεσης του κατάλληλου συνδυασμού window
manager/background/theme/dockapps/desklets/toolbars/panels
που θα σας δώσουν το "τέλειο" υπολογιστικό περιβάλλον.
Ειδικά το GNOME και το KDE πάσχουν σε ταχύτητα όσο καλός
και αν είναι ο κώδικας τους (το KDE βέβαια πρέπει να
παραδεχτώ ότι έχει κάνει τρομερή πρόοδο στον τομέα
ταχύτητα) γιατί είναι κατασκευασμένα για να παρέχουν
λειτουργίες και να μιμούνται το περιβάλλον ενός
μονολιθικού λειτουργικού συστήματος, κάτι που τα
X-Windows ποτέ δεν προορίζονταν να κάνουν.
Τώρα βέβαια θα πείτε: "Και καλά, αν δεν είναι
κατασκευασμένα τα X-Windows για να παρέχουν γραφικά σε
ένα μονολιθικό λειτουργικό σύστημα, τότε για τι είναι
κατασκευασμένα;", και θα έχετε κάθε δίκιο να το ρωτήσετε
αυτό.
Η μαγική φράση δεν είναι τόσο το "μονολιθικό σύστημα" όσο
το "σε ένα". Τα X-Windows σχεδιάστηκαν για το δίκτυο. O
σκοπός τους είναι να παρέχουν γραφικές υπηρεσίες ανάμεσα
σε πολλούς υπολογιστές που επικοινωνούν μεταξύ τους.
Αναφερόμαστε βέβαια στο περιβόητο "network transparency".
(Δεν νομίζω ότι μπορώ να βρω καλή ελληνική μετάφραση του
όρου.)
Οι προγραμματιστές των X-Windows σκέφτηκαν ως εξής όταν
τα σχεδίαζαν (όλα αυτά μέσα στα '80s). "Ξέρουμε ότι στο
μέλλον τα δίκτυα θα είναι παντού. Και ξέρουμε επίσης ότι
πολλοί προγραμματιστές θα θέλουν να γράψουν γραφικά
προγράμματα που θα τρέχουν πάνω από το δίκτυο. Θα ήταν
επίσης κρίμα ο κάθε προγραμματιστής να γράφει κάθε φορά
κώδικα που αφορά μεταφορά δεδομένων μέσα από το δίκτυο,
κάτι το οποίο δεν έχει σχέση με το ίδιο το πρόγραμμα.
(γνωστό και ως plumbing code/infrastructure ή και βαρετός
κώδικας/εφεύρεση του τροχού για νιοστή φόρα στα ελληνικά
:-). Θα κάνουμε λοιπόν το εξής: Θα γράψουμε μία φορά
εμείς οι ίδιοι τον κώδικα του δικτύου και θα δώσουμε
στους άλλους προγραμματιστές την δυνατότητα να γράψουν τα
προγράμματα τους βασισμένα στα X-Windows χωρίς πότε να
πρέπει να ασχοληθούν αυτοί με το δίκτυο άλλα να μπορούν
να επικεντρώσουν την προσοχή τους στο ίδιο το πρόγραμμα
τους".
Τι ακριβώς εννοούσαν λοιπόν οι προγραμματιστές των
X-Windows και τι έλεγε αυτή η επαναστατική τους (ακόμα
και σήμερα κατά την ταπεινή γνώμη του αρθρογράφου) ιδέα;
Ας δούμε ένα παράδειγμα. Έχετε δύο υπολογιστές
συνδεδεμένους στο δίκτυο. Θέλετε να πάρετε κάποιες
μετρήσεις από τον Α (οι οποίες μπορεί να είναι
θερμοκρασίες/hits σε ένα webserver/στατιστικά μιας βάσης
δεδομένων και ότι άλλο μπορείτε να φανταστείτε) και να
τις δείτε με ένα γραφικό πρόγραμμα στον Β στον οποίο και
κάθεστε.
Αν οι δύο υπολογιστές τρέχουν ένα μονολιθικό λειτουργικό
σύστημα πρέπει στην ουσία να γράψετε δύο προγράμματα. Το
πρώτο (που δεν είναι απαραίτητο να είναι γραφικό) θα
τρέχει στον Α, θα μαζεύει τα δεδομένα και θα τα στέλνει
μέσω δικτύου στο δεύτερο πρόγραμμα που θα τρέχει στον Β
και το οποίο θα τα δείχνει γραφικά στην οθόνη. Δείτε την
[εικόνα] .Στις
περισσότερες περιπτώσεις ο κώδικας του δικτύου θα είναι
χαμηλού επιπέδου (sockets) και θα είναι στενά
συνδεδεμένος με τα δεδομένα που μεταφέρονται. Παρατηρήστε
επίσης ότι ο κώδικας αυτός δεν έχει καμία απολύτως σχέση
ούτε με την συλλογή δεδομένων η οποία μπορεί να είναι
πολύ περίπλοκη από μόνη της ούτε με την επεξεργασία και
γραφική τους αναπαράσταση που επίσης μπορεί να είναι πολύ
περίπλοκη.
Κλασσικά παραδείγματα αυτής της αρχιτεκτονικής είναι τα
άπειρα γραφικά database frontends που επιτρέπουν σε
κάποιον να χειριστούν γραφικά μια απομακρυσμένη βάση
δεδομένων, και τα διάφορα remote administration
προγράμματα γενικότερα. Ακόμα και όλα τα κακόβουλα
προγράμματα τύπου δούρειου ίππου (trojan horse)
βασίζονται σε αυτήν την ιδέα.
Αν όμως έχετε X-Windows στους δύο υπολογιστές τα πράγματα
είναι πολύ πιο απλά! Οι προγραμματιστές των X-Windows
έχουν γράψει ήδη των κωδικά του δικτύου για εσάς πριν από
εσάς. Σε αυτήν την περίπτωσή θα γράψετε ένα μόνο
πρόγραμμα (όπως και ήταν η αρχική σας επιδίωξη) το οποίο
θα τρέξετε κανονικά στον Α και μετά με κάποιο
συγκεκριμένο τρόπο θα του πείτε "Θέλω να δω την έξοδο του
προγράμματος στην οθόνη του υπολογιστή Β και όχι στην
οθόνη του υπολογιστή Α που το έτρεξα". Και αυτό ήταν!
Δείτε την [εικόνα] . Ο Α δεν
χρειάζεται να τρέχει X-Windows. Στην πραγματικότητα ο Α
δεν χρειάζεται να έχει καν οθόνη. Μπορεί να είναι
κάλλιστα ένας headless server που κάθεται στα φωτεινά
υπόγεια μιας πολυεθνικής εταιρίας ή στο σκοτεινό πατάρι
του γείτονα. Το μόνο που χρειάζεται ό Α είναι οι
βιβλιοθήκες γραφικών των X-Windows (xlib/Xt) και ότι άλλο
toolkit χρησιμοποιεί (gtk+/qt/fltk/tk/motif κ.τ.λ) το
πρόγραμμα. Κατά τα άλλα δεν χρειάζεται να ασχοληθείτε
εσείς ως προγραμματιστής, καθόλου με κώδικα για δίκτυο. Η
μεταφορά των δεδομένων μέσα από τον δίκτυο γίνεται με τον
τρόπο που έχουν "ενσωματωμένο" (built-in) τα ίδια τα
X-windows.
Κάτι σημαντικό που πρέπει να παρατηρήσετε στην δεύτερη
εικόνα και το οποίο έχει μπερδέψει αρκετούς ανθρώπους
(μαζί και τον αρθρογράφο) είναι η ανάποδη αντιστοίχηση
των όρων client και server. Έχουμε συνηθίσει να έχουμε το
client κομμάτι στον υπολογιστή που καθόμαστε (π.χ. ftp
client/web browser/database client) και το server κομμάτι
στον απομακρυσμένο υπολογιστή (π.χ. ftp server/web
server/database server). Στην περίπτωση των X-Windows
όμως τα πράγματα είναι ανάποδα. Ο χρήστης κάθεται στον
X-Server (= οθόνη,πληκτρολόγιο και ποντίκι) ενώ το
απομακρυσμένο πρόγραμμα είναι ο X-client. Αυτό είναι
εύκολο να το θυμάστε αν σκεφτείτε ότι ο client είναι
πάντα αυτός που ξεκινάει την σύνδεση. Στην συγκεκριμένη
περίπτωση ο χρήστης κάθεται στον X-Server που "περιμένει"
συνδέσεις από X-Clients σε άλλα μηχανήματα που θέλουν να
χρησιμοποιήσουν την οθόνη του.
Αυτά όσον αφορά το "network" κομμάτι. Τι ακριβώς όμως
σημαίνει το "transparency" κομμάτι; (Στα ελληνικά
transparent = διάφανος και transparency = διαφάνεια).
Φτάνουμε λοιπόν στην δεύτερη σημαντική απόφαση των
προγραμματιστών των X-Windows. Η απόφαση αυτή έχει να
κάνει με το τι γίνεται στην περίπτωση που ένα γραφικό
πρόγραμμα δείχνει την έξοδο του στον ίδιο τον υπολογιστή
που τρέχει και άρα δεν χρειαζόμαστε μεταφορά δεδομένων
μέσω δικτύου. Αυτή η περίπτωση μας ενδιαφέρει πολύ γιατί
έτσι τρέχουν το 99% των χρηστών GNU/Linux το KDE/GNOME
στον υπολογιστή τους. Αυτή είναι η πλειοψηφία των
περιπτώσεων της εφαρμογής των X-Windows σήμερα δηλαδή.
Είπαν λοιπόν οι προγραμματιστές των X-Windows: "Το
ξέρουμε ότι θα μπορούσαμε (για λόγους ταχύτητας) να
γράψουμε διαφορετικό κώδικα που θα δίνει την δυνατότητα
στον προγραμματιστή να έχει απευθείας πρόσβαση στο
υποσύστημα γραφικών όταν το πρόγραμμα του έχει την έξοδο
στον ίδιο τον υπολογιστή που τρέχει. Κάτι τέτοιο όμως θα
ήταν πιο πολύπλοκο και επίσης θα χάλαγε "την ομοιομορφία"
του συστήματος μας (τα X-Windows δηλαδή). Προτιμούμε να
δώσουμε στον προγραμματιστή ένα ενιαίο τρόπο κατασκευής
γραφικών εφαρμογών άσχετα αν αυτές χρησιμοποιούν το
δίκτυο τελικά ή όχι. Θα ακολουθήσουμε αυτήν μας την
απόφαση παρόλο που ξέρουμε ότι δεν είναι η βέλτιστη
δυνατή από άποψη ταχύτητας, είναι όμως η βέλτιστη δυνατή
λύση από άποψη ευελιξίας". Έτσι ακριβώς έγινε.
Τελικά δηλαδή τα X-Windows δεν ενδιαφέρονται αν υπάρχει
στην μέση δίκτυο ή όχι. Ακόμα και όταν τα πάντα (Χ-server
και X-Clients) τρέχουν σε έναν υπολογιστή τοπικά, όλα τα
δεδομένα πάλι μέσα από το "δίκτυο" θα σταλούν. Το
"δίκτυο" βέβαια θα είναι το ιδεατό(virtual) δίκτυο που
έχει πάντα ένας υπολογιστής με τον εαυτό του. Αυτό
πρακτικά σημαίνει ότι κάθε γραφικό πρόγραμμα που ξεκινάτε
στον υπολογιστή σας συνδέεται μέσω δικτύου στην οθόνη του
localhost/127.0.0.1 Δεν υπάρχει κάποια ειδική ρύθμιση για
να αποφασίσετε αν ένα γραφικό πρόγραμμα τρέχει μέσω
δικτύου ή τοπικά. Είναι ακριβώς το ίδιο. Εκεί αναφέρεται
και ο όρος "transparency".
Και βέβαια από όλα αυτά καταλαβαίνετε ότι ένα γραφικό
πρόγραμμα δεν έχει ποτέ απευθείας πρόσβαση στην κάρτα
γραφικών του μηχανήματος που θα τρέξει ακόμα και αν
τρέχει τοπικά. Τα πάντα θα περάσουν μέσα από το δίκτυο
και μέσα από τον XServer (εδώ πάλι κλέβω αλλά αν το
ξέρετε αυτό μπλα,μπλα). Θα μπορούσαν δηλαδή οι
προγραμματιστές των X-Windows να δώσουν ένα διαφορετικό
API για την περίπτωση που το πρόγραμμα τρέχει τοπικά,
προτίμησαν όμως να μην το κάνουν αυτό για χάρη της
ευελιξίας και ομοιομορφίας του συστήματος.
Να λοιπόν ένας ακόμα λόγος που τα X-Windows δεν μπορούν
να ανταγωνιστούν τα γραφικά περιβάλλοντα των μονολιθικών
λειτουργικών συστημάτων στο θέμα της ταχύτητας. Για άλλη
μια φορά θυσίασαν την ταχύτητα για χάρη της ευελιξίας.
Προφανώς υπάρχουν πολλές διαφορετικές περιπτώσεις όπου τα
X-Windows μπορούν να χρησιμοποιηθούν για απομακρυσμένη
εκτέλεση γραφικών εφαρμογών. Ανάλογα με τις ανάγκες του
καθενός είναι δυνατόν τα X-Windows τις καλύψουν χωρίς να
χρειάζεται η προμήθεια εξωτερικών εφαρμογών. Εμείς θα
θέλαμε να αναφέρουμε δύο περιβάλλοντα που πιστεύουμε ότι
αξίζουν την προσοχή σας.
Περιβάλλον 1. Ας φανταστούμε έναν (δύστυχο) system
administrator που κάθεται στο γραφείο του που τρέχει
GNU/Linux και θα ήθελε να ξέρει ανά πάσα στιγμή των
σημαντικών πόρων/μηχανημάτων του δικτύου. Προφανώς μέσω
SSH ο απομακρυσμένος έλεγχος (remote administration) των
μηχανημάτων είναι δυνατόν να γίνει χωρίς καν να σηκωθεί
από την καρέκλα του. Δεν θα ήταν όμως ιδανικό να μπορούσε
να σηκώσει και γραφικά προγράμματα απομακρυσμένα;
Χωρίς λοιπόν την προσθήκη έξτρα προγραμμάτων ο system
administrator αλλά με τις σωστές ρυθμίσεις θα μπορούσε να
κάνει κάτι όπως την [εικόνα]
Αυτός κάθεται λοιπόν σε ένα μηχάνημα χαμηλών/μέσων
επιδόσεων και μπορεί να βλέπει στην (ας πούμε TFT 19")
οθόνη του ταυτόχρονα
-
Το γραφικό hit analyser που τρέχει στο Webserver του με
FreeBSD
-
Το γραφικό του network analyser που τρέχει στο
router/firewall me OpenBSD
-
Το γραφικό του database frontend που τρέχει στον
application server με Solaris
-
Το γραφικό του -βάλτε το δικό σας πρόγραμμα εδώ- που
τρέχει στον server με GNU/Linux
Στο όλο σύστημα δηλαδή τρέχει ένας μόνο X server (στον
κεντρικό υπολογιστή) και οι υπόλοιποι X-clients τρέχουν
περιφερειακά σε διαφορετικά μηχανήματα. Προφανώς οι
servers μπορούν κάλλιστα να είναι headless.
Γιατί είναι σημαντική αυτή η σύνθεση (configuration);
-
Κεντρικός έλεγχος. O sys admin έχει όλα τα γραφικά
προγράμματα σε μία οθόνη στο γραφείο του.
-
Κατανεμημένοι πόροι. Συνήθως μια βάση δεδομένων είναι
μια βαριά εφαρμογή. Επίσης ένας πολυάσχολος web server
τείνει να ζορίζει ένα σύστημα. Σε αυτήν την περίπτωση
όμως ο system admin βλέπει σε μία οθόνη προγράμματα που
θα ήταν αδύνατο να τρέξουν σε έναν υπολογιστή όλα μαζί.
Επίσης ο ίδιος ο υπολογιστής του sys admin έχει πολύ
χαμηλό φόρτο αφού το μόνο που κάνει είναι να "δείχνει"
τα δεδομένα και όχι να τα επεξεργάζεται. Έτσι η εταιρία
μπορεί να επενδύσει πολλά χρήματα στον database server
και όχι στον υπολογιστή του sys admin. (Αυτή η λογική
δεν ισχύει πάντα στην πραγματικότητα :-)
-
Ανεξαρτησία. Αν ο sys admin είναι από τους νευρωτικούς
που θέλουν να συνεχίσουν να έχουν τον έλεγχο ακόμα και
όταν φεύγουν από την δουλειά δεν υπάρχει κανένα
πρόβλημα. Θα μπορούσε ας πούμε ο sys admin να πάει
σπίτι του (θεωρητικά) και να σηκώσει το frontend της
βάσης δεδομένων από το GNU/Linux μηχάνημα που έχει στο
υπνοδωμάτιο του. Θα έχει ακριβώς το ίδιο περιβάλλον που
είχε και στην δουλειά.
Περιβάλλον 2. Η δεύτερη περίπτωση είναι η λογικά αντίθετη
(σχεδόν). Έχουμε στο κέντρο τον X-Client και διάφοροι
X-Servers σηκώνουν το πρόγραμμα γραφικά. Τυπικό
παράδειγμα τέτοιας λύσεις αποτελούν τα πανεπιστήμια.
Υπάρχει εγκατεστημένη σε ένα μηχάνημα μια
σημαντική/εμπορική εφαρμογή και όλοι οι φοιτητές σηκώνουν
το γραφικό περιβάλλον από τον υπολογιστή που κάθονται. Η
εφαρμογή δεν μπορεί να υπάρξει εγκατεστημένη σε άλλους
υπολογιστές για διάφορους λόγους
-
Είναι εμπορική και το πανεπιστήμιο έχει μόνο μια άδεια
-
Χρησιμοποιεί συγκεκριμένο υλικό συνδεδεμένο μόνο σε
αυτόν τον αυτόν τον υπολογιστή
-
Έχει πολύ μεγάλες απαιτήσεις σε πόρους (μπορεί να
τρέξει μόνο σε αυτόν τον υπολογιστή)
Δείτε την [εικόνα]. Τα
χαρακτηριστικά αυτής της σύνθεσης είναι:
-
(Το κύριο) Πολλοί χρήστες χρησιμοποιούν μια γραφική
εφαρμογή η οποία στην πραγματικότητα είναι
εγκατεστημένη σε ένα μηχάνημα.
-
Εύκολη αναβάθμιση της εφαρμογής, αφού βρίσκεται σε ένα
κεντρικό σημείο.
-
Οικονομική λύση. Ο μόνος απαιτητικός υπολογιστής είναι
ο κεντρικός. Οι χρήστες μπορούν να έχουν απλούς thin
clients. Εφόσον όμως δεν έχουν μπροστά τους μια απλή
εφαρμογή WEB αλλά μια κανονική εφαρμογή συστήματος που
έχει διαθέσιμους όλους τους πόρους ενός μηχανήματος
τελικά τα περιφερειακά μηχανήματα είναι thick clients.
Και τα δύο περιβάλλοντα που αναφέραμε δεν λειτουργούν
ακριβώς έτσι στην πραγματική ζωή και για αυτό συμβάλλουν
κυρίως δύο λόγοι. Ό ένας είναι ότι απαιτείται ένα γρήγορο
δίκτυο (αν ο sys admin έχει απλό dial-up σπίτι του δεν
μπορεί να κάνει και πολλά). Ο δεύτερος λόγος είναι η
ασφάλεια την οποία θα αναφέρουμε και στο επόμενο τμήμα
του άρθρου.
Επόμενο Προηγούμενο Περιεχόμενα