Κοινή χρήση τεχνολογίας

Σημειώσεις συναρμολόγησης Windows 32 (1): βασικές γνώσεις

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. Τρόπος λειτουργίας επεξεργαστή 80x86

1.1 Πραγματική λειτουργία

Επισκόπηση πραγματικής λειτουργίας

Η πραγματική λειτουργία είναι η πιο πρώιμη λειτουργία εργασίας που υποστηρίζεται από τον επεξεργαστή 80x86 και είναι επίσης η πιο βασική λειτουργία εργασίας. Η πραγματική λειτουργία χρησιμοποιείται κυρίως σε πρώιμα λειτουργικά συστήματα MS-DOS και άλλα απλά λειτουργικά περιβάλλοντα. Σε πραγματική λειτουργία, ο επεξεργαστής έχει άμεση πρόσβαση σε 1MB φυσικής μνήμης. Αυτή η λειτουργία είναι πλήρως συμβατή με τον τρόπο λειτουργίας του επεξεργαστή 8086, εξ ου και η ονομασία "πραγματική λειτουργία".

Χαρακτηριστικά πραγματικής λειτουργίας

  1. Αντιμετωπίστε τους περιορισμούς χώρου

    • Σε πραγματική λειτουργία, ο επεξεργαστής μπορεί να έχει πρόσβαση μόνο σε 1MB χώρου μνήμης (από 0x00000 έως 0xFFFFFF).
    • Ο χώρος μνήμης περιορίζεται από το δίαυλο διευθύνσεων 20-bit.
  2. Διεύθυνση τμήματος και διεύθυνση μετατόπισης

    • Η πραγματική λειτουργία χρησιμοποιεί τη μέθοδο segment:offset (τμήμα) για τη διευθυνσιοδότηση μνήμης.
    • Η διεύθυνση τμήματος πολλαπλασιάζεται επί 16 (δηλαδή, μετατοπίζεται αριστερά κατά 4 bit) και προστίθεται στη διεύθυνση μετατόπισης για να σχηματιστεί μια φυσική διεύθυνση 20 bit.
    • Για παράδειγμα, εάν η διεύθυνση τμήματος είναι 0x1234 και η διεύθυνση μετατόπισης είναι 0x5678, η φυσική διεύθυνση είναι: Φυσική διεύθυνση = (0x1234×16) + 0x5678 = 0x12340 + 0x5678 = 0x179B8κείμενο{φυσική διεύθυνση} = (0x16) = 4 φορές = (0x1) 0x12340 + 0x5678 = 0x179B8 φυσική διεύθυνση=(0x1234×16)+0x5678=0x12340+0x5678=0x179B8
  3. Χωρίς προστασία μνήμης

    • Η πραγματική λειτουργία δεν διαθέτει μηχανισμό προστασίας μνήμης και το πρόγραμμα μπορεί αυθαίρετα να έχει πρόσβαση σε ολόκληρο το χώρο μνήμης 1 MB, συμπεριλαμβανομένης της περιοχής του λειτουργικού συστήματος και των περιοχών άλλων προγραμμάτων.
    • Αυτό επιτρέπει στα προγράμματα να παρεμβαίνουν μεταξύ τους και να οδηγούν εύκολα σε σφάλματα συστήματος.
  4. άμεση πρόσβαση υλικού

    • Η πραγματική λειτουργία επιτρέπει την άμεση πρόσβαση σε συσκευές υλικού και θύρες I/O.
    • Σε πραγματική λειτουργία, τα προγράμματα μπορούν να αλληλεπιδρούν με συσκευές υλικού απευθείας χρησιμοποιώντας οδηγίες εισόδου/εξόδου, όπως IN και OUT.
  5. Διακοπές και προετοιμασία επεξεργαστή

    • Η πραγματική λειτουργία υποστηρίζει διακοπές υλικού και διακοπές λογισμικού, οι οποίες διαχειρίζονται χρησιμοποιώντας τον διανυσματικό πίνακα διακοπής (IVT).
    • Ο πίνακας διανυσμάτων διακοπών αποθηκεύεται στη χαμηλότερη περιοχή μνήμης 1 KB (από 0x00000 έως 0x003FF).
    • Μετά την ενεργοποίηση ή την επαναφορά του επεξεργαστή, θα μπει αυτόματα σε πραγματική λειτουργία και θα ξεκινήσει να εκτελεί τον κώδικα από τη διεύθυνση 0xFFFF0.
  6. Περιορισμοί στον εκτελέσιμο κώδικα

    • Το μέγεθος του εκτελέσιμου τμήματος κώδικα σε πραγματική λειτουργία είναι περιορισμένο, συνήθως ένα τμήμα κώδικα είναι έως 64 KB (0x0000 έως 0xFFFF).

Διάταξη μνήμης πραγματικής λειτουργίας

Στην πραγματική λειτουργία, η διάταξη μνήμης περιλαμβάνει συνήθως τα ακόλουθα μέρη:

  1. Περιοχή BIOS

    • Η μνήμη υψηλής τεχνολογίας (από 0xF0000 έως 0xFFFFFF) χρησιμοποιείται συνήθως για την αποθήκευση κώδικα και δεδομένων BIOS.
    • Κατά την ενεργοποίηση ή την επαναφορά, ο επεξεργαστής αρχίζει να εκτελεί τον κώδικα BIOS στο 0xFFFF0.
  2. Διανυσματικός πίνακας διακοπής

    • Η χαμηλότερη περιοχή μνήμης 1 KB (από 0x00000 έως 0x003FF) αποθηκεύει τον διανυσματικό πίνακα διακοπών.
    • Κάθε διάνυσμα διακοπής καταλαμβάνει 4 byte (διεύθυνση τμήματος 2 byte και διεύθυνση μετατόπισης 2 byte).
  3. Λειτουργικά συστήματα και εφαρμογές

    • Η υπόλοιπη περιοχή μνήμης χρησιμοποιείται για τον κωδικό του λειτουργικού συστήματος, τον κωδικό εφαρμογής και τα δεδομένα.

1.2 Λειτουργία προστασίας

ΣΦΑΙΡΙΚΗ ΕΙΚΟΝΑ

Η Προστατευμένη λειτουργία είναι μια προηγμένη λειτουργία εργασίας που εισήχθη από τον επεξεργαστή 80x86 Σε σύγκριση με την πραγματική λειτουργία, παρέχει πιο ισχυρές λειτουργίες διαχείρισης μνήμης και προστασίας. Η προστατευμένη λειτουργία εισήχθη για πρώτη φορά στον επεξεργαστή 80286 και επεκτάθηκε και βελτιώθηκε περαιτέρω στους επεξεργαστές 80386 και μεταγενέστερους.

Χαρακτηριστικά της προστατευμένης λειτουργίας

  1. Εκτεταμένος χώρος διευθύνσεων μνήμης

    • Η προστατευμένη λειτουργία υποστηρίζει δίαυλο διευθύνσεων 24-bit ή 32-bit και μπορεί να έχει πρόσβαση σε 4 GB φυσικής μνήμης (σε 80386 και μεταγενέστερες).
    • Οι επιλογείς τμημάτων και οι περιγραφείς τμημάτων χρησιμοποιούνται για τη διαχείριση της μνήμης, επιτρέποντας πιο σύνθετη διάταξη και διαχείριση της μνήμης.
  2. προστασία μνήμης

    • Μέσω των περιγραφέων τμημάτων και των πινάκων σελίδων, η προστατευμένη λειτουργία μπορεί να εφαρμόσει προστασία μνήμης για να αποτρέψει τα προγράμματα από παράνομη πρόσβαση στη μνήμη άλλων προγραμμάτων ή λειτουργικών συστημάτων.
    • Υποστηρίζει τμήματα κώδικα και δεδομένων διαφορετικών επιπέδων προνομίων (επίπεδο 0 έως επίπεδο 3) για την επίτευξη απομόνωσης μεταξύ λειτουργίας χρήστη και λειτουργίας πυρήνα.
  3. Μηχανισμός τηλεειδοποίησης

    • Υποστηρίζει μηχανισμό σελιδοποίησης και αντιστοιχίζει εικονικές διευθύνσεις σε φυσικές διευθύνσεις μέσω πινάκων σελίδων για περαιτέρω βελτίωση των δυνατοτήτων διαχείρισης μνήμης.
    • Το μέγεθος της σελίδας είναι συνήθως 4KB, αλλά υποστηρίζονται και μεγάλες σελίδες (όπως 4MB).
  4. Multitasking με υποστήριξη υλικού

    • Παρέχει εναλλαγή πολλαπλών εργασιών που υποστηρίζεται από υλικό, συμπεριλαμβανομένου του Task State Segment (TSS) και του Task Register (Task Register).
    • Υποστηρίζει πύλη εργασιών για εναλλαγή και προστασία μεταξύ εργασιών.
  5. Βελτιωμένος χειρισμός διακοπών και εξαιρέσεων

    • Σε προστατευμένη λειτουργία, ο Πίνακας Περιγραφής Διακοπών (IDT) χρησιμοποιείται για τη διαχείριση διακοπών και χειρισμού εξαιρέσεων.
    • Το IDT υποστηρίζει περιγραφείς πύλης (Περιγραφέας πύλης), συμπεριλαμβανομένων των πυλών διακοπής, των πυλών παγίδευσης και των πυλών εργασιών.
  6. Εικονική μνήμη

    • Υποστηρίζει εικονική μνήμη και υλοποιεί εικονικό χώρο διευθύνσεων μέσω του μηχανισμού σελιδοποίησης, επιτρέποντας στο πρόγραμμα να χρησιμοποιεί μεγαλύτερο χώρο διευθύνσεων από την πραγματική φυσική μνήμη.

Διαχείριση μνήμης προστατευμένης λειτουργίας

  1. Επιλογείς τμημάτων και περιγραφείς τμημάτων

    • Κάθε επιλογέας τμήματος δείχνει σε έναν περιγραφέα τμήματος, ο οποίος περιέχει τη διεύθυνση βάσης τμήματος, το όριο τμήματος και τα χαρακτηριστικά τμήματος (όπως δικαιώματα και τύπος).
    • Οι επιλογείς τμημάτων και οι περιγραφείς τμημάτων διαχειρίζονται από τον Παγκόσμιο Πίνακα Περιγραφών (GDT) και τον Πίνακα Τοπικών Περιγραφέων (LDT).
  2. Μηχανισμός τηλεειδοποίησης

    • Ο μηχανισμός σελιδοποίησης διαιρεί την εικονική διεύθυνση σε κατάλογο σελίδων (Κατάλογος σελίδας), πίνακα σελίδων (Πίνακας σελίδας) και πλαίσιο σελίδας (Πλαίσιο σελίδας).
    • Μέσω του καταλόγου σελίδων και του πίνακα σελίδων, οι εικονικές διευθύνσεις αντιστοιχίζονται σε φυσικές διευθύνσεις για να επιτευχθεί προστασία και διαχείριση της μνήμης.

Εφαρμογή προστατευμένης λειτουργίας

Η προστατευμένη λειτουργία χρησιμοποιείται ευρέως σε σύγχρονα λειτουργικά συστήματα, όπως Windows, Linux, Unix, κ.λπ. Χρησιμοποιούν τα χαρακτηριστικά της προστατευμένης λειτουργίας για την υλοποίηση προηγμένων λειτουργιών όπως πολλαπλών εργασιών, πολλαπλών χρηστών και προστασίας μνήμης. Μέσω της προστατευμένης λειτουργίας, το λειτουργικό σύστημα μπορεί να διαχειριστεί αποτελεσματικά τους πόρους υλικού και να παρέχει ένα σταθερό και ασφαλές περιβάλλον λειτουργίας.

Η προστατευμένη λειτουργία είναι το θεμέλιο των σύγχρονων λειτουργικών συστημάτων και εφαρμογών, αξιοποιώντας πλήρως τις προηγμένες δυνατότητες του επεξεργαστή 80x86 για τη βελτίωση της σταθερότητας και της ασφάλειας του συστήματος.

1.3 Εικονική λειτουργία 8086

Επισκόπηση λειτουργίας Virtual 8086

Η λειτουργία Virtual 8086 (Virtual 8086 Mode) είναι μια ειδική λειτουργία που παρέχεται από τον επεξεργαστή 80x86 σε προστατευμένη λειτουργία, επιτρέποντας στον επεξεργαστή να εκτελεί 8086 προγράμματα σαν να εκτελούνταν σε πραγματική λειτουργία. Αυτή η λειτουργία χρησιμοποιείται κυρίως για συμβατότητα προς τα πίσω, επιτρέποντας σε παλαιότερες εκδόσεις προγραμμάτων DOS να εκτελούνται σε σύγχρονα λειτουργικά συστήματα όπως τα Windows και το Linux χωρίς να εγκαταλείπουν την προστατευμένη λειτουργία.

Χαρακτηριστικά της εικονικής λειτουργίας 8086

  1. Συμβατότητα πραγματικής λειτουργίας

    • Η λειτουργία εικονικής 8086 επιτρέπει στον επεξεργαστή να προσομοιώνει το περιβάλλον λειτουργίας σε πραγματική λειτουργία και υποστηρίζει το σύνολο εντολών 8086 και τον χώρο διευθύνσεων.
    • Ο επεξεργαστής μπορεί να εκτελέσει 8086 προγράμματα σε προστατευμένη λειτουργία, διατηρώντας παράλληλα τις δυνατότητες και τα πλεονεκτήματα της προστατευμένης λειτουργίας.
  2. Μηχανισμοί τηλεειδοποίησης και προστασίας

    • Στην εικονική λειτουργία 8086, ο επεξεργαστής μπορεί ακόμα να χρησιμοποιήσει τον μηχανισμό σελιδοποίησης προστατευμένης λειτουργίας για την υλοποίηση εικονικής μνήμης και προστασίας μνήμης.
    • Μέσω του πίνακα σελίδων, ο χώρος διευθύνσεων σε εικονική λειτουργία 8086 μπορεί να αντιστοιχιστεί στη φυσική μνήμη, παρέχοντας απομόνωση και προστασία της μνήμης.
  3. Διακοπή και χειρισμός εξαιρέσεων

    • Η εικονική λειτουργία 8086 υποστηρίζει χειρισμό διακοπών και εξαιρέσεων, η διαχείριση των οποίων μπορεί να γίνει μέσω του πίνακα περιγραφής διακοπής προστατευμένης λειτουργίας (IDT).
    • Οι διακοπές και οι εξαιρέσεις μπορούν να αντιμετωπιστούν από την εικονική οθόνη 8086 (συνήθως ο πυρήνας του λειτουργικού συστήματος), διασφαλίζοντας τη σταθερότητα και την ασφάλεια του συστήματος.
  4. Υποστήριξη εικονικοποίησης υλικού

    • Ορισμένοι σύγχρονοι επεξεργαστές παρέχουν τεχνολογία εικονικοποίησης που υποστηρίζεται από υλικό που μπορεί να εφαρμόσει την εικονική λειτουργία 8086 πιο αποτελεσματικά.
    • Για παράδειγμα, η τεχνολογία VT-x της Intel και η τεχνολογία AMD-V της AMD μπορούν να παρέχουν υποστήριξη εικονικοποίησης με επιτάχυνση υλικού και να βελτιώσουν την απόδοση.

Διαχείριση μνήμης σε εικονική λειτουργία 8086

  1. Τμήμα: διευθυνσιοδότηση μετατόπισης

    • Στην εικονική λειτουργία 8086, η μέθοδος διευθυνσιοδότησης μνήμης είναι η ίδια όπως στην πραγματική λειτουργία, χρησιμοποιώντας τη λειτουργία τμήματος: μετατόπισης (τμήματος).
    • Η διεύθυνση τμήματος και η διεύθυνση μετατόπισης μαζί σχηματίζουν μια φυσική διεύθυνση 20-bit, η οποία μπορεί να έχει πρόσβαση έως και 1 MB χώρου μνήμης.
  2. Μηχανισμός τηλεειδοποίησης

    • Η εικονική λειτουργία 8086 υποστηρίζει τον μηχανισμό σελιδοποίησης, ο οποίος μπορεί να αντιστοιχίσει τη διεύθυνση πραγματικής λειτουργίας 20-bit στον εικονικό χώρο διευθύνσεων σε προστατευμένη λειτουργία.
    • Μέσω των πινάκων σελίδων, μπορεί να επιτευχθεί προστασία και απομόνωση μνήμης για να αποτραπεί η παράνομη πρόσβαση προγραμμάτων σε λειτουργία εικονικής λειτουργίας 8086 σε άλλες περιοχές μνήμης.

Εφαρμογή εικονικής λειτουργίας 8086

  1. Εκτελέστε παλαιότερα προγράμματα DOS

    • Η λειτουργία εικονικής 8086 χρησιμοποιείται κυρίως για την εκτέλεση παλαιότερων εκδόσεων προγραμμάτων και εφαρμογών DOS, παρέχοντας συμβατότητα προς τα πίσω.
    • Στα σύγχρονα λειτουργικά συστήματα, η εικονική λειτουργία 8086 σάς επιτρέπει να εκτελείτε ορισμένα παλιά προγράμματα που πρέπει να εκτελούνται σε πραγματική λειτουργία.
  2. Εικονικές μηχανές και εξομοιωτές

    • Ορισμένες εικονικές μηχανές και εξομοιωτές χρησιμοποιούν εικονική λειτουργία 8086 για την υποστήριξη παλαιότερων λειτουργικών συστημάτων και λογισμικού.
    • Για παράδειγμα, εξομοιωτές όπως το DOSBox προσομοιώνουν το περιβάλλον DOS μέσω εικονικής λειτουργίας 8086, επιτρέποντας στους χρήστες να εκτελούν κλασικά παιχνίδια και εφαρμογές DOS.

Περιορισμοί εικονικής λειτουργίας 8086

  1. χώρο διευθύνσεων μνήμης

    • Στην εικονική λειτουργία 8086, το πρόγραμμα μπορεί να έχει πρόσβαση μόνο σε 1 MB χώρου διευθύνσεων στη μνήμη, ο οποίος περιορίζεται από την πραγματική λειτουργία.
  2. Γενικά έξοδα απόδοσης

    • Η υλοποίηση της εικονικής λειτουργίας 8086 απαιτεί την υποστήριξη προστατευμένης λειτουργίας, η οποία μπορεί να προκαλέσει ορισμένες επιβαρύνσεις απόδοσης.
    • Ο χειρισμός διακοπών και εξαιρέσεων απαιτεί την παρέμβαση της εικονικής οθόνης 8086 (πυρήνας λειτουργικού συστήματος), η οποία αυξάνει την πολυπλοκότητα της επεξεργασίας.
  3. Περιορισμοί υλικού

    • Δεν υποστηρίζει πλήρως όλο το υλικό την εικονική λειτουργία 8086 και ορισμένες δυνατότητες υλικού ενδέχεται να μην είναι διαθέσιμες σε λειτουργία εικονικής 8086.

Συνοψίζω

Η λειτουργία Virtual 8086 είναι μια ειδική λειτουργία που παρέχεται από τον επεξεργαστή 80x86 σε προστατευμένη λειτουργία, κυρίως για συμβατότητα προς τα πίσω με παλαιότερες εκδόσεις προγραμμάτων DOS. Η λειτουργία Virtual 8086 επιτρέπει στον επεξεργαστή να προσομοιώνει ένα περιβάλλον λειτουργίας πραγματικής λειτουργίας σε προστατευμένη λειτουργία, διατηρώντας παράλληλα τα χαρακτηριστικά και τα πλεονεκτήματα της προστατευμένης λειτουργίας. Αυτή η λειτουργία χρησιμοποιείται ευρέως για την εκτέλεση παλαιού λογισμικού, εικονικών μηχανών και εξομοιωτών.

2. Διαχείριση μνήμης των Windows

2.1 Διάταξη μνήμης λειτουργικού συστήματος DOS

Η διαχείριση μνήμης του λειτουργικού συστήματος DOS (Disk Operating System) βασίζεται κυρίως στο μοντέλο μνήμης πραγματικής λειτουργίας του επεξεργαστή 8086/8088. Ο χώρος διευθύνσεων μνήμης σε πραγματική λειτουργία είναι 1MB, από 0x00000 έως 0xFFFFFF. Αυτός ο χώρος διευθύνσεων 1 MB χωρίζεται σε πολλές κύριες περιοχές, καθεμία με συγκεκριμένο σκοπό. Ακολουθεί μια λεπτομερής εισαγωγή στη διάταξη μνήμης του λειτουργικού συστήματος DOS.

μοντέλο μνήμης πραγματικής λειτουργίας

Στην πραγματική λειτουργία, η πρόσβαση στη διεύθυνση μνήμης γίνεται συνδυάζοντας τη διεύθυνση τμήματος και τη διεύθυνση μετατόπισης σε μια φυσική διεύθυνση 20-bit. Η διεύθυνση τμήματος μετατοπίζεται αριστερά κατά 4 bit και η διεύθυνση μετατόπισης προστίθεται για να σχηματιστεί η πραγματική φυσική διεύθυνση.

διάταξη μνήμης

Η διάταξη του χώρου μνήμης 1MB σε πραγματική λειτουργία είναι περίπου η εξής:

  1. Διανυσματικός πίνακας διακοπής (IVT): 0x00000 - 0x003FF

    • Καταλαμβάνει 1KB (256 διανύσματα, 4 byte το καθένα).
    • Αποθηκεύστε τη διεύθυνση εισόδου και τις σχετικές πληροφορίες της ρουτίνας υπηρεσίας διακοπής.
  2. Περιοχή δεδομένων BIOS (BDA): 0x00400 - 0x004FF

    • Περίπου 256 byte.
    • Αποθηκεύει τις παραμέτρους της συσκευής συστήματος και υλικού, όπως πληροφορίες σκληρού δίσκου, σειριακής θύρας, παράλληλης θύρας κ.λπ.
  3. Μνήμη παλαιού τύπου (συμβατική μνήμη): 0x00500 - 0x9FFFF

    • 640 KB, που χρησιμοποιείται κυρίως για λειτουργικά συστήματα DOS, εφαρμογές DOS και προγράμματα μόνιμης μνήμης (TSR).
    • Μπορεί να χρησιμοποιηθεί ως κώδικας προγράμματος, δεδομένα, στοίβα κ.λπ.
  4. Ενδιάμεση μνήμη οθόνης: 0xA0000 - 0xBFFFF

    • Η περιοχή μνήμης που χρησιμοποιείται από τον προσαρμογέα οθόνης.
    • 0xA0000 - 0xAFFFF: 64KB, που χρησιμοποιείται συνήθως στη λειτουργία γραφικών των καρτών γραφικών EGA/VGA.
    • 0xB0000 - 0xB7FFF: 32 KB, συνήθως χρησιμοποιείται για προσαρμογείς μονόχρωμης οθόνης (MDA).
    • 0xB8000 - 0xBFFFF: 32 KB, συνήθως χρησιμοποιείται για έγχρωμη εμφάνιση κειμένου (λειτουργία κειμένου CGA, EGA, VGA).
  5. Εκτεταμένη περιοχή δεδομένων BIOS (EBDA): 0xC0000 - 0xC7FFF

    • Περίπου 32 KB, το οποίο αποθηκεύει ορισμένα εκτεταμένα δεδομένα BIOS και τον κωδικό BIOS του προσαρμογέα.
  6. Περιοχή επέκτασης BIOS: 0xC8000 - 0xEFFFF

    • Χρησιμοποιείται κυρίως για BIOS και προγράμματα οδήγησης καρτών επέκτασης (όπως προσαρμογείς δικτύου, ελεγκτές SCSI κ.λπ.).
  7. BIOS συστήματος: 0xF0000 - 0xFFFFF

    • 64KB, αποθηκεύει τον κωδικό BIOS του συστήματος.
    • Παρέχει βασική προετοιμασία συστήματος, ρουτίνα υπηρεσίας διακοπής, έλεγχο υλικού και άλλες λειτουργίες.

2.2 80386 μηχανισμός διευθυνσιοδότησης μνήμης

Ο επεξεργαστής Intel 80386 εισήγαγε έναν πιο προηγμένο μηχανισμό διευθυνσιοδότησης μνήμης, παρέχοντας πιο ισχυρές δυνατότητες διαχείρισης και προστασίας της μνήμης από τους προκατόχους του. Το 80386 υποστηρίζει δύο λειτουργίες διευθυνσιοδότησης κύριας μνήμης:πραγματική λειτουργίακαιπροστατευμένη λειτουργία . Σε προστατευμένη λειτουργία, εισάγεται επίσης ένας μηχανισμός σελιδοποίησης για περαιτέρω βελτίωση των δυνατοτήτων διαχείρισης μνήμης. Ακολουθεί αναλυτική εισαγωγή:

1. Πραγματική λειτουργία

Στην πραγματική λειτουργία, ο επεξεργαστής 80386 έχει την ίδια μέθοδο διευθυνσιοδότησης μνήμης με τον 8086/8088. Χρησιμοποιεί έναν δίαυλο διευθύνσεων 20 bit και μπορεί να έχει πρόσβαση σε χώρο μνήμης 1 MB. Η διεύθυνση υπολογίζεται από τη διεύθυνση τμήματος και τη διεύθυνση μετατόπισης:

  • διεύθυνση τμήματος: Μετατόπιση αριστερά κατά 4 bit.
  • όφσετ διεύθυνση: Προστέθηκε στο αριστερό αποτέλεσμα μετατόπισης της διεύθυνσης τμήματος, λαμβάνεται η φυσική διεύθυνση 20-bit.
物理地址 = (段地址 << 4) + 偏移地址

2. Προστατευμένη λειτουργία

Η προστατευμένη λειτουργία είναι ο κύριος τρόπος λειτουργίας του επεξεργαστή 80386, ο οποίος παρέχει βελτιωμένες λειτουργίες προστασίας και διαχείρισης μνήμης. Η διευθυνσιοδότηση μνήμης σε προστατευμένη λειτουργία περιλαμβάνει δύο επίπεδα μηχανισμών:μηχανισμός τμηματοποίησηςκαιΜηχανισμός τηλεειδοποίησης

2.1 Μηχανισμός τμηματοποίησης

Σε προστατευμένη λειτουργία, ο επεξεργαστής 80386 χρησιμοποιεί επιλογέα τμήματος και περιγραφέα τμημάτων για τη διαχείριση τμημάτων. Οι περιγραφείς τμημάτων αποθηκεύονται στον πίνακα καθολικής περιγραφής (GDT) ή στον πίνακα τοπικών περιγραφών (LDT).

  • επιλογέας τμήματος: 16 bit, συμπεριλαμβανομένων τριών πεδίων:

    • δείκτης: 13 bit, καθορίζει τη θέση του περιγραφέα τμήματος σε GDT ή LDT.
    • TI (Δείκτης πίνακα): 1 bit, υποδεικνύοντας εάν θα χρησιμοποιηθεί GDT (0) ή LDT (1).
    • RPL (Ζητούμενο επίπεδο προνομίου): 2 bit, προσδιορίζοντας το ζητούμενο επίπεδο προνομίων.
  • περιγραφέας τμήματος: 8 byte, συμπεριλαμβανομένων των ακόλουθων πεδίων:

    • Διεύθυνση βάσης: 32 bit, διεύθυνση έναρξης του τμήματος.
    • Όριο τμήματος (Όριο): 20 bit, μέγεθος τμήματος.
    • Δικαιώματα πρόσβασης και ιδιότητες: 12 bit, που περιγράφουν τον τύπο τμήματος, το επίπεδο προνομίων κ.λπ.

Ο υπολογισμός της γραμμικής διεύθυνσης κάτω από τον μηχανισμό τμηματοποίησης είναι ο εξής:

线性地址 = 段基址 + 偏移地址

2.2 Μηχανισμός τηλεειδοποίησης

Ο μηχανισμός σελιδοποίησης είναι μια άλλη μέθοδος διαχείρισης μνήμης που παρέχεται από τον επεξεργαστή 80386 σε προστατευμένη λειτουργία. Πραγματοποιεί εικονικοποίηση και προστασία της μνήμης μετατρέποντας τις γραμμικές διευθύνσεις σε φυσικές διευθύνσεις. Ο μηχανισμός σελιδοποίησης περιλαμβάνει καταλόγους σελίδων, πίνακες σελίδων και πλαίσια σελίδων.

  • κατάλογος σελίδων: Περιέχει καταχωρήσεις καταλόγου σελίδων (PDE), κάθε PDE οδηγεί σε έναν πίνακα σελίδων.
  • πίνακας σελίδων: Περιέχει καταχωρήσεις πίνακα σελίδων (PTE), κάθε PTE δείχνει σε ένα πλαίσιο σελίδας.
  • πλαίσιο σελίδας: Το πραγματικό μπλοκ φυσικής μνήμης, συνήθως 4KB.

Η μετάφραση διεύθυνσης του μηχανισμού σελιδοποίησης είναι η εξής:

  1. Οι γραμμικές διευθύνσεις χωρίζονται σε τρία μέρη: κατάλογο, πίνακα και μετατόπιση εντός σελίδας.
  2. Η ενότητα καταλόγου ευρετηριάζει τον κατάλογο σελίδων για να βρει το αντίστοιχο PDE.
  3. Η ενότητα πίνακα ευρετηριάζει τον πίνακα σελίδων για να βρει το αντίστοιχο PTE.
  4. Η μετατόπιση εντός σελίδας προστίθεται στη διεύθυνση βάσης του πλαισίου σελίδας για να ληφθεί η φυσική διεύθυνση.
物理地址 = 页帧基址 + 页内偏移

Σχηματικό διάγραμμα μηχανισμού σελιδοποίησης:

  1. +----------------+----------------+----------------+
  2. | 页目录(10位) | 页表(10位) | 页内偏移(12位)|
  3. +----------------+----------------+----------------+

3. 80386 Μονάδα διαχείρισης μνήμης (MMU)

Η MMU (Μονάδα Διαχείρισης Μνήμης) του 80386 είναι υπεύθυνη για την τμηματοποίηση και τη μετάφραση διευθύνσεων σελιδοποίησης και εφαρμόζει προστασία μνήμης.

  • Μητρώο CR0: Καταχώρηση ελέγχου για ενεργοποίηση/απενεργοποίηση προστατευμένης λειτουργίας και σελιδοποίησης.

    • bit PE (Ενεργοποίηση προστασίας): Ενεργοποίηση προστατευμένης λειτουργίας.
    • bit PG (Ενεργοποίηση σελιδοποίησης): Ενεργοποίηση σελιδοποίησης.
  • Μητρώο CR3: Η βασική διεύθυνση του καταλόγου σελίδων αποθήκευσης.

  • Μητρώο CR2: Αποθηκεύει τη γραμμική διεύθυνση του σφάλματος της τελευταίας σελίδας.

4. Μηχανισμός προστασίας

Σε προστατευμένη λειτουργία, ο επεξεργαστής 80386 παρέχει μια ποικιλία μηχανισμών προστασίας για τη διασφάλιση της ασφάλειας της μνήμης και του συστήματος:

  • Επίπεδα προνομίων : Από το 0 έως το 3, υπάρχουν συνολικά τέσσερα επίπεδα, με το επίπεδο 0 να είναι το υψηλότερο. Ελέγξτε την πρόσβαση σε κώδικα και δεδομένα.
  • προστασία τμήματος: Εφαρμογή ελέγχου ορίων τμήματος και ελέγχου πρόσβασης μέσω των πεδίων χαρακτηριστικών στον περιγραφέα τμήματος.
  • προστασία σελίδας: Μέσω του πεδίου χαρακτηριστικών στο PTE, πραγματοποιείται ο έλεγχος δικαιωμάτων ανάγνωσης, εγγραφής και εκτέλεσης της σελίδας.

2.3 Διάταξη μνήμης Windows

1. Εικονική μνήμη

Το λειτουργικό σύστημα Windows χρησιμοποιεί διαχείριση εικονικής μνήμης, η οποία συνδυάζει φυσική μνήμη (RAM) και αρχεία εικονικής μνήμης (αρχεία σελίδας) στον σκληρό δίσκο για να παρέχει έναν ανεξάρτητο εικονικό χώρο διευθύνσεων για κάθε διεργασία. Κάθε διεργασία έχει συνήθως 4 GB εικονικού χώρου διευθύνσεων (συστήματα 32 bit), εκ των οποίων τα 2 GB χρησιμοποιούνται από προγράμματα λειτουργίας χρήστη και τα 2 GB από τη λειτουργία πυρήνα. Τα συστήματα 64-bit έχουν μεγαλύτερο χώρο εικονικών διευθύνσεων.

2. Διάταξη χώρου εικονικών διευθύνσεων

Ο χώρος εικονικών διευθύνσεων χωρίζεται σε περιοχές λειτουργίας χρήστη και πυρήνα:

χώρο διεύθυνσης λειτουργίας χρήστη

  • 0x00000000 - 0x7FFFFFFFF: Χώρος διευθύνσεων λειτουργίας χρήστη, για χρήση από εφαρμογές.
  • Σωρός: Δυναμική περιοχή εκχώρησης μνήμης, η εφαρμογή εκχωρεί και απελευθερώνει μνήμη κατά το χρόνο εκτέλεσης.
  • Σωρός: Κάθε νήμα έχει τη δική του στοίβα για κλήσεις συναρτήσεων και τοπικές μεταβλητές.
  • Κοινή μνήμη: Κοινόχρηστα τμήματα δεδομένων μεταξύ διαφορετικών διεργασιών.

χώρος διευθύνσεων λειτουργίας πυρήνα

  • 0x80000000 - 0xFFFFFFFF: Χώρος διευθύνσεων σε λειτουργία πυρήνα, που χρησιμοποιείται από τον πυρήνα και τα προγράμματα οδήγησης του λειτουργικού συστήματος.
  • Κώδικας πυρήνα και δεδομένα: Ο κώδικας και τα καθολικά δεδομένα του πυρήνα του λειτουργικού συστήματος.
  • Προσωρινή μνήμη συστήματος: Χρησιμοποιείται για την προσωρινή αποθήκευση του συστήματος αρχείων για τη βελτίωση της απόδοσης πρόσβασης στα αρχεία.
  • πρόγραμμα οδήγησης συσκευής: Κωδικός προγράμματος οδήγησης και δεδομένα.

3. Σελιδοποίηση μνήμης

Τα Windows χρησιμοποιούν έναν μηχανισμό σελιδοποίησης για τη διαχείριση της μνήμης και τη μετατροπή εικονικών διευθύνσεων σε φυσικές διευθύνσεις. Η βασική μονάδα σελιδοποίησης είναι μια σελίδα, συνήθως 4KB.

Δομή πίνακα σελίδων

  • Κατάλογος σελίδων: Περιέχει την καταχώρηση καταλόγου σελίδας (PDE), που δείχνει στον πίνακα σελίδων.
  • Πίνακας σελίδας: Περιέχει καταχωρήσεις πίνακα σελίδων (PTE) που παραπέμπουν σε πραγματικές σελίδες φυσικής μνήμης.

4. Μονάδα διαχείρισης μνήμης (MMU)

Η μονάδα διαχείρισης μνήμης του επεξεργαστή (MMU) είναι υπεύθυνη για τη μετατροπή εικονικών διευθύνσεων σε φυσικές διευθύνσεις, την αντικατάσταση σελίδων και την προστασία της μνήμης. Το λειτουργικό σύστημα Windows υλοποιεί τις ακόλουθες λειτουργίες μέσω του MMU:

  • μετάφραση διεύθυνσης: Αντιστοιχίζει εικονικές διευθύνσεις σε φυσικές διευθύνσεις.
  • προστασία μνήμης: Έλεγχος δικαιωμάτων πρόσβασης σελίδας (ανάγνωση, εγγραφή, εκτέλεση).
  • Αντικατάσταση σελίδας: Αλλάξτε σελίδες που δεν χρησιμοποιούνται συχνά στο αρχείο σελίδας του σκληρού δίσκου για να ελευθερώσετε φυσική μνήμη.

5. Προστασία μνήμης

Το λειτουργικό σύστημα Windows προστατεύει τη μνήμη μέσω των παρακάτω μηχανισμών:

  • Επίπεδο προνομίων: Βεβαιωθείτε ότι τα προγράμματα σε λειτουργία χρήστη δεν μπορούν να έχουν άμεση πρόσβαση στη μνήμη λειτουργίας πυρήνα.
  • Άδειες σελίδας: Ελέγξτε τον τύπο πρόσβασης (ανάγνωση, εγγραφή, εκτέλεση) κάθε σελίδας.
  • Έλεγχος πρόσβασης: Ο πυρήνας του λειτουργικού συστήματος ορίζει δικαιώματα πρόσβασης για να αποτρέψει τη μη εξουσιοδοτημένη πρόσβαση στη μνήμη.

6. Εκχώρηση μνήμης

Τα Windows χρησιμοποιούν διάφορες στρατηγικές και δομές δεδομένων για την εκχώρηση μνήμης:

  • κατανεμητής σελιδοποίησης: Διαχειριστείτε την κατανομή σελιδοποίησης και την απελευθέρωση εικονικής μνήμης.
  • Υπεύθυνος σωρού: Παρέχει αποτελεσματική κατανομή και κατανομή μνήμης για εφαρμογές.
  • κατανεμητής μνήμης πυρήνα: Διαχειρίζεται τη μνήμη λειτουργίας πυρήνα, συμπεριλαμβανομένου του εκχωρητή πισίνας και του μη σελιδοποιημένου χώρου συγκέντρωσης.

7. API διαχείρισης μνήμης

Τα Windows παρέχουν ένα σύνολο API διαχείρισης μνήμης για χρήση από εφαρμογές και το σύστημα:

  • VirtualAlloc/VirtualFree: Εκχώρηση και απελευθέρωση εικονικής μνήμης.
  • HeapAlloc/HeapFree: Εκχωρήστε και ελευθερώστε τη μνήμη στο σωρό.
  • GlobalAlloc/GlobalFree: Εκχώρηση και απελευθέρωση παγκόσμιων μπλοκ μνήμης.
  • LocalAlloc/LocalFree: Εκχωρήστε και ελευθερώστε μπλοκ τοπικής μνήμης.

8. Αρχείο σελίδας

Τα Windows χρησιμοποιούν το αρχείο σελίδας (Pagefile.sys) ως μέρος της εικονικής μνήμης Όταν η φυσική μνήμη είναι ανεπαρκής, οι σελίδες που δεν χρησιμοποιούνται συχνά ανταλλάσσονται στο αρχείο σελίδας. Η θέση και το μέγεθος του αρχείου σελίδας μπορούν να ρυθμιστούν από τον χρήστη.

3. Προστασία προνομίων των Windows

3.1 80386 διακοπές και εξαιρέσεις

1. Ταξινόμηση διακοπών και εξαιρέσεων

Οι διακοπές και οι εξαιρέσεις μπορούν να χωριστούν στις ακόλουθες κατηγορίες:

  1. Διακοπές υλικού: Αποστέλλεται από εξωτερικές συσκευές, όπως πληκτρολόγιο, ποντίκι, σκληρός δίσκος κ.λπ.
  2. Διακοπές λογισμικού: Περασμένο από λογισμικό INT Η εντολή ενεργοποιείται.
  3. Εξαιρέσεις: Ενεργοποιείται από σφάλματα ή ειδικές συνθήκες που εντοπίζονται από τον επεξεργαστή, όπως σφάλματα διαίρεσης με μηδέν, σφάλματα σελίδας κ.λπ.

2. Διανυσματικός πίνακας διακοπής (IVT)

Ο επεξεργαστής 80386 χρησιμοποιεί έναν πίνακα διανυσμάτων διακοπής για τη διαχείριση των διακοπών και των εξαιρέσεων. Το IVT είναι ένας πίνακας 256 καταχωρήσεων, η καθεμία καταλαμβάνει 4 byte, αποθηκεύοντας τη διεύθυνση ενός χειριστή διακοπής ή εξαίρεσης. Η βασική διεύθυνση του IVT αποθηκεύεται στο IDTR (Interrupt Descriptor Table Register).

3. Πίνακας περιγραφής διακοπής (IDT)

Σε προστατευμένη λειτουργία, ο επεξεργαστής 80386 χρησιμοποιεί έναν πίνακα περιγραφής διακοπής (IDT) για την αποθήκευση των χειριστών διακοπής και εξαιρέσεων. Το IDT περιέχει περιγραφείς πύλης διακοπής, πύλης παγίδευσης και πύλης εργασιών, κάθε περιγραφέας καταλαμβάνει 8 byte.

  • Διακοπή πύλης: Χρησιμοποιείται για διακοπές υλικού και λογισμικού, αυτόματη εκκαθάριση IF (σημαία διακοπής).
  • Πύλη παγίδας: Χρησιμοποιείται για χειρισμό εξαιρέσεων, IF δεν διαγράφεται.
  • Πύλη εργασιών: Χρησιμοποιείται για εναλλαγή εργασιών.

Η διεύθυνση βάσης και τα όρια του IDT αποθηκεύονται στο IDTR.

4. Διακόψτε τη ροή επεξεργασίας

Όταν προκύπτει διακοπή ή εξαίρεση, ο επεξεργαστής 80386 εκτελεί τα ακόλουθα βήματα:

  1. αποθήκευση πλαισίου: Αποθηκεύστε το τρέχον CS (Κωδικός καταχωρητής τμήματος), EIP (Καταχωρητής δείκτη οδηγιών) και EFLAGS (Καταχωρητής σημαιών) στη στοίβα.
  2. Βρείτε IDT: Βρείτε τον αντίστοιχο περιγραφέα από το IDT με βάση τον αριθμό διακοπής ή εξαίρεσης.
  3. Ελέγξτε τις άδειες: Ελέγξτε το τρέχον επίπεδο προνομίων (CPL) και το επίπεδο προνομίου στόχου (DPL) για να διασφαλίσετε τη μετατροπή νόμιμων αδειών.
  4. μεταβείτε στον χειριστή: Φορτώστε νέα CS και EIP, μεταβείτε στη λειτουργία χειρισμού διακοπής ή εξαίρεσης.
  5. Χειριστείτε διακοπές ή εξαιρέσεις:Εκτέλεση κώδικα χειριστή.
  6. επαναφορά του πλαισίου:πέρασμα IRET Η εντολή επαναφέρει τα CS, EIP και EFLAGS και επιστρέφει στην κατάσταση πριν συμβεί η διακοπή ή η εξαίρεση.

5. Τύπος εξαίρεσης

Ο επεξεργαστής 80386 υποστηρίζει πολλαπλές εξαιρέσεις, κάθε εξαίρεση έχει διαφορετικούς κωδικούς σφάλματος και διαφορετικούς τρόπους χειρισμού:

  1. Βλάβες: Μια ανακτήσιμη εξαίρεση Όταν ο χειριστής επιστρέψει, η εντολή που προκάλεσε την εξαίρεση θα εκτελεστεί ξανά.
  2. Παγίδες: Μια εξαίρεση που χρησιμοποιείται για εντοπισμό σφαλμάτων ή ανίχνευση Όταν ο χειριστής επιστρέφει μετά την εμφάνιση της εξαίρεσης, η επόμενη εντολή συνεχίζει να εκτελείται.
  3. Ακυρώσεις: Σοβαρό σφάλμα, συνήθως μη ανακτήσιμο.

Οι συνήθεις εξαιρέσεις περιλαμβάνουν:

  • Σφάλμα διαίρεσης: Αυξάνεται όταν ο διαιρέτης είναι μηδέν.
  • Ενα βήμα: Χρησιμοποιείται για εντοπισμό σφαλμάτων, ανυψώνεται κατά την εκτέλεση ενός βήματος.
  • Σημείο διακοπής: Αυξάνεται κατά τον εντοπισμό σφαλμάτων σημείων διακοπής.
  • Ξεχείλισμα:χρήση INTO Αυξάνεται όταν η εντολή ανιχνεύει υπερχείλιση.
  • BOND Υπέρβαση εύρους: Αυξάνεται όταν η πρόσβαση σε πίνακα ξεφεύγει από τα όρια.
  • Μη έγκυρος κωδικός λειτουργίας: Έγινε αύξηση κατά την εκτέλεση παράνομης εντολής.
  • Η συσκευή δεν είναι διαθέσιμη: Αυξάνεται όταν ο συνεπεξεργαστής δεν είναι διαθέσιμος.
  • Διπλό σφάλμα: Μια εξαίρεση εμφανίζεται ξανά κατά τον χειρισμό μιας εξαίρεσης.
  • Υπέρβαση τμήματος συνεπεξεργαστή: Αναπτύχθηκε από λειτουργίες συνεπεξεργαστή.
  • Μη έγκυρο TSS: Αυξάνεται όταν το τμήμα κατάστασης εργασίας είναι παράνομο.
  • Το τμήμα δεν υπάρχει: Αυξάνεται όταν γίνεται πρόσβαση σε ένα τμήμα που δεν υπάρχει.
  • Σφάλμα στοίβας: Αυξάνεται όταν παρουσιαστεί σφάλμα λειτουργίας στοίβας.
  • Γενικό σφάλμα προστασίας: Ενεργοποιείται όταν παραβιάζονται οι κανόνες προστασίας.
  • Σφάλμα σελίδας: Αυξάνεται όταν η λειτουργία σελιδοποίησης είναι μη φυσιολογική.

6. Προγράμματα χειρισμού διακοπής και εξαιρέσεων

Οι χειριστές διακοπής και εξαιρέσεων είναι ειδικές ρουτίνες που χρησιμοποιούνται για τον χειρισμό συγκεκριμένων διακοπών ή εξαιρέσεων. Συνήθως παρέχονται από το λειτουργικό σύστημα και είναι υπεύθυνα για την επαναφορά της κατάστασης του συστήματος, την καταγραφή πληροφοριών σφάλματος, την εκτέλεση των απαραίτητων λειτουργιών ανάκτησης ή την απόκριση διακοπής.

7. Διακοπή προτεραιότητας και κάλυψης

Ο επεξεργαστής 80386 υποστηρίζει μηχανισμούς προτεραιότητας διακοπής και κάλυψης, και διαχειρίζεται την προτεραιότητα και την κάλυψη των διακοπών υλικού μέσω του PIC (Προγραμματιζόμενος ελεγκτής διακοπής). Οι διακοπές υψηλού επιπέδου μπορούν να διακόψουν την επεξεργασία των διακοπών χαμηλού επιπέδου για να διασφαλιστεί η έγκαιρη απόκριση σε κρίσιμα γεγονότα.

3.2 Μηχανισμός προστασίας του 80386

1. Προστασία κατάτμησης

Ο επεξεργαστής 80386 χρησιμοποιεί έναν μηχανισμό τμηματοποίησης για τη διαχείριση της μνήμης. Κάθε τμήμα έχει έναν περιγραφέα που περιέχει τη διεύθυνση βάσης του τμήματος, τα όρια και τα δικαιώματα πρόσβασης. Η προστασία τμηματοποίησης διασφαλίζει ότι οι διεργασίες μπορούν να έχουν πρόσβαση μόνο σε περιοχές μνήμης στις οποίες είναι εξουσιοδοτημένες.

περιγραφέας τμήματος

Οι περιγραφείς τμημάτων αποθηκεύονται στον καθολικό πίνακα περιγραφών (GDT) και στον πίνακα τοπικών περιγραφών (LDT). Κάθε περιγραφέας περιέχει τις ακόλουθες πληροφορίες:

  • Διεύθυνση βάσης: Η αρχική διεύθυνση του τμήματος.
  • Οριο: Το μέγεθος του τμήματος, που υποδεικνύει την τελική διεύθυνση του τμήματος.
  • Τύπος (Τύπος) και επίπεδο προνομίου (DPL): Ο τύπος του τμήματος (τμήμα κώδικα, τμήμα δεδομένων, τμήμα συστήματος) και δικαιώματα πρόσβασης.
  • Bit παρουσίας τμήματος (P): Εάν το τμήμα βρίσκεται στη μνήμη.

Εφαρμογή προστασίας κατάτμησης

Κατά την πρόσβαση στη μνήμη, ο επεξεργαστής αναζητά τον περιγραφέα τμήματος με βάση τον επιλογέα τμήματος και εκτελεί τους ακόλουθους ελέγχους:

  1. Έλεγχος διεύθυνσης βάσης και ορίων: Βεβαιωθείτε ότι η διεύθυνση πρόσβασης βρίσκεται εντός του εύρους του τμήματος.
  2. Έλεγχος άδειας: Βεβαιωθείτε ότι τα δικαιώματα πρόσβασης ταιριάζουν με τον τύπο και το επίπεδο προνομίων στην περιγραφή.

2. Προστασία σελιδοποίησης

Ο μηχανισμός σελιδοποίησης βελτιώνει περαιτέρω τη διαχείριση της μνήμης, με κάθε σελίδα να έχει τα δικά της δικαιώματα πρόσβασης. Ο μηχανισμός προστασίας σελιδοποίησης υλοποιείται μέσω καταλόγων σελίδων και πινάκων σελίδων.

Κατάλογοι σελίδων και πίνακες σελίδων

  • Κατάλογος σελίδων: Περιέχει την καταχώρηση καταλόγου σελίδας (PDE), που δείχνει στον πίνακα σελίδων.
  • Πίνακας σελίδας: Περιέχει καταχωρήσεις πίνακα σελίδων (PTE) που παραπέμπουν σε πραγματικές σελίδες φυσικής μνήμης.

Κάθε καταχώρηση πίνακα σελίδων περιέχει τις ακόλουθες πληροφορίες:

  • Διεύθυνση βάσης σελίδας: Η αρχική διεύθυνση της σελίδας φυσικής μνήμης.
  • Bit παρουσίας (P): Εάν η σελίδα είναι στη μνήμη.
  • Bit ανάγνωσης/εγγραφής (R/W): Εάν η σελίδα είναι εγγράψιμη.
  • Bit χρήστη/υπερχρήστη (U/S): Δικαιώματα πρόσβασης για τη σελίδα.

Εφαρμογή προστασίας σελιδοποίησης

Κατά την πρόσβαση στη μνήμη, ο επεξεργαστής εκτελεί τους ακόλουθους ελέγχους:

  1. Έλεγχος ύπαρξης σελίδας: Ελέγξτε εάν η σελίδα είναι στη μνήμη, εάν όχι, ενεργοποιήστε ένα σφάλμα σελίδας (Σφάλμα σελίδας).
  2. έλεγχος ανάγνωσης/εγγραφής: Ελέγξτε εάν η σελίδα είναι εγγράψιμη Εάν προσπαθήσετε να γράψετε σε μια μη εγγράψιμη σελίδα, θα ενεργοποιηθεί ένα σφάλμα προστασίας.
  3. Έλεγχος χρήστη/υπερχρήστη: Ελέγξτε τα δικαιώματα πρόσβασης για να βεβαιωθείτε ότι ο κώδικας λειτουργίας χρήστη δεν μπορεί να έχει πρόσβαση σε σελίδες λειτουργίας πυρήνα.

3. Επίπεδο προνομίων

Ο επεξεργαστής 80386 υποστηρίζει 4 επίπεδα προνομίων (Privilege Levels), από 0 έως 3. Όσο χαμηλότερο είναι το επίπεδο, τόσο υψηλότερο είναι το προνόμιο.

  • Επίπεδο προνομίου 0 (Ring 0): Το υψηλότερο επίπεδο προνομίων, που χρησιμοποιείται συνήθως στον πυρήνα του λειτουργικού συστήματος.
  • Επίπεδο προνομίου 1 (Δαχτυλίδι 1)καιΠρονόμιο Επίπεδο 2 (Δαχτυλίδι 2): Ενδιάμεσο επίπεδο προνομίων, χρησιμοποιείται σπάνια.
  • Επίπεδο προνομίου 3 (Ring 3): Το χαμηλότερο επίπεδο προνομίων, που χρησιμοποιείται συνήθως από εφαρμογές σε λειτουργία χρήστη.

Εφαρμογή επιπέδων προνομίων

Τα επίπεδα προνομίων υλοποιούνται μέσω των ακόλουθων μηχανισμών:

  1. Επίπεδο προνομίου τμήματος κώδικα (CPL): Το επίπεδο προνομίων του τρέχοντος εκτελούμενου κώδικα.
  2. Επίπεδο προνομίου τμήματος δεδομένων (DPL): Το επίπεδο προνομίων του τμήματος δεδομένων, το οποίο καθορίζει ποια CPL μπορούν να έχουν πρόσβαση στο τμήμα.
  3. Αίτημα επιπέδου προνομίου (RPL): Το επίπεδο προνομίων του επιλογέα τμήματος, που υποδεικνύει το ζητούμενο δικαίωμα πρόσβασης.

Κατά την εκτέλεση μιας λειτουργίας πρόσβασης, ο επεξεργαστής ελέγχει τα CPL, DPL και RPL για να διασφαλίσει τη συμμόρφωση με τους κανόνες επιπέδου προνομίων. Εάν δεν ταιριάζει, ενεργοποιείται ένα γενικό σφάλμα προστασίας.

4. Περιγραφείς τμήματος συστήματος και πύλης

Ο επεξεργαστής 80386 υποστηρίζει περιγραφείς τμημάτων συστήματος και πύλης για εναλλαγή εργασιών και χειρισμό διακοπών.

τμήμα συστήματος

  • Τμήμα Κατάστασης Εργασίας (TSS): Περιέχει πληροφορίες για τα συμφραζόμενα της εργασίας και χρησιμοποιείται για εναλλαγή εργασιών.
  • Πίνακας τοπικού περιγραφέα (LDT): Περιέχει περιγραφείς τμημάτων για συγκεκριμένες εργασίες.

περιγραφέας πύλης

  • Διακοπή πύλης: Χρησιμοποιείται για επεξεργασία διακοπής, μετάβαση στον χειριστή διακοπών.
  • Πύλη παγίδας: Χρησιμοποιείται για χειρισμό εξαιρέσεων και δεν καλύπτει τις διακοπές.
  • Πύλη εργασιών: Χρησιμοποιείται για εναλλαγή εργασιών, εναλλαγή εργασιών μέσω TSS.

5. Εναλλαγή εργασιών

Ο επεξεργαστής 80386 υποστηρίζει εναλλαγή εργασιών υλικού, η οποία υλοποιείται μέσω του τμήματος κατάστασης εργασιών (TSS). Η εναλλαγή εργασιών μπορεί να ενεργοποιηθεί από διακοπές, εξαιρέσεις ή πύλες εργασιών.

Τμήμα Κατάστασης Εργασίας (TSS)

Το TSS περιέχει την κατάσταση μητρώου της εργασίας, τους καταχωρητές τμημάτων, τον δείκτη στοίβας και τους συνδέσμους εργασιών. Κατά την εναλλαγή εργασιών, ο επεξεργαστής αποθηκεύει την κατάσταση της τρέχουσας εργασίας στο TSS και φορτώνει την κατάσταση της νέας εργασίας.

Διαδικασία εναλλαγής εργασιών

  1. Αποθήκευση τρέχουσας κατάστασης εργασίας: Αποθηκεύστε τους καταχωρητές και τους καταχωρητές τμημάτων της τρέχουσας εργασίας στο TSS.
  2. Φόρτωση νέας κατάστασης εργασίας: Φόρτωση καταχωρητών και καταχωρητών τμημάτων από το TSS της νέας εργασίας.
  3. Ενημέρωση μητρώου εργασιών (TR): Υποδεικνύει το TSS της νέας εργασίας.

6. Διακοπή και χειρισμός εξαιρέσεων

Ο χειρισμός διακοπών και εξαιρέσεων είναι σημαντικά μέρη του μηχανισμού προστασίας του επεξεργαστή 80386. Οι διακοπές και οι εξαιρέσεις διαχειρίζονται μέσω του πίνακα περιγραφής διακοπής (IDT) και οι έλεγχοι αδειών και οι διακόπτες περιβάλλοντος εκτελούνται κατά την επεξεργασία.

Διαδικασίες χειρισμού διακοπής και εξαιρέσεων

  1. αποθήκευση πλαισίου: Αποθηκεύστε τα τρέχοντα CS, EIP και EFLAGS στη στοίβα.
  2. Βρείτε IDT: Βρείτε τον αντίστοιχο περιγραφέα από το IDT με βάση τον αριθμό διακοπής ή εξαίρεσης.
  3. Έλεγχος άδειας: Ελέγξτε τα CPL και DPL για να διασφαλίσετε τη μετατροπή νόμιμων αδειών.
  4. μεταβείτε στον χειριστή: Φορτώστε νέα CS και EIP και εκτελέστε το πρόγραμμα χειρισμού.
  5. επαναφορά του πλαισίου:πέρασμα IRET Επαναφέρετε τα CS, EIP και EFLAGS και επιστρέψτε στην κατάσταση πριν από τη διακοπή ή την εξαίρεση.

3.3 Μηχανισμός προστασίας των Windows

1. Λειτουργία χρήστη και λειτουργία πυρήνα

Το λειτουργικό σύστημα Windows διαιρεί τη λειτουργία εκτέλεσης του επεξεργαστή σε λειτουργία χρήστη (Λειτουργία χρήστη) και λειτουργία πυρήνα (Λειτουργία πυρήνα):

  • λειτουργία χρήστη: Εκτελεί μια εφαρμογή με περιορισμένη πρόσβαση και χωρίς άμεση πρόσβαση σε δομές δεδομένων υλικού ή πυρήνα.
  • λειτουργία πυρήνα: Εκτελεί βασικά στοιχεία λειτουργικού συστήματος και προγράμματα οδήγησης συσκευών με πλήρη πρόσβαση και μπορεί να εκτελέσει προνομιακές οδηγίες.

Εναλλαγή μεταξύ λειτουργίας χρήστη και λειτουργίας πυρήνα

Η εναλλαγή μεταξύ λειτουργίας χρήστη και λειτουργίας πυρήνα συνήθως υλοποιείται μέσω κλήσεων συστήματος. Η εφαρμογή ζητά υπηρεσίες πυρήνα καλώντας το API συστήματος και το λειτουργικό σύστημα αλλάζει το αίτημα σε λειτουργία πυρήνα για επεξεργασία.

2. Προστασία μνήμης

Εικονική μνήμη

Τα Windows χρησιμοποιούν έναν μηχανισμό εικονικής μνήμης για να παρέχουν σε κάθε διεργασία έναν ανεξάρτητο χώρο διευθύνσεων. Αυτός ο μηχανισμός εμποδίζει τις διεργασίες να έχουν άμεση πρόσβαση η μία στη μνήμη της άλλης, βελτιώνοντας έτσι την ασφάλεια και τη σταθερότητα του συστήματος.

  • πίνακας σελίδων: Κάθε διεργασία έχει έναν ανεξάρτητο πίνακα σελίδων που αντιστοιχίζει τις εικονικές διευθύνσεις σε φυσικές διευθύνσεις.
  • ανταλλαγή σελίδων: Όταν η φυσική μνήμη είναι χαμηλή, το λειτουργικό σύστημα αλλάζει σελίδες που δεν χρησιμοποιούνται συχνά στο αρχείο σελίδας στον σκληρό δίσκο.

τμήμα μνήμης

Τα Windows χρησιμοποιούν τμήματα μνήμης για τη διαίρεση διαφορετικών τύπων δεδομένων και κώδικα και κάθε τμήμα έχει διαφορετικά δικαιώματα πρόσβασης και μηχανισμούς προστασίας. Για παράδειγμα, το τμήμα κώδικα είναι μόνο για ανάγνωση, ενώ το τμήμα δεδομένων είναι για ανάγνωση-εγγραφή.

3. Έλεγχος πρόσβασης

Το λειτουργικό σύστημα Windows χρησιμοποιεί Λίστα Ελέγχου Πρόσβασης (ACL) για τη διαχείριση των δικαιωμάτων πρόσβασης χρήστη και επεξεργασίας στους πόρους.

Αναγνωριστικό ασφαλείας (SID)

Κάθε χρήστης, ομάδα και υπολογιστής έχει ένα μοναδικό αναγνωριστικό ασφαλείας (SID) που τους προσδιορίζει.

Λίστα ελέγχου πρόσβασης (ACL)

Κάθε αντικείμενο (όπως αρχείο, κατάλογος, κλειδί μητρώου, κ.λπ.) έχει μια λίστα ελέγχου πρόσβασης, η οποία περιέχει ένα σύνολο στοιχείων ελέγχου πρόσβασης (ACE) που ορίζουν τα δικαιώματα πρόσβασης διαφορετικών χρηστών και ομάδων στο αντικείμενο.

4. Διαχείριση προνομίων

Τα Windows ελέγχουν τι μπορούν να κάνουν οι διαδικασίες και οι χρήστες μέσω της διαχείρισης προνομίων. Ορισμένα δικαιώματα παραχωρούνται μόνο σε συγκεκριμένες ομάδες χρηστών (όπως οι διαχειριστές), όπως η εγκατάσταση προγραμμάτων οδήγησης, η πρόσβαση σε αρχεία καταγραφής συστήματος κ.λπ.

στρατηγική ασφάλειας

Τα Windows παρέχουν μια σειρά από πολιτικές ασφαλείας που μπορούν να διαμορφώσουν τον έλεγχο λογαριασμού χρήστη (UAC), τις πολιτικές κωδικών πρόσβασης, τις πολιτικές ελέγχου κ.λπ. για τη βελτίωση της ασφάλειας του συστήματος.

5. Διακοπή και χειρισμός εξαιρέσεων

Τα λειτουργικά συστήματα Windows χρησιμοποιούν μηχανισμούς χειρισμού διακοπών και εξαιρέσεων για τη διαχείριση διακοπών υλικού, διακοπών λογισμικού και εξαιρέσεων επεξεργαστή.

Διακοπή χειρισμού

Ο χειριστής διακοπών (Interrupt Service Routine, ISR) είναι υπεύθυνος για το χειρισμό των διακοπών υλικού και τη διασφάλιση της έγκαιρης απόκρισης των εξωτερικών συσκευών.

Εξαίρεση χειρισμού

Οι χειριστές εξαιρέσεων χειρίζονται εξαιρέσεις επεξεργαστή, όπως σφάλματα διαίρεσης προς μηδέν, σφάλματα σελίδας κ.λπ., για να διασφαλίσουν ότι το σύστημα μπορεί να λάβει τα κατάλληλα μέτρα ανάκτησης όταν προκύπτουν εξαιρέσεις.

6. Multitasking

Τα Windows επιτρέπουν πολλαπλές διεργασίες και νήματα να εκτελούνται ταυτόχρονα μέσω του μηχανισμού πολλαπλών εργασιών. Το λειτουργικό σύστημα χρησιμοποιεί έναν χρονοπρογραμματιστή για να διαχειρίζεται την εκτέλεση διεργασιών και νημάτων και να διασφαλίζει ότι οι πόροι του συστήματος κατανέμονται δίκαια.

Προγραμματισμός νημάτων

Τα Windows χρησιμοποιούν έναν αλγόριθμο προγραμματισμού προτεραιότητας για την κατανομή τμημάτων χρόνου της CPU με βάση την προτεραιότητα και την κατάσταση του νήματος (όπως έτοιμο, σε αναμονή, εκτέλεση κ.λπ.).

απομόνωση διαδικασίας

Κάθε διεργασία έχει έναν ανεξάρτητο χώρο εικονικών διευθύνσεων και πόρους, αποτρέποντας μια διεργασία από το να επηρεάσει τη λειτουργία μιας άλλης διαδικασίας και βελτιώνοντας τη σταθερότητα του συστήματος.

7. Χαρακτηριστικά ασφαλείας

Τα Windows παρέχουν μια σειρά από λειτουργίες ασφαλείας, όπως Πρόληψη εκτέλεσης δεδομένων (DEP), Τυχαιοποίηση διάταξης χώρου διευθύνσεων (ASLR) κ.λπ., για τη βελτίωση των δυνατοτήτων προστασίας του συστήματος.

Πρόληψη εκτέλεσης δεδομένων (DEP)

Το DEP αποτρέπει την εκτέλεση κώδικα στο τμήμα δεδομένων επισημαίνοντας ορισμένες περιοχές μνήμης ως μη εκτελέσιμες μέσω ενός συνδυασμού υλικού και λογισμικού.

Τυχαιοποίηση διάταξης χώρου διευθύνσεων (ASLR)

Το ASLR τυχαιοποιεί το χώρο διευθύνσεων μνήμης μιας διαδικασίας, καθιστώντας πιο δύσκολο για τους εισβολείς να εκμεταλλευτούν τα τρωτά σημεία.