Λειτουργικά συστήματα – Πυρήνας (Kernel)

Λειτουργικά συστήματα – Πυρήνας (Kernel)

Πυρήνας (Kernel)

πυρήνας - kernelΠυρήνας (Kernel) – το μόνο πρόγραμμα που τρέχει συνέχεια, όσο βρίσκεται σε λειτουργία το ΥΣ (όλα τα υπόλοιπα θεωρούνται επιπρόσθετες υπηρεσίες και προγράμματα εφαρμογών).

Ο όρος πυρήνας (kernel) αναφέρεται στο βασικό, θεμέλιο τμήμα ενός λειτουργικού συστήματος (ΛΣ) το οποίο αλληλεπιδρά στενά με το υλικό του υπολογιστή.

Ο πυρήνας είναι υπεύθυνος για:

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

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

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

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

πυρήνας - kernel - shell

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

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

Διαδικασία (ή υποπρόγραμμα)

πυρήνας - kernel - processΔιαδικασία (ή υποπρόγραμμα) καλείται μία σειρά προγραμματιστικών εντολών. Μία διαδικασία δεν πρέπει να συγχέεται με έναν θεωρητικό αλγόριθμο, αν και όχι σπάνια μία διαδικασία υλοποιεί κάποιον αλγόριθμο σε γλώσσα μηχανής.

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

Μέσω αυτών των ονομάτων μπορούν να καλούνται κατά βούληση, και πιθανώς επανειλημμένα, από το ευρύτερο εκτελούμενο πρόγραμμα.

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

Βασικές έννοιες λειτουργικών συστημάτων

Το Λ.Σ. παρέχει δύο βασικές αφηρημένες έννοιες:
1. Διεργασίες (Processes)
2. Αρχεία (Files)

Με την έννοια της «διεργασίας» ασχολούνται εκείνες οι διαδικασίες του Λ.Σ. που καλούνται να διαχειριστούν τη CPU, RAM, Δίσκους, Τερματικά, κ.λπ. Αυτή η διαχείριση εστιάζει στην ίση κατανομή των υλικών πόρων του υπολογιστή σε όλα τα προγράμματα που τρέχουν σε μία δεδομένη στιγμή.

Με την έννοια του «αρχείου» ασχολούνται οι διαδικασίες του Λ.Σ. που παρέχουν την δυνατότητα δημιουργίας μη-προσωρινών δεδομένων (που αποθηκεύονται στη δευτερεύουσα μνήμη). Αυτές οι διαδικασίες ασχολούνται επίσης και με την επικοινωνία με τις περιφερειακές συσκευές.

Πυρήνας και διαδικασίες

O πυρήνας του Λ.Σ. αναφέρεται στο κύριο τμήμα του Λ.Σ. Yλοποιεί τις δύο βασικές οντότητες (processes και files) του Λ.Σ.

Αυτός ο κώδικας είναι προστατευμένος, με την έννοια ότι δεν ανήκει σε κανένα χρήστη (user process). Διαφορετικά, ο κάθε χρήστης θα μπορούσε να αλλάξει αυτό τον κώδικα και έτσι να μονοπωλήσει τους πόρους του συστήματος, CPU, RAM, δίσκοι, τερματικά, κλπ.

πυρήνας - kernel user modeΑυτή η προστασία επιτυγχάνεται χρησιμοποιώντας δύο τρόπους λειτουργίας:

  • user mode και
  • kernel mode.

Το σύστημα βρίσκεται υπό προστασία όταν βρίσκεται σε kernel mode. Δηλαδή, ειδικές εντολές που διαχειρίζονται τους πόρους του συστήματος μπορούν να εκτελεσθούν μόνο όταν το σύστημα λειτουργεί σε kernel mode.

Το Λ.Σ. είναι το μόνο system software το οποίο εκτελείται σε kernel mode.

Απάντηση

Αυτός ο ιστότοπος χρησιμοποιεί το Akismet για να μειώσει τα ανεπιθύμητα σχόλια. Μάθετε πώς υφίστανται επεξεργασία τα δεδομένα των σχολίων σας.