Το λήμμα παραθέτει τις πηγές του αόριστα, χωρίς παραπομπές.Βοηθήστε συνδέοντας το κείμενο με τις πηγές χρησιμοποιώντας παραπομπές, ώστε να είναι επαληθεύσιμο. Το πρότυπο τοποθετήθηκε χωρίς ημερομηνία. Γιατη σημερινή ημερομηνία χρησιμοποιήστε: {{χωρίς παραπομπές|2|11|2024}}
Ο όρος πυρήνας (kernel) στηνπληροφορική αναφέρεται στο βασικό, θεμέλιο τμήμα ενός λειτουργικού συστήματος (ΛΣ) το οποίο αλληλεπιδρά στενά μετουλικότου υπολογιστή. Ο πυρήνας είναι υπεύθυνος γιατην αυτόματη διαχείριση τωνπόρωντου συστήματος, την κατανομή τους στις εκτελούμενες εφαρμογές, την απρόσκοπτη εκτέλεση των τελευταίων καιτην επικοινωνία μεταξύ υλικού καιλογισμικού.
Δεν υπάρχει γενική συναίνεση σχετικά μετο θέμα διαχωρισμού λειτουργικού συστήματος και πυρήνα στην κοινότητα της επιστήμης υπολογιστών καιδεν είναι σπάνιο τοΛΣνα ταυτίζεται μετον πυρήνα του, θεωρώντας οτιδήποτε εκτελείται στον χώρο χρήστη ως συνοδευτικό λογισμικό συστήματος ή λογισμικό εφαρμογών.
Σε κάθε ΛΣο πυρήνας αποτελεί τοπιο χαμηλό επίπεδο αφαίρεσης υλικού, ειδικά τωνεπεξεργαστών, της μνήμηςκαιτων μονάδων Εισόδου / Εξόδου (Ι/Ο). Ο πυρήνας είναι κώδικας χαμηλού επιπέδου, αποκλειστικά γιατηναρχιτεκτονική επεξεργαστή στην οποία στοχεύει τοΛΣ, γραμμένος συνήθως σεγλώσσαC ή καισεσυμβολική γλώσσα, ο οποίος αναλαμβάνει όλες τις παραπάνω εργασίες. Ο κώδικας των εφαρμογών (κώδικας χρήστη) δεν έχει άμεση πρόσβαση στον πυρήνα αλλά ο τελευταίος παρέχει μία προγραμματιστική διασύνδεση, τις κλήσεις συστήματος, μετην οποία τα προγράμματα χρήστη μπορούν να καλούν με ελεγχόμενο τρόπο διαδικασίεςτου πυρήνα που παρέχουν υπηρεσίες στον καλούντα. Έτσι ο πυρήνας παρουσιάζει μία πλασματική, αφαιρετική εκδοχή του υλικού για χρήση από το λογισμικό.
Η σύνταξη, η σημασιολογία καιη ονοματολογία των κλήσεων συστήματος διαφέρει από ΛΣσεΛΣ, με αποτέλεσμα ένα εκτελέσιμο συνήθως να μπορεί να τρέξει μόνο σε ένα ΛΣ. Ο κώδικας χρήστη δεν μπορεί να προσπελάσει μόνος του τους πόρους του υπολογιστή (π.χ. δίσκους, μνήμη συστήματος, περιφερειακά, δίκτυοκλπ) αλλά μπορεί να ζητήσει ό,τι χρειάζεται (π.χ. άνοιγμα ενός αρχείουστον δίσκο) από τον πυρήνα μέσω των κλήσεων συστήματος. Οι γλώσσες προγραμματισμού παρέχουν προτυποποιημένες βιβλιοθήκεςπου αποκρύπτουν αυτήν τη διαδικασία από τον προγραμματιστή και παρέχουν φορητότητα πηγαίου κώδικα από ΛΣσεΛΣ. Ο κώδικας που υλοποιεί τις κλήσεις συστήματος είναι ουσιαστικά τμήμα του πυρήνα οπότε η κλήση διαδικασιών από αυτές τις βιβλιοθήκες ζητά μετάβαση του επεξεργαστή σεκατάσταση πυρήνα, κατά την οποία μπορούν να εκτελεστούν εντολές με άμεση επίδραση στο υλικό και στους πόρους του υπολογιστή, και μεταφέρει τον έλεγχο στον κώδικα της αντίστοιχης κλήσης συστήματος. Όταν ο τελευταίος τερματίσει ο επεξεργαστής μεταβαίνει πάλι σε κατάσταση χρήστη καιη διαδικασία χρήστη συνεχίζει την εκτέλεσή της από την εντολή που ακολουθεί την κλήση συστήματος.
Διάφοροι τύποι πυρήνων έχουν υλοποιηθεί σε διαφορετικά λειτουργικά συστήματα. Οπιο συνηθισμένος είναι ομονολιθικός πυρήνας, όλα τα τμήματα του οποίου εκτελούνται σε έναν ενιαίο χώρο διευθύνσεωνκαισε κατάσταση πυρήνα. Αυτό γίνεται για λόγους αυξημένης απόδοσης καθώς η μετάβαση από χώρο χρήστη σε χώρο πυρήνα παρουσιάζει σημαντικό χρονικό κόστος, μία επιβάρυνση η οποία μειώνει τις επιδόσεις του υπολογιστή όταν ένα πρόγραμμα εκτελεί πολλές κλήσεις συστήματος. Μετο πέρασμα του καιρού όμως εμφανίστηκαν καιμικροπυρήνες, μεγάλα τμήματα των οποίων εκτελούνται στον χώρο του χρήστη (ως υποκείμενες βιβλιοθήκες συστήματος) για λόγους αποφυγής σφαλμάτων και ευκολότερης συντήρησης. Μεταξύ αυτών των δύο ακραίων λύσεων υπάρχουν πολλές παραλλαγές στην λειτουργία των πυρήνων.