Αλγόριθμος φόρτωσης λειτουργικού συστήματος. Ανοιχτή βιβλιοθήκη - ανοιχτή βιβλιοθήκη εκπαιδευτικών πληροφοριών Φόρτωση του πυρήνα του λειτουργικού συστήματος

Ένα bootloader είναι ένα πρόγραμμα συστήματος που εκτελεί bootstrapping.Πολλοί φορτωτές εκκίνησης παρέχουν επίσης κίνηση και σύνδεση. Ορισμένα συστήματα διαχωρίζουν τη λειτουργία σύνδεσης από τις συναρτήσεις μετακίνησης και φόρτωσης. Η σύνδεση γίνεται από ειδικό πρόγραμμα σύνδεσης (ή επεξεργαστή συνδέσμων), η μετακίνηση και η φόρτωση γίνεται από φορτωτή.

Η σύνδεση είναι η σύνδεση δύο ή περισσότερων ξεχωριστών μεταφρασμένων προγραμμάτων.

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

Λειτουργίες Bootloader:

  1. διανομή ΕΠ ·
  2. μετακίνηση του προγράμματος ·
  3. ενότητες σύνδεσης ·

Διανομή EP

Μετακίνηση του προγράμματος

Εάν υπάρχουν σταθερές διευθύνσεων μέσα στις ενότητες, οι οποίες υπολογίζονται από την αρχή της ενότητας, τότε οι διευθύνσεις θα διορθωθούν σε σχέση με τη Βάση.

Σύνδεση ενοτήτων

Τύποι φορτωτών

Compile-Run Loaders

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

Οι απόλυτοι φορτωτές είναι εύκολο να εφαρμοστούν, αλλά έχουν μια σειρά από χαρακτηριστικά:

  • το έργο της διανομής του ΕΠ εκτελείται από τον προγραμματιστή (χρησιμοποιώντας την οδηγία για τον καθορισμό της αρχικής τιμής του ΕΠ).
  • το έργο της μετακίνησης του προγράμματος εκτελείται από τον μεταγλωττιστή.
  • ενότητες σύνδεσης - αποφασίστηκε από τον προγραμματιστή (κλήση 600).
  • φόρτωση προγραμμάτων στο ΕΠ και εκκίνησή τους για εκτέλεση.

Πλεονεκτήματα:

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

Μειονεκτήματα:

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

Δομή αρχείου αντικειμένου Absolute Loader

Το αρχείο πληροφοριών αποτελείται από:

  1. σημάδι;
  2. την απόλυτη διεύθυνση του ΕΠ όπου μπορούν να μεταφερθούν πληροφορίες ·
  3. τον αριθμό των byte πληροφοριών στο μήνυμα ·
  4. byte πληροφοριών?
  5. checksums?
  6. αρίθμηση.

Το αρχείο ελέγχου αποτελείται από:

  1. σημάδι;
  2. διεύθυνση σημείου εισόδου.

Απλή απόλυτη λειτουργία φορτωτή:

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

Προσαρμοσμένος φορτωτής εκκίνησης

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

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

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

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

Αυτός ο φορτωτής έχει πολλά μειονεκτήματα:

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

Άμεση σύνδεση του bootloader

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

Ο συναρμολογητής (μεταφραστής) πρέπει να μεταφέρει τις ακόλουθες πληροφορίες στον φορτωτή με κάθε πρόγραμμα και τμήμα δεδομένων:

  1. μήκος τμήματος?
  2. μια λίστα με όλα τα σύμβολα τμημάτων στα οποία μπορείτε να έχετε πρόσβαση από άλλα τμήματα και τις σχετικές διευθύνσεις τους.
  3. μια λίστα με όλους τους χαρακτήρες που δεν ορίζονται σε αυτό το τμήμα, στους οποίους έχετε πρόσβαση σε αυτό το τμήμα.
  4. πληροφορίες σχετικά με τη θέση των σταθερών διεύθυνσης στο τμήμα και περιγραφή του τρόπου αλλαγής των τιμών τους ·
  5. κωδικούς μηχανής που λαμβάνονται ως αποτέλεσμα της μετάφρασης και εκχωρούνται σχετικές διευθύνσεις.

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

Δυναμικός φορτωτής

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

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

Δυναμική σύνδεση

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

αν (συνθήκη 1)
κλήση υπορουτίνας 1
αν (συνθήκη 2)
κλήση υπορουτίνας 2
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
αν (κατάσταση m)
κλήση υπορουτίνας m

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

Το λειτουργικό σύστημα αποθηκεύεται σε εξωτερική μνήμη, συνήθως σε σκληρό δίσκο, λιγότερο συχνά σε δισκέτα. Για κανονική λειτουργία του υπολογιστή, είναι απαραίτητο οι κύριες μονάδες του λειτουργικού συστήματος να είναι στη μνήμη RAM. Επομένως, μετά την ενεργοποίηση του υπολογιστή, οργανώνεται μια αυτόματη επανεγγραφή (φόρτωση) του λειτουργικού συστήματος από το δίσκο στη μνήμη RAM. Οι πιο σημαντικές πτυχές αυτής της λήψης φαίνονται στο διάγραμμα ροής στην Εικ. 9.13.

Ρύζι. 9.13.Αλγόριθμος για τη φόρτωση του λειτουργικού συστήματος από το δίσκο στη μνήμη RAM

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

Μετά την επιτυχή ολοκλήρωση της δοκιμής υλικού, έχετε πρόσβαση στη μονάδα δισκέτας A και ανάβει η ενδεικτική λυχνία δίπλα της. Εάν εκκινήσετε το λειτουργικό σύστημα από μια δισκέτα, τότε πριν ή κατά τη διάρκεια της δοκιμής, εισαγάγετε το δίσκο συστήματος στη μονάδα δίσκου Α. Διαφορετικά, εάν δεν υπάρχει λειτουργικό σύστημα στο δίσκο Α, ο σκληρός δίσκος είναι προσβάσιμος, όπως αποδεικνύεται από την ενδεικτική λυχνία στη συνέχεια σε αυτό

Αρχίζει η ανάγνωση στη μνήμη RAM του 0ου τομέα της 0ης πλευράς του δίσκου, στην οποία βρίσκεται ο φορτωτής εκκίνησης (BOOT RECORD). Ο έλεγχος μεταφέρεται στον φορτωτή, ο οποίος ελέγχει για την παρουσία της μονάδας επέκτασης IO.SYS και της βασικής μονάδας MSDOS.SYS στο δίσκο συστήματος. Εάν βρίσκονται στην καθορισμένη θέση τους (εκ.ρύζι. 9.10), στη συνέχεια τα φορτώνει στη μνήμη RAM, διαφορετικά θα εμφανιστεί ένα μήνυμα σχετικά με την απουσία τους. Σε αυτήν την περίπτωση, συνιστάται η επανεκκίνηση. Το σήμα επανεκκίνησης μεταφέρει τον έλεγχο στην επίμονη μονάδα BIOS, η οποία ξαναγράφει το μπλοκ εκκίνησης από το δίσκο στη μνήμη RAM και ούτω καθεξής.

Θυμάμαι!Για επανεκκίνηση του λειτουργικού συστήματοςστη μνήμη, πατήστε ταυτόχρονα τα πλήκτρα .

Μετά την επιτυχή φόρτωση του διαστολέα IO.SYS και της μονάδας βάσης MSDOS.SYS στη μνήμη RAM, φορτώνεται ο επεξεργαστής εντολών COMMAND.COM και γίνεται επεξεργασία του αρχείου διαμόρφωσης CONFIG.SYS, το οποίο περιέχει τις εντολές για τη σύνδεση των απαραίτητων προγραμμάτων οδήγησης. Αυτό το αρχείο ενδέχεται να μην υπάρχει εάν είστε ικανοποιημένοι με τη βασική έκδοση του λειτουργικού συστήματος.



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

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

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

Εάν λείπει το αρχείο AUTOEXEC.BAT, θα σας ζητηθεί να εισαγάγετε την ημερομηνία και την ώρα:

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

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

10-25-1997 (μήνα ημέρα έτος)

7:30: 10.00 RUB (ώρες: λεπτά: δευτερόλεπτα)

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

Σημείωση.Τα αρχεία CONFIG.SYS και AUTOEXEC.BAT ενδέχεται να λείπουν. Σε αυτήν την περίπτωση, οι ρυθμίσεις περιβάλλοντος λειτουργίας θα ρυθμιστούν από προεπιλογή.

Θυμάμαι!Ο σκληρός δίσκος πρέπει να παρέχει συνεχή αποθήκευση του λειτουργικού συστήματος.

Όλες οι μονάδες δισκέτας πρέπει να είναι ανοιχτές όταν ενεργοποιείτε τον υπολογιστή.

Τοποθετήστε τη δισκέτα με προγράμματα εφαρμογών στη μονάδα δισκέτας μετά την ολοκλήρωση της λήψης.



ΤΕΧΝΟΛΟΓΙΑ ΕΡΓΑΣΙΑΣ ΣΤΟ MS DOS

§ Κατανόηση εντολών

§ Βασικές εντολές για εργασία με καταλόγους

§ Βασικές εντολές για εργασία με αρχεία

§ Βασικές εντολές για εργασία με δίσκους

§ Δημιουργία και χρήση αρχείου δέσμης

§ Αρχείο εντολών αυτόματης ρύθμισης λειτουργικού συστήματος AUTOEXEC.BAT

§ Διαμόρφωση του λειτουργικού συστήματος χρησιμοποιώντας το αρχείο ρυθμίσεων CONFIG.SYS

ΓΕΝΙΚΕΣ ΠΛΗΡΟΦΟΡΙΕΣ ΓΙΑ ΟΜΑΔΕΣ

Το λειτουργικό σύστημα αποθηκεύεται σε εξωτερική μνήμη, συνήθως σε σκληρό δίσκο, λιγότερο συχνά σε δισκέτα. Για κανονική λειτουργία του υπολογιστή, είναι απαραίτητο οι κύριες μονάδες του λειτουργικού συστήματος να είναι στη μνήμη RAM. Επομένως, μετά την ενεργοποίηση του υπολογιστή, οργανώνεται μια αυτόματη επανεγγραφή (φόρτωση) του λειτουργικού συστήματος από το δίσκο στη μνήμη RAM. Οι πιο σημαντικές πτυχές αυτής της λήψης φαίνονται στο διάγραμμα ροής στην Εικ. 9.13.

Ρύζι. 9.13.Αλγόριθμος για τη φόρτωση του λειτουργικού συστήματος από το δίσκο στη μνήμη RAM

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

Μετά την επιτυχή ολοκλήρωση της δοκιμής υλικού, έχετε πρόσβαση στη μονάδα δισκέτας A και ανάβει η ενδεικτική λυχνία δίπλα της. Εάν εκκινήσετε το λειτουργικό σύστημα από μια δισκέτα, τότε πριν ή κατά τη διάρκεια της δοκιμής, εισαγάγετε το δίσκο συστήματος στη μονάδα δίσκου Α. Διαφορετικά, εάν δεν υπάρχει λειτουργικό σύστημα στο δίσκο Α, ο σκληρός δίσκος είναι προσβάσιμος, όπως αποδεικνύεται από την ενδεικτική λυχνία στη συνέχεια σε αυτό

Αρχίζει η ανάγνωση στη μνήμη RAM του 0ου τομέα της 0ης πλευράς του δίσκου, στην οποία βρίσκεται ο φορτωτής εκκίνησης (BOOT RECORD). Ο έλεγχος μεταφέρεται στον φορτωτή, ο οποίος ελέγχει για την παρουσία της μονάδας επέκτασης IO.SYS και της βασικής μονάδας MSDOS.SYS στο δίσκο συστήματος. Εάν βρίσκονται στην καθορισμένη θέση τους (εκ.ρύζι. 9.10), στη συνέχεια τα φορτώνει στη μνήμη RAM, διαφορετικά θα εμφανιστεί ένα μήνυμα σχετικά με την απουσία τους. Σε αυτήν την περίπτωση, συνιστάται η επανεκκίνηση. Το σήμα επανεκκίνησης μεταφέρει τον έλεγχο στην επίμονη μονάδα BIOS, η οποία ξαναγράφει το μπλοκ εκκίνησης από το δίσκο στη μνήμη RAM και ούτω καθεξής.

Θυμάμαι!Για επανεκκίνηση του λειτουργικού συστήματοςστη μνήμη, πατήστε ταυτόχρονα τα πλήκτρα .

Μετά την επιτυχή φόρτωση του διαστολέα IO.SYS και της μονάδας βάσης MSDOS.SYS στη μνήμη RAM, φορτώνεται ο επεξεργαστής εντολών COMMAND.COM και γίνεται επεξεργασία του αρχείου διαμόρφωσης CONFIG.SYS, το οποίο περιέχει τις εντολές για τη σύνδεση των απαραίτητων προγραμμάτων οδήγησης. Αυτό το αρχείο ενδέχεται να μην υπάρχει εάν είστε ικανοποιημένοι με τη βασική έκδοση του λειτουργικού συστήματος.

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

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

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

Εάν λείπει το αρχείο AUTOEXEC.BAT, θα σας ζητηθεί να εισαγάγετε την ημερομηνία και την ώρα:

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

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

10-25-1997 (μήνα ημέρα έτος)

7:30: 10.00 RUB (ώρες: λεπτά: δευτερόλεπτα)

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

Σημείωση.Τα αρχεία CONFIG.SYS και AUTOEXEC.BAT ενδέχεται να λείπουν. Σε αυτήν την περίπτωση, οι ρυθμίσεις περιβάλλοντος λειτουργίας θα ρυθμιστούν από προεπιλογή.

Θυμάμαι!Ο σκληρός δίσκος πρέπει να παρέχει συνεχή αποθήκευση του λειτουργικού συστήματος.

Όλες οι μονάδες δισκέτας πρέπει να είναι ανοιχτές όταν ενεργοποιείτε τον υπολογιστή.

Τοποθετήστε τη δισκέτα με προγράμματα εφαρμογών στη μονάδα δισκέτας μετά την ολοκλήρωση της λήψης.

Η αποστολή της καλής εργασίας σας στη βάση γνώσεων είναι απλή. Χρησιμοποιήστε την παρακάτω φόρμα

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

Πανεπιστήμιο του Βόλγα που πήρε το όνομά του από τον V. N. Tatishchev

Σχολή Πληροφορικής και Τηλεπικοινωνιών

Τμήμα Πληροφορικής και Συστημάτων Ελέγχου

ΕΡΓΑΣΙΑ ΜΑΘΗΜΑΤΟΣ

κατά πειθαρχία: "Λογισμικό συστήματος"

Θέμα: " Φορτωτής

Γίνεται από μαθητή. IS-303

Κρασνοσέλτσεφ V. NS.

Δάσκαλος: Trubacheva S.I.

Tolyatti

Εισαγωγή

1. Θεωρητικό μέρος

2. Μέρος σχεδίασης

2.1 Δήλωση του προβλήματος

2.2 Ανάπτυξη αλγορίθμου για την επίλυση του προβλήματος

2.3 Περιγραφή του αλγορίθμου για τη φόρτωση του προγράμματος εφαρμογής

2.4 Περιγραφή του αλγορίθμου εκκίνησης του λειτουργικού συστήματος

2.5 Περιγραφή του αλγόριθμου Unix Boot χρησιμοποιώντας το LILO Boot Loader

συμπέρασμα

βιβλιογραφικές αναφορές

Εισαγωγή

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

Ένα bootloader είναι ένα πρόγραμμα χωρίς περισσότερους από έναν υπολογιστές και περισσότερα από ένα λειτουργικά συστήματα.

1 . Θεωρητικό μέρος

Διαδικασία εκκίνησης του Microsoft OS

Όποιο λειτουργικό σύστημα κι αν εξετάζουμε, για να ξεκινήσει ο λειτουργικός έλεγχος του υπολογιστή, πρέπει να φορτωθεί στη μνήμη RAM. Επομένως, θα εξετάσουμε πώς συμβαίνει η διαδικασία φόρτωσης διαφορετικών λειτουργικών συστημάτων. Δεδομένου ότι μας ενδιαφέρει μόνο η εκκίνηση από σκληρούς δίσκους, δεν θα λάβουμε υπόψη τις ιδιαιτερότητες της εκκίνησης από δισκέτα, CD-ROM και μέσω του δικτύου. Ας ξεκινήσουμε με MS-DOS και MS Windows.

Όπως γνωρίζετε, όταν ενεργοποιείτε τον υπολογιστή, ξεκινά πρώτα το πρόγραμμα POST (Power On Self Test). Καθορίζει την ποσότητα της διαθέσιμης μνήμης, τη δοκιμάζει, καθορίζει την παρουσία άλλων εξαρτημάτων (πληκτρολόγιο, σκληρό δίσκο κ.λπ.), προετοιμάζει κάρτες προσαρμογέα. Η οθόνη εμφανίζει συνήθως μηνύματα σχετικά με τον όγκο της μνήμης, τις δοκιμές της, μια λίστα με συσκευές που έχουν εντοπιστεί (δισκέτες και σκληροί δίσκοι, επεξεργαστής, θύρες COM κ.λπ.).

Αφού ολοκληρωθεί ο έλεγχος, το POST καλεί το Int 19h, το οποίο προσπαθεί να βρει τη συσκευή εκκίνησης. Η αναζήτηση πραγματοποιείται με τη σειρά που ορίζεται στο BIOS εγκατάστασης και πραγματοποιείται με τη δημοσκόπηση των μηδενικών τομέων των αντίστοιχων συσκευών. Εάν ο δίσκος είναι εκκινήσιμος, τότε ο μηδενικός τομέας του περιέχει την κύρια εγγραφή εκκίνησης (MBR). Τα δύο τελευταία byte του MBR είναι ένας «μαγικός αριθμός», ο οποίος αποτελεί ένδειξη ότι αυτός ο τομέας είναι MBR και επομένως ο δίσκος είναι εκκινήσιμος. Εκτός από τον "μαγικό αριθμό", το MBR περιέχει τον πίνακα διαμερισμάτων δίσκου, ο οποίος ήδη αναφέρθηκε παραπάνω, και ένα μικρό πρόγραμμα - τον κύριο φορτωτή, με όγκο μόνο 446 (0 * 1BE) byte.

Ο πίνακας 2.1 δείχνει τη δομή του τομέα κύριας εκκίνησης που δημιουργήθηκε κατά την εγκατάσταση των Windows.

Πίνακας 2.1 Δομή του Master Boot Sector

Διακοπή BIOS 19 ωρών φορτώνει τον κύριο φορτωτή εκκίνησης στη μνήμη του υπολογιστή και μεταφέρει τον έλεγχο σε αυτό το πρόγραμμα. Αλλά ένα τόσο μικρό πρόγραμμα δεν μπορεί να φορτώσει το λειτουργικό σύστημα. το μόνο που μπορεί να κάνει είναι να φορτώσει ένα πιο ισχυρό πρόγραμμα στη μνήμη - το δευτερεύον φορτωτή.

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

Ο δευτερεύων φορτωτής φορτώνει το πρώτο επίπεδο προγραμμάτων που απαιτούνται για την εκκίνηση του λειτουργικού συστήματος. Στην περίπτωση του MS - DOS, το πρόγραμμα φόρτωσης φορτώνει το IO.SYS στις 700 ώρες, στη συνέχεια το MSDOS.SYS και μεταφέρει τον έλεγχο στην ενότητα SYSINIT της μονάδας IO.SYS.

Εάν για κάποιο λόγο δεν εντοπιστεί ενεργό διαμέρισμα στο δίσκο, η διαδικασία εκκίνησης συνεχίζεται με επεξεργασία διακοπής 18h. Αυτός ο κλάδος χρησιμοποιείται σπάνια στο σύνολό του, αλλά μπορεί να είναι πολύ χρήσιμος σε ορισμένες περιπτώσεις. Στην απομακρυσμένη εκκίνηση, όταν το λειτουργικό σύστημα εκκινείται από το διακομιστή, αυτή η διακοπή ανακατευθύνεται από το πρόγραμμα POST στην ROM της κάρτας δικτύου.

Προβλήματα με μεγάλους δίσκους

Στο MS - DOS και στις πρώτες εκδόσεις των Windows, η πρόσβαση σε δίσκους οργανώθηκε μέσω του BIOS διακοπής 13 (Int 13h). Σε αυτήν την περίπτωση, η διεύθυνση των τομέων στο δίσκο χρησιμοποιήθηκε με βάση την ένδειξη των αριθμών του κυλίνδρου, της κεφαλής και του τομέα στην πίστα (C / H / S). Ακριβέστερα:

1) AH - επιλογή λειτουργίας.

2) СР - χαμηλώστε 8 bit του αριθμού του κυλίνδρου.

3) CL-τα bit 7-6 αντιστοιχούν στα πιο σημαντικά bits του αριθμού του κυλίνδρου, τα bit 5-0 αντιστοιχούν στον αριθμό τομέα.

4) DH - αριθμός κεφαλής ανάγνωσης.

5) DL - αριθμός δίσκου (80h ή 81h).

Πρέπει να σημειωθεί ότι όλοι οι παραπάνω περιορισμοί είναι σημαντικοί μόνο στο στάδιο της εκκίνησης του λειτουργικού συστήματος, καθώς το ίδιο το Linux και οι τελευταίες εκδόσεις των Windows δεν χρησιμοποιούν πλέον το BIOS interrupt 13 όταν εργάζονται με δίσκους, αλλά χρησιμοποιούν τα δικά τους προγράμματα οδήγησης για εργασία με δίσκους. Αλλά πριν το σύστημα χρησιμοποιήσει το δικό του πρόγραμμα οδήγησης, πρέπει τουλάχιστον να το φορτώσει. Επομένως, στο στάδιο εκκίνησης, οποιοδήποτε σύστημα αναγκάζεται να χρησιμοποιήσει το BIOS. Αυτό προκαλεί περιορισμούς στην τοποθέτηση πολλών συστημάτων άνω των 8 GB, δεν μπορούν να ξεκινήσουν από εκεί, αν και μετά από μια επιτυχημένη εκκίνηση μπορούν να λειτουργήσουν με πολύ μεγαλύτερους δίσκους. Για να καταλάβουμε πώς να ξεπεράσουμε αυτούς τους περιορισμούς, χρειαζόμαστε κάποια γνώση του τρόπου εκκίνησης του Linux.

LILO bootloader από διανομή Linux

Πριν προχωρήσετε στην εγκατάσταση του δεύτερου λειτουργικού συστήματος, πρέπει να επιλέξετε μια μέθοδο οργάνωσης της επιλογής του λειτουργικού συστήματος στο στάδιο της εκκίνησης του υπολογιστή. Τα προγράμματα λήψης λύνουν αυτό το πρόβλημα. Υπάρχουν διάφορα προγράμματα αυτού του είδους. Δεδομένου ότι μιλάμε για Linux, το πρώτο πράγμα που πρέπει να αναφερθεί είναι το πρόγραμμα LILO, το οποίο περιλαμβάνεται σε οποιαδήποτε διανομή Linux.

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

Το πρόγραμμα / sbin / lilo, το οποίο λειτουργεί με Linux, χρησιμοποιείται για την εγγραφή όλων των πληροφοριών που απαιτούνται κατά την εκκίνηση στα κατάλληλα σημεία. Πρέπει να κάνει επανεκκίνηση κάθε φορά που γίνεται αλλαγή στον πυρήνα ή στο αρχείο διαμόρφωσης LILO.

Διάφορα αρχεία υπηρεσιών που χρειάζεται το LILO κατά την εκκίνηση. Αυτά τα αρχεία βρίσκονται συνήθως στον κατάλογο / boot. Τα πιο σημαντικά από αυτά είναι ο ίδιος ο bootloader και το αρχείο χάρτη ( / boot / map), το οποίο καθορίζει τη θέση του πυρήνα. Ένα άλλο σημαντικό αρχείο είναι το αρχείο διαμόρφωσης LILO, το οποίο είναι συνήθως /etc/lilo.conf.

Ο ίδιος ο φορτωτής εκκίνησης είναι το τμήμα του LILO που φορτώνεται πρώτα στη μνήμη μέσω διακοπής BIOS και το οποίο φορτώνει τον πυρήνα Linux ή τον τομέα εκκίνησης ενός άλλου λειτουργικού συστήματος. Ο φορτωτής έχει επίσης δύο μέρη. Το πρώτο μέρος γράφει στον τομέα εκκίνησης και χρησιμεύει για τη φόρτωση του δεύτερου μέρους, το οποίο είναι πολύ μεγαλύτερο σε μέγεθος. Και τα δύο μέρη αποθηκεύονται συνήθως στο δίσκο στο αρχείο /boot/boot.b.

Ο τομέας εκκίνησης LILO μπορεί να τοποθετηθεί στις ακόλουθες θέσεις κατά την εγκατάσταση του συστήματος:

Τομέας εκκίνησης μιας δισκέτας σε μορφή Linux ( / dev / fd0, ...).

MBR του πρώτου σκληρού δίσκου ( / dev / had, / dev / sda, ...).

Τομέας εκκίνησης του κύριου διαμερίσματος του συστήματος αρχείων Linux στον πρώτο σκληρό δίσκο ( / dev / hda1, / dev / hda2, ...).

Ο τομέας εκκίνησης του λογικού διαμερίσματος στο εκτεταμένο διαμέρισμα του πρώτου σκληρού δίσκου ( / dev / hda5, ...). Είναι αλήθεια ότι τα περισσότερα προγράμματα όπως το fdisk δεν υποθέτουν ότι είναι δυνατή η εκκίνηση από ένα εκτεταμένο διαμέρισμα και αρνούνται να το δηλώσουν ενεργό. Επομένως, το LILO περιλαμβάνει ένα ειδικό πρόγραμμα (ενεργοποίηση) για να παρακάμψει αυτόν τον περιορισμό. Αλλά το πρόγραμμα fdisk από τη διανομή Linux υποστηρίζει τη δυνατότητα ενεργοποίησης ενός εκτεταμένου διαμερίσματος. Για να γίνει αυτό, πρέπει να χρησιμοποιηθεί είτε η επιλογή -b είτε η μεταβλητή BOOT.

Ο τομέας εκκίνησης LILO δεν μπορεί να τοποθετηθεί στις ακόλουθες τοποθεσίες:

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

Σε διαμέρισμα ανταλλαγής Linux.

Εκτός από το γεγονός ότι το LILO χρειάζεται τα ακόλουθα αρχεία κατά την εκκίνηση:

- / boot / map (δημιουργήθηκε όταν ξεκινά το / sbin / lilo)

Όλες οι εκδόσεις πυρήνα με δυνατότητα εκκίνησης (εάν επιλέξετε μια έκδοση πυρήνα κατά την εκκίνηση).

Εκκίνηση τομέων άλλων λειτουργικών συστημάτων που θα φορτωθούν μέσω του LILO.

Μηνύματα που εκδίδονται κατά την εκκίνηση (εάν υπάρχουν)

Όταν ξεκινάει το LILO, εμφανίζει τη λέξη "LILO". Σε αυτήν την περίπτωση, η έξοδος κάθε γράμματος υποδεικνύει την ολοκλήρωση μιας συγκεκριμένης ενέργειας ή σταδίου της εκκίνησης LILO. Εάν η λήψη αποτύχει, τότε βάσει του αριθμού των γραμμάτων που εμφανίζονται, μπορείτε να κρίνετε την αιτία του προβλήματος.

Τίποτα δεν εξέρχεται - κανένα μέρος του LILO δεν έχει φορτωθεί. Είτε το LILO δεν ήταν εγκατεστημένο είτε το διαμέρισμα στο οποίο βρίσκεται δεν είναι ενεργό

L [κωδικός σφάλματος] - ο κύριος φορτωτής έχει φορτωθεί και ξεκινήσει (ο έλεγχος έχει μεταφερθεί σε αυτόν), αλλά απέτυχε να φορτώσει το δευτερεύον φορτωτή. Ο διψήφιος κωδικός σφάλματος υποδεικνύει τη συγκεκριμένη αιτία του προβλήματος. Αυτό συμβαίνει συνήθως λόγω ελαττωμάτων μέσων ή λανθασμένης ρύθμισης της γεωμετρίας του δίσκου. Αν το LILO δεν σταματήσει σε αυτό το σημείο με μια ατελείωτη σειρά κωδικών σφάλματος, το πρόβλημα είναι συνήθως εύκολο να διορθωθεί.

LI - ο κύριος φορτωτής μπόρεσε να φορτώσει τον δευτερεύον φορτωτή, αλλά απέτυχε να τον ξεκινήσει για εκτέλεση. Αυτό μπορεί να προκληθεί από σφάλμα στη ρύθμιση της γεωμετρίας του δίσκου ή από το γεγονός ότι το αρχείο /boot/boot.b μετακινήθηκε χωρίς επανεκκίνηση / sbin / lilo.

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

ΛΙΛ; - ο δευτερεύων φορτωτής εκκίνησης φορτώθηκε σε λάθος διεύθυνση. Συνήθως προκαλείται από σφάλμα στη ρύθμιση της γεωμετρίας του δίσκου ή από τη μετακίνηση του αρχείου /boot/boot.b χωρίς επανεκκίνηση / sbin / lilo.

LIL- - ο πίνακας περιγραφής καταστράφηκε. Συνήθως προκαλείται από σφάλμα στη ρύθμιση της γεωμετρίας του δίσκου ή από τη μετακίνηση του αρχείου /boot/boot.b χωρίς επανεκκίνηση / sbin / lilo.

LILO - Όλα τα ανταλλακτικά LILO φορτώθηκαν με επιτυχία.

Ξεκινήστε τη διαδικασία και / etc / inittab αρχείο

Όπως γνωρίζετε, αφού ενεργοποιήσετε την τροφοδοσία του υπολογιστή και ολοκληρώσετε τη δοκιμή του υλικού, το BIOS διαβάζεται από τον πρώτο τομέα του δίσκου εκκίνησης, τον οποίο το πρόγραμμα είναι ο φορτωτής. Αυτό το πρόγραμμα ξεκινά τον κύριο φορτωτή εκκίνησης (όπως το LILO), ο οποίος με τη σειρά του φορτώνει τον πυρήνα του συστήματος στη μνήμη, η οποία συνήθως αποθηκεύεται στο αρχείο vmlinuz-x.y.z-a στον κατάλογο / boot.

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

Ο ακριβής κατάλογος αυτών των λειτουργιών εξαρτάται από αυτό που ονομάζεται επίπεδο εκτέλεσης. Το runlevel καθορίζει τη λίστα ενεργειών που εκτελούνται από τη διαδικασία init και την κατάσταση του συστήματος μετά την εκκίνηση, δηλ. διαμόρφωση των εκτελούμενων διαδικασιών. Το επίπεδο λειτουργίας αναγνωρίζεται από έναν μόνο χαρακτήρα. Υπάρχουν 8 κύρια επίπεδα λειτουργίας στο λειτουργικό σύστημα Linux:

1) Σταματήστε το σύστημα.

2) Λειτουργία ενός χρήστη (για ειδικές περιπτώσεις διαχείρισης).

3) Λειτουργία πολλαπλών χρηστών χωρίς NFS (το ίδιο με 3 εάν ο υπολογιστής δεν λειτουργεί με το δίκτυο).

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

5) Η χρήση δεν ρυθμίζεται.

6) Συνήθως χρησιμοποιείται για την εκκίνηση του συστήματος σε γραφική λειτουργία.

S) (ή s) - περίπου το ίδιο με τη λειτουργία ενός χρήστη, αλλά τα S και s χρησιμοποιούνται κυρίως σε δέσμες ενεργειών.

Πρώτα απ 'όλα, μετά την εκκίνηση, η διαδικασία init διαβάζει το αρχείο ρυθμίσεων / etc / inittab. Αυτό το αρχείο αποτελείται από ξεχωριστές γραμμές. Εάν η γραμμή ξεκινά με ένα σύμβολο # ή είναι κενή, τότε αγνοείται. Όλες οι άλλες γραμμές αποτελούνται από 4 πεδία χωρισμένα με άνω και κάτω τελεία:

ταυτότητα : runlevels : δράση : επεξεργάζομαι, διαδικασία

αναγνωριστικό σειράς -

runlevels - επίπεδα εκτέλεσης.

διαδικασία - διαδικασία?

δράση - δράση.

Το πεδίο ενέργειας περιέχει μια λέξη -κλειδί που ορίζει πρόσθετες συνθήκες για την εντολή που καθορίζεται από το πεδίο διεργασίας. Έγκυρες τιμές για το πεδίο ενέργειας:

respawn - επανεκκινήστε τη διαδικασία εάν τερματιστεί.

μία φορά - εκτελέστε τη διαδικασία μόνο μία φορά όταν μεταβαίνετε στο καθορισμένο επίπεδο.

περιμένετε - η διαδικασία θα ξεκινήσει μία φορά μετά τη μετάβαση στο καθορισμένο επίπεδο.

sysinit - Αυτή η λέξη -κλειδί υποδηλώνει ενέργειες που πρέπει να εκτελούνται κατά την εκκίνηση του συστήματος ανεξάρτητα από το επίπεδο λειτουργίας (το πεδίο id αγνοείται).

εκκίνηση - η διαδικασία θα ξεκινήσει στο στάδιο της φόρτωσης του συστήματος από το επίπεδο λειτουργίας.

bootwait - η διαδικασία θα ξεκινήσει στο στάδιο της εκκίνησης του συστήματος από το επίπεδο εκτέλεσης και το init θα περιμένει να ολοκληρωθεί.

initdefault - η γραμμή στην οποία εμφανίζεται αυτή η λέξη στο πεδίο ενέργειας ορίζει το επίπεδο εκτέλεσης στο οποίο το σύστημα πηγαίνει από προεπιλογή.

off - αγνοήστε αυτό το στοιχείο.

powerwait - Επιτρέπει στη διαδικασία init να σταματήσει το σύστημα όταν χαθεί η τροφοδοσία.

Ctrlaltdel - Επιτρέπει στο init να επανεκκινήσει το σύστημα όταν ο χρήστης πατήσει έναν συνδυασμό πλήκτρων στο πληκτρολόγιο.

Αυτή η λίστα δεν είναι εξαντλητική. Για περισσότερες πληροφορίες σχετικά με το αρχείο inittab, ανατρέξτε στις αρχικές σελίδες init (8), inittab (5) και getty (8).

2 . Μέρος έργου

2.1 Δήλωση του προβλήματος

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

2.2 Ανάπτυξη αλγορίθμου για την επίλυση του προβλήματος

Είσοδος: Uniprocessor System, Application Program, LILO Loader, POST Program, Mutual Exclusion.

Το σχήμα 1 δείχνει τον αλγόριθμο για "φόρτωση προγράμματος εφαρμογής".

Το σχήμα 2 δείχνει τον αλγόριθμο για "φόρτωση του λειτουργικού συστήματος"

2.3 Περιγραφή του αλγορίθμου για τη φόρτωση του προγράμματος εφαρμογής

1) Το πρόγραμμα εφαρμογής ξεκινά για εκτέλεση. Μετά από αυτό, ενεργοποιείται το πρόγραμμα συστήματος "Loader".

2) Μετά την ενεργοποίηση, ξεκινά τη σάρωση της μνήμης RAM για να βρει ελεύθερες περιοχές.

3) Εάν βρεθούν τέτοιες περιοχές, τότε αρχίζει ο προσδιορισμός της έναρξης της διεύθυνσης της κατανομής της ελεύθερης περιοχής. Στη συνέχεια, πηγαίνουμε σε αυτήν τη διεύθυνση και καθορίζουμε το μέγεθος της ελεύθερης περιοχής.

4) Μετά από αυτό, καθορίζεται το μέγεθος του κώδικα του προγράμματος εφαρμογής, ο οποίος ξεκινά για εκτέλεση.

5) Συγκρίνετε το μέγεθος του κώδικα και το μέγεθος της ελεύθερης περιοχής στη μνήμη RAM.

6) Εάν υπάρχει αρκετός χώρος στη μνήμη RAM για να αντιγράψετε τον κώδικα του προγράμματος εφαρμογής, τότε ο αριθμός των εικονικών σελίδων των φυσικών σελίδων είναι εγκατεστημένος στον πίνακα σελίδων. Στη συνέχεια, ο κωδικός εφαρμογής αντιγράφεται στη μνήμη RAM. Και το τέλος της διαδικασίας.

7) Διαφορετικά, θα μάθουμε αν υπάρχει αρκετός χώρος στη μνήμη RAM για ένα μέρος του κώδικα του προγράμματος εφαρμογής. Εάν ναι, τότε επαναλαμβάνουμε αυτές τις ενέργειες όταν υπάρχει αρκετός χώρος για τον πλήρη κώδικα του προγράμματος εφαρμογής. Αλλά μετά την αντιγραφή του κώδικα στη μνήμη RAM, ένα μέρος του κώδικα αντιγράφεται στην περιοχή ανταλλαγής.

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

2.4 Περιγραφή του αλγορίθμου εκκίνησης του λειτουργικού συστήματος (λειτουργικό σύστημα)

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

2) Μετά την εκτέλεση του προγράμματος POST, εμφανίζει τα αποτελέσματα της εργασίας του.

3) Καλούμε το πρόγραμμα 19Η, το οποίο προσπαθεί να βρει τη συσκευή εκκίνησης.

4) Διακοπή 19H BIOS φορτώνει τον κύριο φορτωτή εκκίνησης στη μνήμη του υπολογιστή και μεταφέρει τον έλεγχο σε αυτό το πρόγραμμα

5) Λόγω της έλλειψης ισχύος αυτού του προγράμματος, φορτώστε το λειτουργικό σύστημα. Αναζητά λοιπόν ένα πιο ισχυρό πρόγραμμα που μπορεί να το κάνει αυτό - έναν δευτερεύοντα φορτωτή. Για να γίνει αυτό, πραγματοποιεί αναζήτηση στον πίνακα διαμερισμάτων για το ενεργό διαμέρισμα και διαβάζει τον δευτερεύοντα φορτωτή στη μνήμη.

6) Ο δευτερεύων φορτωτής φορτώνει το πρώτο επίπεδο προγραμμάτων που απαιτούνται για την εκκίνηση του λειτουργικού συστήματος. Το πρόγραμμα φόρτωσης φορτώνει τη μονάδα IO.SYS στις 700 ώρες και στη συνέχεια το MSDOS.SYS μεταφέρει τον έλεγχο στην ενότητα SYSINIT της μονάδας IO.SYS.

7) Εάν, για κάποιο λόγο, δεν βρέθηκε ενεργό διαμέρισμα στο δίσκο στον πίνακα διαμερισμάτων, η διαδικασία εκκίνησης συνεχίζεται με διακοπή επεξεργασίας 18h.

2.5 Περιγραφή του αλγορίθμου λήψηςUnixχρησιμοποιώντας το bootloaderΛΙΛΟ

1) Εκτελέστε το πρόγραμμα / sbin / lilo για να γράψετε όλες τις πληροφορίες που χρειάζεστε στο στάδιο εκκίνησης στα κατάλληλα σημεία. Αναζητήστε αρχεία υπηρεσιών που απαιτούνται από τη LILO κατά την εκκίνηση.

2) Εάν τα αρχεία δεν βρεθούν, τότε εμφανίζεται ένα μήνυμα σχετικά με το τέλος της λήψης.

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

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

7) Διαφορετικά, ξεκινά ο δευτερεύων φορτωτής εκκίνησης.

8) Βεβαιωθείτε ότι ο δευτερεύων φορτωτής εκκίνησης είναι φορτωμένος στη σωστή διεύθυνση.

9) Εάν όχι, τότε εμφανίζεται ένα ενημερωτικό μήνυμα σχετικά με ένα σφάλμα κατά τη φόρτωση.

10) Ελέγξτε εάν ο πίνακας περιγραφής είναι κατεστραμμένος. Εάν ναι, τότε εμφανίζεται ένα ενημερωτικό μήνυμα σχετικά με ένα σφάλμα κατά τη φόρτωση. Εάν όχι, τότε ο πίνακας περιγραφής φορτώνεται από το αρχείο χάρτη.

11) Έλεγχος εάν η εκκίνηση του πίνακα περιγραφής ήταν επιτυχής. Εάν όχι, τότε βγάλτε ένα ενημερωτικό μήνυμα σφάλματος κατά την εκκίνηση.

12) Διαφορετικά, εξάγετε ένα ενημερωτικό μήνυμα σχετικά με την επιτυχή φόρτωση του LILO.

συμπέρασμα

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

βιβλιογραφικές αναφορές

1. Tanenbaum Andrew. Σύγχρονα λειτουργικά συστήματα / Tanenbaum Andrew. - 2η έκδ. - SPB.: Peter, 2002.- 1037p.: Ill. - (Κλασικές Επιστήμες Υπολογιστών). -ISBN 5-318-00299-4

2. Partyka, T.L. Λειτουργικά συστήματα, περιβάλλοντα και κελύφη: Ένα σεμινάριο για περιβάλλοντα. Καθ. Arr ποτάμια. MO / Partyka, T.L, Popov, I.I. - M.: FORUM: INFRA - M, 2006. - 399 σελ .: Ill. - (Επαγγελματική εκπαίδευση). -ISBN 5-8199-0072-5-16-001355-5

3. Olifer, V.G. Λειτουργικά συστήματα δικτύου: Εγχειρίδιο. εγχειρίδιο για τα πανεπιστήμια των ποταμών. MO / Olifer, V.G, Olifer, Ν.Α. - SPb.: Peter, 2003.- 538s .: Ill. -ISBN 5-272-00120-6

4. Trubacheva, S.I. Προγραμματισμός σε λειτουργικά συστήματα: Μεθοδολογικό εγχειρίδιο / Trubacheva, S.I. - Togliatti: VUiT, 2006 .-- 44σ.

5. Τέρενς Τσαν. Προγραμματισμός συστήματος σε C ++ για Unix / Ed. Κολομίτσεφ. - Κίεβο, 2004.

6. Taket D., Barnet S. Ειδική έκδοση. Χρήση LINUX / Ανά. από τα Αγγλικά - 4η έκδ. SPb.: Williams, 2003.

7. Ιβάνοβα Γ.Σ. C ++ προγραμματισμός / Εγχειρίδιο. Ed. Μ.: MGTU, 2002.

Παρόμοια έγγραφα

    Γενικά χαρακτηριστικά του συστήματος Android, μια επισκόπηση των αναλόγων του. Προϋποθέσεις για να ξεκινήσετε με το Android. Ρύθμιση παραμέτρων του Ubuntu. Γραφή σεναρίων για απλοποίηση της γενιάς Linux. Σφάλματα και δοκιμές του προγράμματος στον πίνακα i.MX53 freescale.

    έγγραφο όρου προστέθηκε στις 10/12/2012

    Εξέταση των χαρακτηριστικών των διαχειριστών λήψης. Περιγραφή λήψης Accelerator Plus, Download Master, FlashGet, GetRight, ReGet, Go! Zilla. Συγκριτικά χαρακτηριστικά των διαχειριστών εκκίνησης των Windows. Προγράμματα για λειτουργικά συστήματα Unix, Linux και Mac.

    περίληψη, προστέθηκε 09/06/2014

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

    θητεία, προστέθηκε 04/02/2014

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

    η παρουσίαση προστέθηκε στις 20/12/2013

    Ανάλυση των τεχνικών δυνατοτήτων του λειτουργικού συστήματος Mandriva Linux - ένα κιτ διανομής GNU / Linux που αναπτύχθηκε από τη γαλλική εταιρεία Mandriva, το οποίο κυκλοφορεί δωρεάν, εμπορικές και εταιρικές εκδόσεις του κιτ διανομής του. Βήματα εγκατάστασης κελύφους Linux.

    παρουσίαση προστέθηκε στις 23/05/2010

    Στιγμιότυπα της ιστορίας των λειτουργικών συστημάτων που συνδέουν υλικό και προγράμματα εφαρμογών. Χαρακτηριστικά του λειτουργικού συστήματος Microsoft Windows Seven, ανάλυση του λειτουργικού συστήματος Linux. Τα πλεονεκτήματα και τα μειονεκτήματα κάθε λειτουργικού συστήματος.

    θητεία, προστέθηκε 05/07/2011

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

    διατριβή, προστέθηκε 18/07/2013

    Στάδια φόρτωσης συστήματος Linux, εγγραφή. Διαχείριση λογαριασμού χρήστη. Η αρχή της ονομασίας συσκευών, ο σκοπός και η χρήση ειδικών αρχείων. Διαχείριση αρχείων, πρόσβαση στο σύστημα αρχείων, εργασίες. Βασική δομή αρχείων Linux.

    εγχειρίδιο, προστέθηκε 15/11/2014

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

    έγγραφο όρου προστέθηκε στις 11/05/2015

    Χαρακτηριστικά φόρτωσης λειτουργικού συστήματος Linux σε τερματική λειτουργία, σύνδεσης και εγγραφής χρηστών. Εκτέλεση αλλαγής αρχείου, χρησιμοποιώντας το για να λειτουργήσει με εντολές λειτουργικού συστήματος. Εφαρμογή καναλιών προγράμματος (pipelines).