Ο πυρήνας Linux είναι η ραχοκοκαλιά των λειτουργικών συστημάτων (OS) Linux και είναι η θεμελιώδης διεπαφή μεταξύ του υλικού ενός υπολογιστή και των διαδικασιών του.
Αποκαλύφθηκε ο Linus Torvalds μέσω ανακοίνωσης για τη διαθεσιμότητα της νέας έκδοσης του Πυρήνας Linux 6.1. που ίσως είναι μια από τις πιο σημαντικές εκδόσεις που κυκλοφόρησαν τα τελευταία 30 χρόνια Και είναι ότι αυτό που κάνει αυτή την έκδοση τόσο ξεχωριστή είναι ότι από αυτήν την έκδοση εισάγεται μια δεύτερη γλώσσα για την ανάπτυξη του πυρήνα, η οποία είναι η γλώσσα Rust.
Ως εκ τούτου, η Rust αποκτά μόνο ένα επίσημο API για να επιτρέπει την ανάπτυξη ξεχωριστών λειτουργικών μονάδων ή πιλοτικών για Linux. Αυτό σημαίνει ότι το άνοιγμα του πυρήνα του Linux σε αυτήν τη γλώσσα συνεχίζεται με συνέπεια να μην έχει προγραμματιστεί η απόσυρση της γλώσσας C για αύριο. Ωστόσο, είναι μια αλλαγή που προέρχεται από τη διαθεσιμότητα και τις αρμοδιότητες των τρίτων που εμπλέκονται στην ανάπτυξη του πυρήνα.
Κύρια νέα στο Linux 6.1
Η μεγαλύτερη καινοτομία του Linux 6.1 είναι η άφιξη του Rust, καθώς εδώ και αρκετά χρόνια, η εργασία συνεχίζεται στα παρασκήνια για να γίνει ο πυρήνας κατάλληλος για την αναδυόμενη γλώσσα προγραμματισμού. Στο μέλλον, θα πρέπει να είναι δυνατός ο προγραμματισμός ενοτήτων όχι μόνο σε C, αλλά και σε Rust.
Στην τρέχουσα κατάσταση επιτρέπει μόνο τη μεταγλώττιση, τη μεταφόρτωση και τη λήψη ένα πολύ απλό παράδειγμα ενότητας. Ως πρώτο βήμα, ο Linus Torvalds ήθελε απλώς ένα απλό "Hello world!" Επομένως, άλλες χρήσιμες ενότητες και, πάνω απ 'όλα, δεν είναι δυνατές στο Rust στον τρέχοντα πυρήνα. Ωστόσο, ο νέος πυρήνας προσφέρει μια πρώτη ματιά για το πώς ενσωματώνεται το Rust και ποιες προκλήσεις πρέπει να ξεπεραστούν.
Μια άλλη καινοτομία που εφαρμόζεται από αυτή τη νέα έκδοση του Linux 6.1 είναι το Υποστήριξη AMD Platform Management Framework, το οποίο εγγυάται βελτιώσεις απόδοσης με διάφορες CPU (Central Processing Units) της AMD.
Πλαίσιο διαχείρισης πλατφόρμας AMD επίσης πλήρη υποστήριξη για το AMT (αυτόματη μετάβαση σε λειτουργία) και για CnQF (Cool and Quiet Framework). Ξεκινώντας με αυτήν την ενημέρωση, οι χρήστες της διανομής θα έχουν ουσιαστικά πρόσβαση σε βαθύτερη και πιο ολοκληρωμένη διαχείριση ενέργειας και θερμοκρασίας.
Εκτός από αυτό, μπορούμε επίσης να το βρούμε Περιλαμβάνεται μηχανισμός MGLRU (multi-generation LRU), το οποίο αντικατέστησε την παλιά εφαρμογή LRU (Last Recently Used) που βασίζεται σε δύο ουρές με δομή πολλών σταδίων που καθορίζει καλύτερα ποιες σελίδες μνήμης χρησιμοποιούνται στην πραγματικότητα και ποιες μπορούν να εξαναγκαστούν από την ανταλλαγή.
Προστέθηκε υποστήριξη για δομή δεδομένων δέντρου σφενδάμου που προτείνεται από τους μηχανικούς της Oracle, η οποία τοποθετείται ως πιο αποτελεσματική αντικατάσταση της δομής του «κόκκινου-μαύρου δέντρου». Σφενδάμι καιείναι μια παραλλαγή του δέντρου Β που υποστηρίζει ευρετηρίαση εύρους και έχει σχεδιαστεί για να κάνει αποτελεσματική χρήση της κρυφής μνήμης των σύγχρονων επεξεργαστών. Ορισμένα υποσυστήματα διαχείρισης μνήμης έχουν ήδη μεταφερθεί στο δέντρο του σφενδάμου, κάτι που έχει θετική επίδραση στην απόδοσή του. Στο μέλλον, το δέντρο σφενδάμου μπορεί να χρησιμοποιηθεί για την εφαρμογή κλειδώματος εμβέλειας.
Ξεχωρίζει επίσης στο Linux 6.1 που πρόσθεσε μια ειδική κλήση για εκχώρηση μνήμης σε προγράμματα BPF (κατανομέας μνήμης), ο οποίος παρέχει ασφαλέστερη κατανομή μνήμης στο πλαίσιο BPF από την κανονική kmalloc(). Το πρώτο μέρος των αλλαγών έχει ενσωματωθεί, παρέχοντας τη δυνατότητα δημιουργίας προγραμμάτων οδήγησης για συσκευές εισόδου με τη διεπαφή HID (Human Interface Device), που υλοποιείται με τη μορφή προγραμμάτων BPF. Ο κώδικας αφαιρέθηκε εντελώς από τον πυρήνα για να υποστηρίξει τη μορφή εκτελέσιμου αρχείου a.out, η οποία καταργήθηκε στην έκδοση 5.1 και, από τις εκδόσεις 5.18 και 5.19, απενεργοποιήθηκε για όλες τις κύριες αρχιτεκτονικές.
Η μορφή a.out δεν έχει χρησιμοποιηθεί σε συστήματα Linux για μεγάλο χρονικό διάστημα και τα σύγχρονα εργαλεία δεν υποστηρίζουν τη δημιουργία αρχείων a.out στις προεπιλεγμένες διαμορφώσεις Linux. Ο φορτωτής αρχείων a.out μπορεί να υλοποιηθεί εξ ολοκλήρου στο χώρο χρήστη.
Αντικατέστησε την εφαρμογή του μηχανισμού προστασίας CFI (Control Flow Integrity), προσθέτοντας ελέγχους πριν από κάθε έμμεση κλήση συνάρτησης για τον εντοπισμό ορισμένων μορφών απροσδιόριστης συμπεριφοράς που ενδέχεται να οδηγήσουν σε παραβίαση της κανονικής σειράς εκτέλεσης (ροή ελέγχου) ως αποτέλεσμα χρήσης εκμεταλλεύσεων που αλλάζουν δείκτες συναρτήσεων που είναι αποθηκευμένοι στη μνήμη.
Η τακτική εφαρμογή CFI του έργου LLVM έχει αντικατασταθεί από μια παραλλαγή, η οποία βασίζεται επίσης στη χρήση του Clang, αλλά είναι ειδικά προσαρμοσμένη για την προστασία υποσυστημάτων χαμηλού επιπέδου και πυρήνες λειτουργικών συστημάτων. Στο LLVM θα προταθεί μια νέα υλοποίηση στην έκδοση Clang 16 και θα ενεργοποιηθεί με την επιλογή “-fsanitize=kcfi”.
Η βασική διαφορά της νέας υλοποίησης είναι ότι δεν συνδέεται με βελτιστοποιήσεις χρόνου σύνδεσης (LTO) και δεν έχει ως αποτέλεσμα την αντικατάσταση των δεικτών συνάρτησης με συνδέσμους στον πίνακα μετάβασης.
Από τις άλλες αλλαγές που ξεχωρίζουν
- Για λειτουργικές μονάδες Linux Security Module (LSM), παρέχεται η δυνατότητα δημιουργίας ελεγκτών που παρεμποδίζουν λειτουργίες για τη δημιουργία χώρων ονομάτων.
- Παρέχονται εργαλεία για την επαλήθευση ψηφιακών υπογραφών PKCS#7 σε προγράμματα BPF.
- Το /dev/random επέστρεψε τη δυνατότητα ανοίγματος σε λειτουργία μη αποκλεισμού (O_NONBLOCK), η οποία αφαιρέθηκε κατά λάθος στον πυρήνα 5.6.
- Προστέθηκε μια προειδοποίηση σε συστήματα x86 όταν τα υποσυστήματα του πυρήνα εκχωρούν σελίδες μνήμης που είναι και εκτελέσιμες και εγγράψιμες. Στο μέλλον, εξετάζεται το ενδεχόμενο να απαγορευθεί πλήρως μια τέτοια χαρτογράφηση μνήμης.
τελικά αν είσαι ενδιαφέρεται να μάθει περισσότερα για αυτό, μπορείτε να ελέγξετε τις λεπτομέρειες Στον ακόλουθο σύνδεσμο.