Έκδοση πυρήνα Linux 5.18

Μετά από δύο μήνες ανάπτυξης, ο Linus Torvalds παρουσίασε την κυκλοφορία του πυρήνα Linux 5.18. Μεταξύ των πιο αξιοσημείωτων αλλαγών: πραγματοποιήθηκε μια σημαντική εκκαθάριση απαρχαιωμένης λειτουργικότητας, το Reiserfs FS κηρύχθηκε απαρχαιωμένο, υλοποιήθηκαν συμβάντα ανίχνευσης διεργασιών χρήστη, προστέθηκε υποστήριξη για τον μηχανισμό αποκλεισμού των εκμεταλλεύσεων Intel IBT, ενεργοποιήθηκε μια λειτουργία ανίχνευσης υπερχείλισης buffer όταν χρησιμοποιώντας τη συνάρτηση memcpy(), προστέθηκε μηχανισμός παρακολούθησης κλήσεων συνάρτησης fprobe, βελτιώθηκε η απόδοση του προγραμματιστή εργασιών σε επεξεργαστές AMD Zen, συμπεριλήφθηκε πρόγραμμα οδήγησης για τη διαχείριση της λειτουργικότητας της CPU της Intel (SDS), ορισμένες ενημερώσεις κώδικα έχουν ενσωματωθεί για την αναδιάρθρωση αρχείων κεφαλίδας και έχει εγκριθεί η χρήση του προτύπου C11.

Η νέα έκδοση περιλαμβάνει 16206 διορθώσεις από 2127 προγραμματιστές (στην τελευταία έκδοση υπήρξαν 14203 διορθώσεις από 1995 προγραμματιστές), το μέγεθος της ενημέρωσης κώδικα είναι 108 MB (οι αλλαγές επηρέασαν 14235 αρχεία, προστέθηκαν 1340982 γραμμές κώδικα, διαγράφηκαν 593836 γραμμές). Περίπου το 44% όλων των αλλαγών που εισάγονται στο 5.18 σχετίζονται με προγράμματα οδήγησης συσκευών, περίπου το 16% των αλλαγών σχετίζονται με την ενημέρωση κώδικα ειδικού για αρχιτεκτονικές υλικού, το 11% σχετίζονται με τη στοίβα δικτύου, το 3% σχετίζονται με συστήματα αρχείων και το 3% σχετίζονται με εσωτερικά υποσυστήματα πυρήνα.

Βασικές καινοτομίες στον πυρήνα 5.18:

  • Υποσύστημα δίσκου, I/O και συστήματα αρχείων
    • Το σύστημα αρχείων Btrfs έχει προσθέσει υποστήριξη για την προώθηση συμπιεσμένων δεδομένων κατά την εκτέλεση λειτουργιών αποστολής και λήψης. Προηγουμένως, κατά τη χρήση/λήψη/λήψη, η πλευρά αποστολής αποσυμπιέζει τα δεδομένα που είναι αποθηκευμένα σε συμπιεσμένη μορφή και η πλευρά παραλαβής την επανασυναρμολογούσε πριν το γράψει. Στον πυρήνα 5.18, οι εφαρμογές χώρου χρήστη που χρησιμοποιούν κλήσεις αποστολής/λήψης είχαν τη δυνατότητα να μεταδίδουν συμπιεσμένα δεδομένα χωρίς επανασυσκευασία. Η λειτουργικότητα εφαρμόζεται χάρη στις νέες λειτουργίες IOCTL BTRFS_IOC_ENCODED_READ και BTRFS_IOC_ENCODED_WRITE, που σας επιτρέπουν να διαβάζετε και να γράφετε πληροφορίες σε εκτάσεις.

      Επιπλέον, το Btrfs βελτιώνει την απόδοση του fsync. Προστέθηκε η δυνατότητα deduplicate και εκτελέστε reflink (κλωνοποίηση μεταδεδομένων αρχείων δημιουργώντας ένα σύνδεσμο με υπάρχοντα δεδομένα χωρίς να το αντιγράψουμε πραγματικά) για ολόκληρο το χώρο αποθήκευσης, που δεν περιορίζεται στα σημεία mount.

    • Στη λειτουργία Direct I/O, είναι δυνατή η πρόσβαση σε κρυπτογραφημένα αρχεία όταν το fscrypt χρησιμοποιεί ενσωματωμένη κρυπτογράφηση, στην οποία οι λειτουργίες κρυπτογράφησης και αποκρυπτογράφησης εκτελούνται από τον ελεγκτή μονάδας δίσκου και όχι από τον πυρήνα. Με την κανονική κρυπτογράφηση πυρήνα, η πρόσβαση σε κρυπτογραφημένα αρχεία με χρήση Direct I/O εξακολουθεί να είναι αδύνατη, καθώς η πρόσβαση στα αρχεία γίνεται παρακάμπτοντας τον μηχανισμό προσωρινής αποθήκευσης στον πυρήνα.
    • Ο διακομιστής NFS περιλαμβάνει υποστήριξη για το πρωτόκολλο NFSV3 από προεπιλογή, το οποίο τώρα δεν απαιτεί ξεχωριστή ενεργοποίηση και είναι διαθέσιμη όταν το NFS ενεργοποιείται γενικά. Το NFSv3 θεωρείται η κύρια και πάντα υποστηριζόμενη έκδοση του NFS και η υποστήριξη του NFSv2 ενδέχεται να διακοπεί στο μέλλον. Η αποτελεσματικότητα της ανάγνωσης των περιεχομένων του καταλόγου έχει βελτιωθεί σημαντικά.
    • Το σύστημα αρχείων ReiserFS έχει καταργηθεί και αναμένεται να καταργηθεί το 2025. Η κατάργηση του ReiserFS θα μειώσει την προσπάθεια που απαιτείται για τη διατήρηση αλλαγών σε όλο το σύστημα αρχείων που σχετίζονται με την υποστήριξη του νέου API για τοποθέτηση, iomap και tomes.
    • Για το σύστημα αρχείων F2FS, έχει εφαρμοστεί η δυνατότητα χαρτογράφησης των αναγνωριστικών χρήστη των τοποθετημένων συστημάτων αρχείων, τα οποία χρησιμοποιούνται για τη σύγκριση των αρχείων ενός συγκεκριμένου χρήστη σε ένα τοποθετημένο ξένο διαμέρισμα με έναν άλλο χρήστη στο τρέχον σύστημα.
    • Ο κώδικας για τον υπολογισμό στατιστικών στοιχείων στους χειριστές Device-mapper έχει επεξεργαστεί εκ νέου, γεγονός που έχει βελτιώσει σημαντικά την ακρίβεια της λογιστικής σε χειριστές όπως το dm-crypt.
    • Οι συσκευές NVMe υποστηρίζουν πλέον αθροίσματα ελέγχου 64-bit για έλεγχο ακεραιότητας.
    • Για το σύστημα αρχείων exfat, έχει προταθεί μια νέα επιλογή προσάρτησης "keep_last_dots", η οποία απενεργοποιεί τη διαγραφή κουκκίδων στο τέλος του ονόματος αρχείου (στα Windows, οι κουκκίδες στο τέλος του ονόματος αρχείου αφαιρούνται από προεπιλογή).
    • Το EXT4 βελτιώνει την απόδοση της λειτουργίας fast_commit και αυξάνει την επεκτασιμότητα. Η επιλογή προσάρτησης "mb_optimize_scan", η οποία επιτρέπει την αύξηση της απόδοσης σε συνθήκες μεγάλου κατακερματισμού του συστήματος αρχείων, είναι προσαρμοσμένη για εργασία με αρχεία με εκτάσεις.
    • Η υποστήριξη για ροές εγγραφής στο υποσύστημα που υποστηρίζει συσκευές μπλοκ έχει διακοπεί. Αυτή η δυνατότητα προτάθηκε για SSD, αλλά δεν ήταν ευρέως διαδεδομένη και προς το παρόν δεν υπάρχουν συσκευές που να υποστηρίζουν αυτήν τη λειτουργία και είναι απίθανο να εμφανιστούν στο μέλλον.
  • Υπηρεσίες μνήμης και συστήματος
    • Η ενσωμάτωση ενός συνόλου ενημερώσεων κώδικα έχει ξεκινήσει, επιτρέποντας τη σημαντική μείωση του χρόνου αναδόμησης του πυρήνα, αναδιαρθρώνοντας την ιεραρχία των αρχείων κεφαλίδας και μειώνοντας τον αριθμό των πολλαπλών εξαρτήσεων. Ο πυρήνας 5.18 περιλαμβάνει ενημερώσεις κώδικα που βελτιστοποιούν τη δομή των αρχείων κεφαλίδας του προγραμματιστή εργασιών (πυρήνας/διάγραμμα). Σε σύγκριση με την προηγούμενη έκδοση, η κατανάλωση χρόνου της CPU κατά τη συναρμολόγηση του πυρήνα/sched/κώδικα μειώθηκε κατά 61% και ο πραγματικός χρόνος μειώθηκε κατά 3.9% (από 2.95 σε 2.84 δευτερόλεπτα).
    • Ο κώδικας πυρήνα επιτρέπεται να χρησιμοποιεί το πρότυπο C11, που δημοσιεύτηκε το 2011. Προηγουμένως, ο κώδικας που προστέθηκε στον πυρήνα έπρεπε να συμμορφώνεται με την προδιαγραφή ANSI C (C89), που δημιουργήθηκε το 1989. Στα σενάρια έκδοσης πυρήνα 5.18, η επιλογή «—std=gnu89» αντικαταστάθηκε με «—std=gnu11 -Wno-shift-negative-value». Εξετάστηκε η δυνατότητα χρήσης του προτύπου C17, αλλά σε αυτήν την περίπτωση θα ήταν απαραίτητο να αυξηθεί η ελάχιστη υποστηριζόμενη έκδοση του GCC, ενώ η συμπερίληψη της υποστήριξης C11 ταιριάζει στις τρέχουσες απαιτήσεις για την έκδοση GCC (5.1).
    • Βελτιωμένη απόδοση προγραμματισμού εργασιών σε επεξεργαστές AMD με μικροαρχιτεκτονική Zen, οι οποίοι παρέχουν πολλαπλές προσωρινές προσωρινές μνήμης τελευταίου επιπέδου (LLC) για κάθε κόμβο με τοπικά κανάλια μνήμης. Η νέα έκδοση εξαλείφει την ανισορροπία LLC μεταξύ των κόμβων NUMA, η οποία οδήγησε σε σημαντική αύξηση της απόδοσης για ορισμένους τύπους φόρτου εργασίας.
    • Τα εργαλεία για τον εντοπισμό εφαρμογών στο χώρο των χρηστών έχουν επεκταθεί. Η νέα έκδοση του πυρήνα προσθέτει τη δυνατότητα για τις διεργασίες του χρήστη να δημιουργούν συμβάντα χρήστη και να γράφουν δεδομένα στην προσωρινή μνήμη ανίχνευσης, τα οποία μπορούν να προβληθούν μέσω τυπικών βοηθητικών προγραμμάτων ανίχνευσης πυρήνα όπως τα ftrace και perf. Τα συμβάντα παρακολούθησης χώρου χρήστη απομονώνονται από συμβάντα ίχνους πυρήνα. Η κατάσταση συμβάντος μπορεί να προβληθεί μέσω του αρχείου /sys/kernel/debug/tracing/user_events_status και η εγγραφή συμβάντων και η καταγραφή δεδομένων μέσω του αρχείου /sys/kernel/debug/tracing/user_events_data.
    • Προστέθηκε μηχανισμός παρακολούθησης (probe) κλήσεων λειτουργίας - fprobe. Το FPROBE API βασίζεται στο FTRACE, αλλά περιορίζεται μόνο από τη δυνατότητα να επισυνάψετε χειριστές επανάκλησης σε σημεία εισόδου και λειτουργίας. Σε αντίθεση με τα kprobes και kretprobes, ο νέος μηχανισμός σάς επιτρέπει να χρησιμοποιείτε έναν χειριστή για πολλές λειτουργίες ταυτόχρονα.
    • Η υποστήριξη για παλαιότερους επεξεργαστές ARM (ARMv4 και ARMv5) που δεν είναι εξοπλισμένοι με μονάδα διαχείρισης μνήμης (MMU) έχει διακοπεί. Η υποστήριξη για συστήματα ARMv7-M χωρίς MMU διατηρείται.
    • Η υποστήριξη για την αρχιτεκτονική NDS32 που μοιάζει με RISC που χρησιμοποιείται στους επεξεργαστές Andes Technologies έχει διακοπεί. Ο κώδικας αφαιρέθηκε λόγω έλλειψης συντήρησης και έλλειψης ζήτησης για υποστήριξη NDS32 στον κύριο πυρήνα Linux (οι υπόλοιποι χρήστες χρησιμοποιούν εξειδικευμένους πυρήνα που κατασκευάζεται από κατασκευαστές υλικού).
    • Από προεπιλογή, η κατασκευή του πυρήνα με υποστήριξη για τη μορφή εκτελέσιμου αρχείου a.out είναι απενεργοποιημένη για τις αρχιτεκτονικές alpha και m68k, οι οποίες συνεχίζουν να χρησιμοποιούν αυτήν τη μορφή. Είναι πιθανό ότι η υποστήριξη για τη μορφή παλαιού τύπου a.out θα αφαιρεθεί εντελώς σύντομα από τον πυρήνα. Τα σχέδια για την κατάργηση της μορφής a.out έχουν συζητηθεί από το 2019.
    • Η αρχιτεκτονική PA-RISC παρέχει ελάχιστη υποστήριξη για τον μηχανισμό vDSO (εικονικά δυναμικά κοινόχρηστα αντικείμενα), ο οποίος παρέχει ένα περιορισμένο σύνολο κλήσεων συστήματος που είναι διαθέσιμες στο χώρο του χρήστη χωρίς εναλλαγή περιβάλλοντος. Η υποστήριξη vDSO κατέστησε δυνατή την υλοποίηση της δυνατότητας εκτέλεσης με μια μη εκτελέσιμη στοίβα.
    • Προστέθηκε υποστήριξη για τον μηχανισμό Intel HFI (Hardware Feedback Interface), ο οποίος επιτρέπει στο υλικό να μεταδίδει πληροφορίες στον πυρήνα σχετικά με την τρέχουσα απόδοση και την ενεργειακή απόδοση κάθε CPU.
    • Προστέθηκε ένα πρόγραμμα οδήγησης για τον μηχανισμό Intel SDSi (Software-Defined Silicon), ο οποίος σας επιτρέπει να ελέγχετε τη συμπερίληψη πρόσθετων λειτουργιών στον επεξεργαστή (για παράδειγμα, εξειδικευμένες οδηγίες και πρόσθετη μνήμη cache). Η ιδέα είναι ότι τα τσιπ μπορούν να παρέχονται σε χαμηλότερη τιμή με προηγμένες λειτουργίες κλειδωμένες, οι οποίες στη συνέχεια μπορούν να «αγοραστούν» και να ενεργοποιηθούν πρόσθετες δυνατότητες χωρίς αντικατάσταση υλικού του τσιπ.
    • Το πρόγραμμα οδήγησης amd_hsmp έχει προστεθεί για να υποστηρίζει τη διεπαφή AMD HSMP (Host System Management Port), η οποία παρέχει πρόσβαση σε λειτουργίες διαχείρισης επεξεργαστή μέσω ενός συνόλου ειδικών καταχωρητών που έχουν εμφανιστεί σε επεξεργαστές διακομιστή AMD EPYC ξεκινώντας από τη γενιά Fam19h. Για παράδειγμα, μέσω του HSMP μπορείτε να λάβετε δεδομένα σχετικά με την κατανάλωση ενέργειας και τη θερμοκρασία, να ορίσετε όρια συχνότητας, να ενεργοποιήσετε διάφορες λειτουργίες βελτίωσης απόδοσης και να διαχειριστείτε παραμέτρους μνήμης.
    • Η ασύγχρονη διεπαφή εισόδου/εξόδου io_uring υλοποιεί την επιλογή IORING_SETUP_SUBMIT_ALL για την εγγραφή ενός συνόλου περιγραφικών αρχείων σε μια προσωρινή μνήμη δακτυλίου και τη λειτουργία IORING_OP_MSG_RING για την αποστολή σήματος από μια προσωρινή μνήμη δακτυλίου σε μια άλλη προσωρινή μνήμη δακτυλίου.
    • Ο μηχανισμός DAMOS (Data Access Monitoring-based Operation Schemes), ο οποίος επιτρέπει την απελευθέρωση της μνήμης λαμβάνοντας υπόψη τη συχνότητα πρόσβασης στη μνήμη, έχει διευρυμένες δυνατότητες παρακολούθησης λειτουργιών της μνήμης από το χώρο χρήστη.
    • Μια τρίτη σειρά μπαλώματα έχει ενσωματωθεί στην εφαρμογή της έννοιας των σελίδων Folios, η οποία μοιάζει με ένωσεις σελίδες, αλλά έχει βελτιωμένη σημασιολογία και μια σαφέστερη οργάνωση εργασίας. Η χρήση tomes σάς επιτρέπει να επιταχύνετε τη διαχείριση μνήμης σε ορισμένα υποσυστήματα πυρήνα. Στα προτεινόμενα μπαλώματα, οι λειτουργίες διαχείρισης εσωτερικής μνήμης μεταφράστηκαν σε φύλλα, συμπεριλαμβανομένων των παραλλαγών της συνάρτησης Get_User_Pages (). Παρείχε υποστήριξη για τη δημιουργία μεγάλων τόμων σε κώδικα ανάγνωσης.
    • Το σύστημα συναρμολόγησης υποστηρίζει πλέον μεταβλητές περιβάλλοντος USERCFLAGS και USERLDFLAGS, με τις οποίες μπορείτε να μεταβιβάσετε πρόσθετες σημαίες στον μεταγλωττιστή και τον σύνδεσμο.
    • Στο υποσύστημα eBPF, ο μηχανισμός BTF (BPF Type Format), ο οποίος παρέχει πληροφορίες ελέγχου τύπου σε ψευδοκώδικα BPF, παρέχει τη δυνατότητα προσθήκης σχολιασμών σε μεταβλητές που αναφέρονται σε περιοχές μνήμης στο χώρο χρήστη. Οι σχολιασμοί βοηθούν το σύστημα επαλήθευσης κώδικα BPF να αναγνωρίζει και να επαληθεύει καλύτερα τις προσβάσεις στη μνήμη.
    • Έχει προταθεί ένας νέος χειριστής εκχώρησης μνήμης για την αποθήκευση φορτωμένων προγραμμάτων BPF, ο οποίος επιτρέπει πιο αποτελεσματική χρήση της μνήμης σε καταστάσεις όπου φορτώνεται μεγάλος αριθμός προγραμμάτων BPF.
    • Η σημαία MADV_DONTNEED_LOCKED έχει προστεθεί στην κλήση συστήματος madvise(), η οποία παρέχει εργαλεία για τη βελτιστοποίηση της διαχείρισης της μνήμης διεργασιών, η οποία συμπληρώνει την υπάρχουσα σημαία MADV_DONTNEED, μέσω της οποίας ο πυρήνας μπορεί να ενημερωθεί εκ των προτέρων για την επικείμενη κυκλοφορία ενός μπλοκ μνήμης, π.χ. ότι αυτό το μπλοκ δεν χρειάζεται πλέον και μπορεί να χρησιμοποιηθεί από τον πυρήνα. Σε αντίθεση με το MADV_DONTNEED, η χρήση της σημαίας MADV_DONTNEED_LOCKED επιτρέπεται για σελίδες μνήμης που είναι καρφιτσωμένες στη μνήμη RAM, οι οποίες, όταν καλείται το madvise, εξαιρούνται χωρίς αλλαγή της κατάστασης καρφιτσωμένου και, σε περίπτωση επακόλουθης πρόσβασης στο μπλοκ και δημιουργία μιας «σελίδας σφάλμα», επιστρέφονται με διατηρημένο το δέσιμο. Επιπλέον, προστέθηκε μια αλλαγή που επιτρέπει τη χρήση της σημαίας MADV_DONTNEED με μεγάλες σελίδες μνήμης στο HugeTLB.
  • Εικονικοποίηση και Ασφάλεια
    • Για την αρχιτεκτονική X86, έχει προστεθεί υποστήριξη για τον μηχανισμό προστασίας ροής εντολών Intel IBT (έμμεση παρακολούθηση υποκαταστημάτων), ο οποίος εμποδίζει τη χρήση τεχνικών κατασκευής εκμετάλλευσης χρησιμοποιώντας τεχνικές προγραμματισμού με επιστροφή (ROP, προγραμματισμό προσανατολισμένης στην επιστροφή), στις οποίες η εκμετάλλευση, σχηματίζεται με τη μορφή μιας αλυσίδας κλήσεων που υπάρχουν ήδη στη μνήμη των τεμαχίων οδηγιών μηχανής που τελειώνουν με μια οδηγία επιστροφής ελέγχου (κατά κανόνα, αυτά είναι τα άκρα των λειτουργιών). Η ουσία της μέθοδος προστασίας που εφαρμόζεται είναι να εμποδίσει τις έμμεσες μεταβάσεις στο σώμα μιας συνάρτησης προσθέτοντας μια ειδική εντολή ENDBR στην αρχή της λειτουργίας και επιτρέποντας την εκτέλεση μιας έμμεσης μετάβασης μόνο σε περίπτωση μετάβασης σε αυτήν την οδηγία (έμμεση κλήση μέσω JMP και CALL πρέπει πάντα να εμπίπτουν στην εντολή ENDBR, η οποία τοποθετείται στην αρχή των συναρτήσεων).
    • Ενεργοποιήθηκε ο πιο αυστηρός έλεγχος των ορίων buffer στις συναρτήσεις memcpy(), memmove() και memset(), που εκτελείται κατά τη στιγμή της μεταγλώττισης όταν είναι ενεργοποιημένη η λειτουργία CONFIG_FORTIFY_SOURCE. Η προστιθέμενη αλλαγή συνοψίζεται στον έλεγχο του εάν στοιχεία δομών των οποίων το μέγεθος είναι γνωστό ξεπερνούν τα όρια. Σημειώνεται ότι η εφαρμοσμένη δυνατότητα θα επέτρεπε τον αποκλεισμό όλων των υπερχείλισης buffer πυρήνα που σχετίζονται με memcpy() που εντοπίστηκαν τουλάχιστον τα τελευταία τρία χρόνια.
    • Προστέθηκε το δεύτερο μέρος του κώδικα για την ενημερωμένη υλοποίηση της γεννήτριας ψευδοτυχαίων αριθμών RDRAND, η οποία είναι υπεύθυνη για τη λειτουργία των συσκευών /dev/random και /dev/urandom. Η νέα υλοποίηση είναι αξιοσημείωτη για την ενοποίηση της λειτουργίας των /dev/random και /dev/urandom, προσθέτοντας προστασία από την εμφάνιση διπλότυπων στη ροή τυχαίων αριθμών κατά την εκκίνηση εικονικών μηχανών και μετάβαση στη χρήση της συνάρτησης κατακερματισμού BLAKE2s αντί της SHA1 για λειτουργίες ανάμειξης εντροπίας. Η αλλαγή βελτίωσε την ασφάλεια της γεννήτριας ψευδοτυχαίων αριθμών εξαλείφοντας τον προβληματικό αλγόριθμο SHA1 και εξαλείφοντας την αντικατάσταση του διανύσματος αρχικοποίησης RNG. Δεδομένου ότι ο αλγόριθμος BLAKE2s είναι ανώτερος του SHA1 σε απόδοση, η χρήση του είχε επίσης θετική επίδραση στην απόδοση.
    • Για την αρχιτεκτονική ARM64, έχει προστεθεί υποστήριξη για έναν νέο αλγόριθμο ελέγχου ταυτότητας δείκτη - "QARMA3", το οποίο είναι ταχύτερο από τον αλγόριθμο Qarma διατηρώντας παράλληλα το σωστό επίπεδο ασφάλειας. Η τεχνολογία σάς επιτρέπει να χρησιμοποιείτε εξειδικευμένες οδηγίες ARM64 για να επαληθεύσετε τις διευθύνσεις επιστροφής χρησιμοποιώντας ψηφιακές υπογραφές που είναι αποθηκευμένες στα αχρησιμοποίητα ανώτερα bit του ίδιου του δείκτη.
    • Για την αρχιτεκτονική ARM64, έχει υλοποιηθεί υποστήριξη για τη συναρμολόγηση με τη συμπερίληψη στο GCC 12 μιας λειτουργίας προστασίας από την αντικατάσταση της διεύθυνσης επιστροφής από μια συνάρτηση σε περίπτωση υπερχείλισης buffer στη στοίβα. Η ουσία της προστασίας είναι να αποθηκεύσετε τη διεύθυνση επιστροφής σε μια ξεχωριστή στοίβα "σκιάς" μετά τη μεταφορά του ελέγχου σε μια συνάρτηση και την ανάκτηση αυτής της διεύθυνσης πριν την έξοδο από τη συνάρτηση.
    • Προστέθηκε ένα νέο μπρελόκ - "μηχανή", που περιέχει τα κλειδιά κατόχου του συστήματος (MOK, Κλειδιά κατόχου μηχανήματος), που υποστηρίζεται στον φορτωτή εκκίνησης shim. Αυτά τα κλειδιά μπορούν να χρησιμοποιηθούν για την ψηφιακή υπογραφή στοιχείων του πυρήνα που έχουν φορτωθεί σε ένα στάδιο μετά την εκκίνηση (για παράδειγμα, μονάδες πυρήνα).
    • Καταργήθηκε η υποστήριξη για ασύμμετρα ιδιωτικά κλειδιά για TPM, τα οποία προσφέρονταν σε μια παλαιού τύπου έκδοση του TPM, είχαν γνωστά ζητήματα ασφαλείας και δεν υιοθετήθηκαν ευρέως στην πράξη.
    • Προστέθηκε προστασία δεδομένων με τύπο size_t από υπερχειλίσεις ακεραίων. Ο κώδικας περιλαμβάνει χειριστές size_mul(), size_add() και size_sub(), οι οποίοι σας επιτρέπουν να πολλαπλασιάζετε, να προσθέτετε και να αφαιρείτε με ασφάλεια μεγέθη με τον τύπο size_t.
    • Κατά τη δημιουργία του πυρήνα, ενεργοποιούνται οι σημαίες "-Warray-bounds" και "-Wzero-length-bounds", οι οποίες εμφανίζουν προειδοποιήσεις όταν το ευρετήριο υπερβαίνει το όριο του πίνακα και όταν χρησιμοποιούνται πίνακες μηδενικού μήκους.
    • Η συσκευή virtio-crypto έχει προσθέσει υποστήριξη για κρυπτογράφηση χρησιμοποιώντας τον αλγόριθμο RSA.
  • Υποσύστημα δικτύου
    • Στην υλοποίηση γεφυρών δικτύου, έχει προστεθεί υποστήριξη για λειτουργία σύνδεσης θυρών (locked mode), στην οποία ο χρήστης μπορεί να στείλει κίνηση μέσω της θύρας μόνο από εξουσιοδοτημένη διεύθυνση MAC. Προστέθηκε επίσης η δυνατότητα χρήσης πολλών δομών για την αξιολόγηση της κατάστασης του πρωτοκόλλου STP (Spanning Tree Protocol). Προηγουμένως, τα VLAN μπορούσαν να αντιστοιχιστούν απευθείας μόνο στο STP (1:1), με κάθε VLAN να διαχειρίζεται ανεξάρτητα. Η νέα έκδοση προσθέτει την παράμετρο mst_enable, όταν είναι ενεργοποιημένη, η κατάσταση των VLAN ελέγχεται από τη μονάδα MST (Multiple Spanning Trees) και η σύνδεση των VLAN μπορεί να αντιστοιχεί στο μοντέλο M:N.
    • Συνεχίστηκαν οι εργασίες για την ενσωμάτωση εργαλείων στη στοίβα δικτύου για την παρακολούθηση των λόγων απόρριψης πακέτων (κωδικοί αιτίας). Ο κωδικός αιτίας αποστέλλεται όταν ελευθερωθεί η μνήμη που σχετίζεται με το πακέτο και επιτρέπει καταστάσεις όπως απόρριψη πακέτου λόγω σφαλμάτων κεφαλίδας, εντοπισμός πλαστογράφησης rp_filter, μη έγκυρο άθροισμα ελέγχου, εκτός μνήμης, ενεργοποίηση κανόνων IPSec XFRM, μη έγκυρος αριθμός ακολουθίας TCP κ.λπ.
    • Είναι δυνατή η μεταφορά πακέτων δικτύου από προγράμματα BPF που εκκινούνται από το χώρο χρήστη στη λειτουργία BPF_PROG_RUN, στην οποία τα προγράμματα BPF εκτελούνται στον πυρήνα, αλλά να επιστρέψει το αποτέλεσμα στο χώρο χρήστη. Τα πακέτα μεταδίδονται χρησιμοποιώντας το υποσύστημα XDP (eXpress Data Path). Υποστηρίζεται η λειτουργία ζωντανής επεξεργασίας πακέτων, στην οποία ο επεξεργαστής XDP μπορεί να ανακατευθύνει πακέτα δικτύου εν κινήσει στη στοίβα δικτύου ή σε άλλες συσκευές. Είναι επίσης δυνατή η δημιουργία παραγωγών λογισμικού εξωτερικής κίνησης ή η αντικατάσταση πλαισίων δικτύου στη στοίβα δικτύου.
    • Για τα προγράμματα BPF που συνδέονται με τις ομάδες δικτύων, έχουν προταθεί λειτουργίες βοηθητικών λειτουργιών για να ρυθμίσετε ρητά την τιμή επιστροφής των κλήσεων συστήματος, γεγονός που καθιστά δυνατή τη μεταφορά πληρέστερων πληροφοριών σχετικά με τους λόγους για την παρεμπόδιση της κλήσης του συστήματος.
    • Το υποσύστημα XDP (eXpress Data Path) έχει προσθέσει υποστήριξη για κατακερματισμένα πακέτα τοποθετημένα σε πολλαπλά buffer, το οποίο σας επιτρέπει να επεξεργάζεστε πλαίσια Jumbo στο XDP και να χρησιμοποιείτε TSO/GRO (TCP Segmentation Offload/Generic Receive Offload) για το XDP_REDIRECT.
    • Η διαδικασία διαγραφής χώρων ονομάτων δικτύου έχει επιταχυνθεί σημαντικά, κάτι που ήταν ζητούμενο σε ορισμένα μεγάλα συστήματα με μεγάλο όγκο κίνησης.
  • Оборудование
    • Το πρόγραμμα οδήγησης amdgpu περιλαμβάνει από προεπιλογή την τεχνολογία προσαρμοστικού συγχρονισμού FreeSync, η οποία σας επιτρέπει να προσαρμόζετε τον ρυθμό ανανέωσης των πληροφοριών στην οθόνη, διασφαλίζοντας ομαλές και χωρίς σκισίματα εικόνες ενώ παίζετε παιχνίδια και παρακολουθείτε βίντεο. Η υποστήριξη GPU της Aldebaran έχει ανακοινωθεί ως σταθερή.
    • Το πρόγραμμα οδήγησης i915 προσθέτει υποστήριξη για τσιπ Intel Alderlake N και διακριτές κάρτες γραφικών Intel DG2-G12 (Arc Alchemist).
    • Το πρόγραμμα οδήγησης nouveau παρέχει υποστήριξη για υψηλότερους ρυθμούς bit για διεπαφές DP/eDP και υποστήριξη για επεκτάσεις καλωδίων lttprs (Link-Training Tunable PHY Repeaters).
    • Στο υποσύστημα drm (Direct Rendering Manager) σε προγράμματα οδήγησης armada, exynos, gma500, hyperv, imx, ingenic, mcde, mediatek, msm, omap, rcar-du, rockchip, sprd, sti, tegra, tilcdc, xen και vc4 έχει προστεθεί το nomodeset, το οποίο σας επιτρέπει να απενεργοποιήσετε την εναλλαγή λειτουργιών βίντεο σε επίπεδο πυρήνα και τη χρήση εργαλείων επιτάχυνσης απόδοσης υλικού, αφήνοντας μόνο λειτουργίες που σχετίζονται με το framebuffer συστήματος.
    • Προστέθηκε υποστήριξη για ARM SoС Qualcomm Snapdragon 625/632 (χρησιμοποιείται σε smartphone LG Nexus 5X και Fairphone FP3), Samsung Exynos 850, Samsung Exynos 7885 (χρησιμοποιείται στο Samsung Galaxy A8), Airoha (Mediatek/EcoNet) EN7523gio6582MTP5008tre tablet 3G), Microchip Lan966, Renesas RZ/G2LC, RZ/V2L, Tesla FSD, TI K3/AM62 και i.MXRTxxxx.
    • Προστέθηκε υποστήριξη για συσκευές και πλακέτες ARM από την Broadcom (Raspberry Pi Zero 2 W), την Qualcomm (Google Herobrine R1 Chromebook, SHIFT6mq, Samsung Galaxy Book2), Rockchip (Pine64 PineNote, Bananapi-R2-Pro, STM32 Emtrion emSBS, Samsung Galaxy Tab S , Prestigio PMT5008 3G tablet), Allwinner (A20-Marsboard), Amlogic (Amediatek X96-AIR, CYX A95XF3-AIR, Haochuangy H96-Max, Amlogic AQ222 και OSMC Vero 4K+), Aspeed (Quanta SHRock M6QEDll), / Armada (Ctera C8 V3 και V200 NAS), Mstar (DongShanPiOne, Miyoo Mini), NXP i.MX (Protonic PRT1MM, emCON-MX2M Mini, Toradex Verdin, Gateworks GW8).
    • Προστέθηκε υποστήριξη για συστήματα ήχου και κωδικοποιητές AMD PDM, Atmel PDMC, Awinic AW8738, i.MX TLV320AIC31xx, Intel CS35L41, ESSX8336, Mediatek MT8181, nVidia Tegra234, Qualcomm. Προστέθηκε η αρχική υλοποίηση του προγράμματος οδήγησης ήχου για το τσιπ Intel AVS DSP. Ενημερώθηκε η υποστήριξη προγραμμάτων οδήγησης για Intel ADL και Tegra7280 και έγιναν αλλαγές για τη βελτίωση της υποστήριξης ήχου σε συσκευές Dell, HP, Lenovo, ASUS, Samsung και Clevo.

    Ταυτόχρονα, το Ίδρυμα Ελεύθερου Λογισμικού της Λατινικής Αμερικής δημιούργησε μια έκδοση του εντελώς δωρεάν πυρήνα 5.18 - Linux-libre 5.18-gnu, απαλλαγμένη από στοιχεία υλικολογισμικού και προγράμματα οδήγησης που περιέχουν μη ελεύθερα στοιχεία ή ενότητες κώδικα, το εύρος του οποίου είναι περιορισμένο από τον κατασκευαστή. Η νέα έκδοση καθαρίζει προγράμματα οδήγησης για πάνελ MIPI DBI, VPU Amphion, WiFi MediaTek MT7986 WMAC, Mediatek MT7921U (USB) και Realtek 8852a/8852c, Intel AVS και τσιπ ήχου Texas Instruments TAS5805M. Τα αρχεία DTS καθαρίστηκαν επίσης για διάφορα Qualcomm SoC με επεξεργαστές που βασίζονται στην αρχιτεκτονική AArch64. Ενημερωμένος κώδικας καθαρισμού blob σε προγράμματα οδήγησης και υποσυστήματα AMD GPU, MediaTek MT7915, Silicon Labs WF200+ WiFi, Mellanox Spectru Ethernet, Realtek rtw8852c, Qualcomm Q6V5, Wolfson ADSP, MediaTek HCI UART.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο