Page 117 - Computer Για Όλους τ. 353

COMPUTER ΓΙΑ ΟΛΟΥΣ
117
Hacking, cracking & downloading
Τους χρησιμοποιούμε κάθε φορά που
χρησιμοποιούμε τον υπολογιστή μας, αλ-
λά πώς πραγματικά λειτουργούν; Διαβά-
στε παρακάτω για να μάθετε τη σπουδαι-
ότητα των drivers στους σύγχρονους υπο-
λογιστές.
Ένας υπολογιστής αποτελείται από
δύο βασικά συστατικά: το hardware και το
software. Η πλευρά του πρώτου περιλαμ-
βάνει τα πάντα, από τον κεντρικό επεξερ-
γαστή μέχρι το κάθε είδους εσωτερικό ή
εξωτερικό περιφερειακό που έχουμε συν-
δέσει πάνω του.
Το λογισμικό, από την άλλη πλευρά,
μπορούμε να το χωρίσουμε σε τρεις επι-
μέρους κατηγορίες: το λειτουργικό σύ-
στημα, τις διάφορες εφαρμογές και τους
drivers. Με πολύ λίγα λόγια, οι drivers εί-
ναι το μέσο με το οποίο το λογισμικό επι-
κοινωνεί με το υλικό μέρος του υπολογι-
στή. Τα Windows διαθέτουν ενσωματωμέ-
νους χιλιάδες drivers της ίδιας της
Microsoft. Καθένας από αυτούς είναι σχε-
διασμένος να κάνει δυνατή τη χρήση (μέ-
σω του λειτουργικού συστήματος) κάθε
πιθανής συσκευής που συνδέουμε στο
σύστημα. Όπως συχνά αναφέρουμε, «τα
Windows την αναγνωρίζουν». Έτσι, για να
λειτουργήσει κάθε συσκευή η οποία είναι
συνδεδεμένη με τον υπολογιστή απαιτεί
τον δικό της driver.
ΠΩΣ ΔΟΥΛΕΥΟΥΝ ΟΙ DRIVERS
Τι είναι, λοιπόν, ένας driver και πώς
πραγματικά λειτουργεί; Ευτυχώς δεν εί-
ναι απαραίτητο να καταλάβετε όλη την
πολυπλοκότητα που αντιμετωπίζει κάθε
προγραμματιστής όταν προσπαθεί να
αναπτύξει έναν driver για μία συσκευή. Εί-
ναι καλό, όμως, να γνωρίζετε πώς πραγ-
ματικά φέρνουν εις πέρας την αποστολή
τους.
Με πολύ απλά λόγια, ένας driver δεν εί-
ναι τίποτα άλλο από μία εφαρμογή, όπως
όλες οι άλλες, αν και με κάποιες πολύ
σημαντικές διαφορές. Κατ’ αρχάς, οι
drivers δεν χρησιμοποιούν παράθυρα ή
εικονίδια για να επικοινωνήσουν με το
χρήστη, αλλά βρίσκονται ανάμεσα στα
προγράμματα που χρησιμοποιούνται και
στις συσκευές του υπολογιστή. Ενώ μία
συνήθης εφαρμογή δεν θα προκαλέσει
την κατάρρευση ολόκληρου του συστήμα-
τος, αν παρουσιαστεί κάποιο προγραμμα-
τιστικό σφάλμα (bug), οι drivers πρέπει να
είναι όσο γίνεται προσεκτικότερα γραμμέ-
νοι και να έχουν δοκιμαστεί σε κάθε
ακραία κατάσταση για να λειτουργήσουν
σωστά. Αν ένα πρόγραμμα που χρησιμο-
ποιείται κολλήσει, τα Windows θα το απο-
μονώσουν και θα το τερματίσουν, απο-
τρέποντας με αυτό τον τρόπο ανεπιθύμη-
τες παρενέργειες στο ίδιο το λειτουργικό
σύστημα. Από την άλλη μεριά, οι drivers,
επειδή ακριβώς παρεμβάλλονται μεταξύ
του λειτουργικού συστήματος και των
εκάστοτε συσκευών, αν καταρρεύσουν,
συνήθως θα «κολλήσουν» ολοκληρωτικά
το σύστημα. Ο κύριος υπαίτιος της «μπλε
οθόνης του θανάτου» (blue screen of
death), που εμφανίζεται χωρίς κάποιον
προφανή λόγο στα Windows, είναι συνή-
θως κάποιος driver. Κατά μία έννοια, ο
driver κάποιας συσκευής έχει αρκετές
ομοιότητες με τις δυναμικές βιβλιοθήκες
(
αρχεία dll) που χρησιμοποιούνται από τα
Windows και την πλειονότητα των προ-
γραμμάτων για να αποθηκεύουν τμήματα
κώδικα που εκτελείται πιο συχνά. Όταν
εκτελείται ένας driver, μεταφέρει πληρο-
φορίες στα Windows σχετικά με το είδος
της συσκευής και τις λειτουργίες της. Οι
πληροφορίες αυτές ονομάζονται object
drivers.
Ο ΠΥΡΗΝΑΣ ΚΑΙ ΤΟ USER MODE
Με πολύ απλά λόγια, υπάρχουν δύο
τρόποι με τους οποίους τα Windows εκτε-
λούν κάποιο τμήμα κώδικα. Κατ’ αρχάς,
υπάρχει το user mode, με το οποίο εκτε-
λούνται οι κυρίως εφαρμογές. Όταν ανοί-
γετε τον Internet Explorer ή κάποιο άλλο
πρόγραμμα, αυτό εκτελείται σε user
mode και γι’ αυτό έχει πρόσβαση και
μπορεί να εκτελέσει μόνο τις υπηρεσίες
συστήματος που παρέχουν τα Windows.
Οι εφαρμογές που εκτελούνται σε αυτό
το mode δεν έχουν άμεση πρόσβαση στο
hardware και, αν προσπαθήσουν κάτι τέ-
τοιο, τα Windows τερματίζουν τη συγκε-
κριμένη διεργασία και προειδοποιούν το
χρήστη.
Για παράδειγμα, όταν προσπαθήσετε
να χρησιμοποιήσετε ένα παλαιότερο πρό-
γραμμα διαχείρισης δίσκων, το λειτουργι-
κό θα σας ενημερώσει ότι δεν επιτρέπε-
ται η άμεση πρόσβαση στο hardware.
Η δεύτερη μέθοδος λειτουργίας είναι
γνωστή ως kernel mode. Αυτή εκτελεί τα
προγράμματα σε ένα κομμάτι προστατευ-
μένης και απομονωμένης μνήμης. Αυτός
είναι και ο τρόπος με τον οποίο εκτελείται
ο πυρήνας των σύγχρονων εκδόσεων των
Windows. Όταν κάτι εκτελείται σε kernel
mode, έχει άμεση πρόσβαση τόσο στη
μνήμη όσο και στο hardware. Σε αυτό το
mode εκτελούνται οι drivers των διάφο-
ρων συσκευών.
Όταν εκτελείται κάποιος driver, απλώς
περιμένει για αιτήσεις από προγράμματα,
το λειτουργικό ή από κάποιον άλλο driver
του συστήματος. Αυτές οι αιτήσεις κατα-
φτάνουν σε αυτόν από τα Windows μέσω
του IRP ή αλλιώς I/O Request Packet (Πα-
κέτα Αιτήσεων Εισόδου/Εξόδου), το οποίο
περιέχει πληροφορίες σχετικά με τον κώ-
δικα των υποστηριζόμενων λειτουργιών,
ώστε να γνωρίζει ο driver τι πρέπει να κά-
νει. Έτσι, για παράδειγμα, ο driver του
εκτυπωτή «καταλαβαίνει» ότι θέλετε να
εκτυπώσετε κάποια σελίδα και όχι να αλ-
λάξετε μελάνια ή να εκτελέσετε έναν κύ-
κλο δοκιμών.
ΕΛΕΓΧΟΣ ΑΠΟΣΤΟΛΗΣ
Μόλις ο driver της συσκευής παραλάβει
και κατανοήσει το πακέτο των εντολών
από το λειτουργικό σύστημα, μπορεί να
ακολουθήσει τρεις διαδρομές.
Αν «καταλάβει» την αίτηση και μπορεί
να την πραγματοποιήσει, θα το κάνει και
στη συνέχεια θα ενημερώσει τα Windows
ότι η εργασία ολοκληρώθηκε. Αν δεν
μπορεί να εκτελεστεί άμεσα η εντολή –για
παράδειγμα, γιατί το scanner σας είναι
απασχολημένο σαρώνοντας ήδη κάποια
φωτογραφία–, τοποθετεί το αίτημα στην
αναμονή και ενημερώνει κατάλληλα τα
Windows.
Στην περίπτωση τώρα που η υλοποίηση
του αιτήματος είναι αδύνατη, ενημερώνε-
ται το λειτουργικό σύστημα για το πρό-
βλημα και αυτό με τη σειρά του μεταφέ-
ρει την αίτηση σε έναν διαφορετικό driver
προς εκτέλεση.
Έτσι λειτουργεί σε γενικές γραμμές
ένας driver κάποιας συσκευής. Όπως
όλοι πολύ καλά γνωρίζουμε, τίποτα δεν
είναι τέλειο σε αυτό τον κόσμο (ιδίως μά-
λιστα στην πλατφόρμα των Windows) και
πολλές είναι οι φορές που κάποιος driver
θα παρουσιάσει πρόβλημα και συχνά θα
«
κολλήσει» τα Windows. Αυτός είναι ο λό-
γος που συχνά σας παροτρύνουμε να
έχετε πάντα τους τελευταίους drivers για
τις συσκευές σας, αφού σχεδόν πάντα οι
νεότερες εκδόσεις έχουν λύσει πολλά και
διάφορα προβλήματα.
ΕΠΙΚΟΙΝΩΝΙΑ ΣΥΣΚΕΥΩΝ ΜΕ ΤΑ WINDOWS
Προβλήματα drivers και πώς να τα λύσετε