Για τους περιστασιακούς χρήστες και τους οπαδούς των hardcore, το Linux είναι ένα λειτουργικό σύστημα. Για τους καθαριστές, ωστόσο, ο τίτλος "Linux" είναι δεσμευμένος για τον πυρήνα που εξουσιοδοτεί το λειτουργικό σύστημα. Αν είστε περίεργοι ως προς τον πυρήνα του Linux, ας απαντήσουμε στην ερώτηση αυτή με προσοχή στο νέο χρήστη.
Τρόποι
Πριν να εξηγήσουμε τι είναι ο πυρήνας, είναι σημαντικό να κατανοήσουμε τους όρους "λειτουργία χρήστη" και "λειτουργία πυρήνα". Η κατάσταση χρήστη είναι όταν η εκτέλεση κώδικα δεν έχει δυνατότητα άμεσης πρόσβασης στη μνήμη υλικού ή αναφοράς. Για να αποκτήσετε πρόσβαση στο υλικό και στη μνήμη, ο κώδικας που εκτελείται σε κατάσταση χρήστη πρέπει να μεταβιβάσει οδηγίες σε διεπαφές προγραμματισμού εφαρμογών συστήματος (APIs). Η λειτουργία Kernel είναι όταν η εκτέλεση κώδικα έχει απεριόριστη πρόσβαση σε όλο το υλικό και προορίζεται για τις πιο αξιόπιστες λειτουργίες ενός λειτουργικού συστήματος.
Τι είναι ένας πυρήνας;
Κάθε λειτουργικό σύστημα έχει έναν πυρήνα. Τα Windows, macOS, iOS, Android, Chrome OS και Linux διαθέτουν ένα σύστημα χαμηλού επιπέδου το οποίο είναι υπεύθυνο για τη διασύνδεση όλων των εφαρμογών με το φυσικό υλικό του υπολογιστή. Χωρίς τον πυρήνα, καμία από τις εφαρμογές σας δεν θα μπορούσε να κάνει χρήση του φυσικού υπολογιστή. εφαρμογές όπως το Firefox, το Chrome, το LibreOffice, το MS Office ή το Outlook δεν θα λειτουργούσαν. Ο πυρήνας είναι επίσης υπεύθυνος για να επιτρέπει στις διαδικασίες να ανταλλάσσουν πληροφορίες χρησιμοποιώντας τη λεγόμενη Inter-Process Communication (IPC).
Υπάρχουν (γενικά) τρεις τύποι πυρήνων:
- Μονολιθικοί πυρήνες: Αυτοί οι πυρήνες περιλαμβάνουν την CPU, τη μνήμη, την IPC, τα προγράμματα οδήγησης συσκευών, τη διαχείριση του συστήματος αρχείων και τις κλήσεις διακομιστή συστήματος. Είναι επίσης υπεύθυνη για την αποστολή δωρεάν μνήμης συστήματος σε εφαρμογές. Αυτοί οι τύποι πυρήνων είναι κατά κανόνα καλύτεροι στην πρόσβαση στο υλικό και στο multitasking.
- Μικροκέρβες: Οι μικροπυρήνες ακολουθούν μινιμαλιστική προσέγγιση και διαχειρίζονται μόνο την CPU, τη μνήμη και την IPC.
- Υβριδικοί πυρήνες: Οι Υβριδικοί πυρήνες έχουν τη δυνατότητα να αποφασίσουν τι θέλουν να εκτελέσουν είτε σε λειτουργία χρήστη είτε σε λειτουργία πυρήνα. Αν και αυτό παρέχει το καλύτερο και των δύο κόσμων, απαιτεί πολύ περισσότερο από τους κατασκευαστές υλικού να δημιουργήσουν προγράμματα οδήγησης που χρησιμεύουν για τη διασύνδεση μεταξύ εκτέλεσης κώδικα και υλικού.
Το Linux χρησιμοποιεί έναν μονολιθικό πυρήνα ανοιχτού κώδικα, ενώ οι MacOS και τα Windows χρησιμοποιούν και τους Υβριδικούς πυρήνες. Ο πυρήνας του Linux σχεδιάστηκε το 1991 από τον Linus Torvalds. Μέχρι σήμερα, ο κ. Torvalds συνεχίζει να είναι ο κύριος προγραμματιστής στον πυρήνα του Linux, ενώ οι προγραμματιστές από όλο τον κόσμο συμβάλλουν στον πυρήνα του Linux. Στην πραγματικότητα, εκτιμάται ότι περίπου 10.000 προγραμματιστές, από περισσότερες από 1.000 εταιρείες, έχουν συνεισφέρει στον πυρήνα του Linux (από τη στιγμή που άρχισε η παρακολούθηση το 2005).
Πού είναι ο πυρήνας;
Εάν ανοίξετε ένα παράθυρο τερματικού και εκδώσετε την εντολή ls / boot, θα εμφανιστεί ένα αρχείο που καλείται vmlinuz-VERSION (Όπου το VERSION είναι το όνομα ή ο αριθμός έκδοσης). Το αρχείο vmlinuz είναι ο πραγματικός bootable πυρήνας του Linux και το "z" σημαίνει ότι ο πυρήνας είναι συμπιεσμένος. έτσι αντί για vmlinux έχουμε vmlinuz.

Μέσα σε αυτόν τον κατάλογο εκκίνησης υπάρχουν και άλλα σημαντικά αρχεία πυρήνα, όπως initrd.img-VERSION, system.map-VERSION και config-VERSION (όπου το VERSION είναι είτε όνομα είτε αριθμός έκδοσης). Αυτά τα άλλα αρχεία εξυπηρετούν τους ακόλουθους σκοπούς:
- initrd: χρησιμοποιείται ως ένας μικρός δίσκος RAM που εξάγει και εκτελεί το πραγματικό αρχείο του πυρήνα.
- system.map: χρησιμοποιείται για τη διαχείριση μνήμης, πριν από τη φόρτωση του πυρήνα.
- config: καθοδηγεί τον πυρήνα σε ποιες επιλογές και λειτουργικές μονάδες να φορτώσει.
Ενότητες
Χωρίς ενότητες, ο πυρήνας δεν θα ήταν πολύ χρήσιμος. Οι ενότητες ενεργοποιούν αποτελεσματικά τα προγράμματα οδήγησης που είναι απαραίτητα για να επικοινωνούν με το υλικό χωρίς να καταναλώνουν όλη τη μνήμη του συστήματος. Οι ενότητες προσθέτουν επίσης λειτουργικότητα στον πυρήνα, όπως η επικοινωνία με περιφερειακά, η διαχείριση συστημάτων αρχείων, η ασφάλεια κ.λπ. Είναι δυνατή η λίστα, η προσθήκη και η αφαίρεση ενοτήτων στον πυρήνα με τις ακόλουθες εντολές:
- lsmod θα εμφανίσει όλες τις τρέχουσες ενότητες του πυρήνα.
- insmod θα φορτώσει μια ενότητα πυρήνα στον τρέχοντα πυρήνα.
- rmmod θα απελευθερώσει μια ενότητα από τον τρέχοντα πυρήνα.
Έτσι, βλέπετε, με τη βοήθεια μερικών απλών εντολών, ο πυρήνας του Linux μπορεί να είναι αρκετά ευέλικτος.
Ο τρέχων πυρήνας
Από αυτό το γράψιμο, ο σταθερός πυρήνας του Linux είναι 4.18.5, αλλά όχι όλες οι διανομές Linux θα περιλαμβάνουν τον τελευταίο πυρήνα. Στην πραγματικότητα, η επικαιροποιημένη κατανομή της επιφάνειας εργασίας του OS βασίζεται στον πυρήνα 4.15.0-30. Τι σημαίνει αυτός ο αριθμός; Στην περίπτωση του τελευταίου πυρήνα του στοιχειώδους λειτουργικού συστήματος, σημαίνει:
- Το 4 είναι η βασική έκδοση
- 15 είναι η έκδοση Minor
- Το 0-30 είναι η αναθεώρηση
Είναι επίσης δυνατό να κάνετε λήψη διαφορετικών εκδόσεων του πυρήνα του Linux από το kernel.org και να το συντάξετε μόνοι σας. Η μεταγλώττιση του πυρήνα του Linux είναι μια εργασία που απομένει καλύτερα σε όσους γνωρίζουν πραγματικά τι κάνουν. Ένας ανεπαρκώς καταρτισμένος πυρήνας μπορεί να καταστήσει ένα σύστημα unbootable. Έτσι, αν δεν είστε έτοιμοι να βουτήξετε στο δύσκολο έργο της σύνταξης κώδικα σε αυτό το επίπεδο, χρησιμοποιήστε τον προεπιλεγμένο πυρήνα που στέλνει και ενημερώνει για την διανομή που έχετε επιλέξει.




