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

Μετά από δύο μήνες ανάπτυξης, ο Linus Torvalds παρουσίασε την κυκλοφορία του πυρήνα Linux 5.17. Μεταξύ των πιο αξιοσημείωτων αλλαγών: ένα νέο σύστημα διαχείρισης απόδοσης για επεξεργαστές AMD, δυνατότητα αναδρομικής χαρτογράφησης αναγνωριστικών χρηστών σε συστήματα αρχείων, υποστήριξη φορητών μεταγλωττισμένων προγραμμάτων BPF, μετάβαση της γεννήτριας ψευδοτυχαίων αριθμών στον αλγόριθμο BLAKE2s, ένα βοηθητικό πρόγραμμα RTLA για ανάλυση εκτέλεσης σε πραγματικό χρόνο, ένα νέο backend fscache για προσωρινή αποθήκευση συστημάτων αρχείων δικτύου, δυνατότητα επισύναψης ονομάτων σε ανώνυμες λειτουργίες mmap.

Η νέα έκδοση περιλαμβάνει 14203 διορθώσεις από 1995 προγραμματιστές, το μέγεθος της ενημέρωσης κώδικα είναι 37 MB (οι αλλαγές επηρέασαν 11366 αρχεία, προστέθηκαν 506043 γραμμές κώδικα, διαγράφηκαν 250954 γραμμές). Περίπου το 44% όλων των αλλαγών που εισάγονται στο 5.17 σχετίζονται με προγράμματα οδήγησης συσκευών, περίπου το 16% των αλλαγών σχετίζονται με την ενημέρωση κώδικα που αφορά τις αρχιτεκτονικές υλικού, το 15% σχετίζονται με τη στοίβα δικτύου, το 4% σχετίζονται με συστήματα αρχείων και το 4% σχετίζονται με εσωτερικά υποσυστήματα πυρήνα.

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

  • Υποσύστημα δίσκου, I/O και συστήματα αρχείων
    • Εφάρμοσε τη δυνατότητα ένθετης αντιστοίχισης των αναγνωριστικών χρηστών των προσαρτημένων συστημάτων αρχείων, που χρησιμοποιούνται για τη σύγκριση αρχείων συγκεκριμένου χρήστη σε προσαρτημένο ξένο διαμέρισμα με άλλο χρήστη στο τρέχον σύστημα. Η πρόσθετη δυνατότητα σάς επιτρέπει να χρησιμοποιείτε αναδρομικά τη χαρτογράφηση πάνω από συστήματα αρχείων για τα οποία έχει ήδη εφαρμοστεί η αντιστοίχιση.
    • Το υποσύστημα fscache, που χρησιμοποιείται για την οργάνωση της προσωρινής αποθήκευσης στο τοπικό σύστημα αρχείων δεδομένων που μεταφέρονται μέσω συστημάτων αρχείων δικτύου, έχει ξαναγραφεί πλήρως. Η νέα υλοποίηση διακρίνεται από τη σημαντική απλοποίηση του κώδικα και την αντικατάσταση πολύπλοκων λειτουργιών προγραμματισμού και παρακολούθησης καταστάσεων αντικειμένων με απλούστερους μηχανισμούς. Η υποστήριξη για τη νέα fscache υλοποιείται στο σύστημα αρχείων CIFS.
    • Το υποσύστημα παρακολούθησης συμβάντων στο fanotify FS υλοποιεί έναν νέο τύπο συμβάντος, FAN_RENAME, ο οποίος σας επιτρέπει να παρεμποδίσετε αμέσως τη λειτουργία μετονομασίας αρχείων ή καταλόγων (προηγουμένως, δύο ξεχωριστά συμβάντα FAN_MOVED_FROM και FAN_MOVED_TO χρησιμοποιούνταν για την επεξεργασία μετονομασιών).
    • Το σύστημα αρχείων Btrfs έχει βελτιστοποιήσει τις λειτουργίες καταγραφής και fsync για μεγάλους καταλόγους, οι οποίες υλοποιούνται με την αντιγραφή μόνο των κλειδιών ευρετηρίου και τη μείωση του όγκου των καταγεγραμμένων μεταδεδομένων. Παρέχεται υποστήριξη για την ευρετηρίαση και την αναζήτηση κατά μέγεθος εγγραφών ελεύθερου χώρου, γεγονός που μείωσε την καθυστέρηση κατά περίπου 30% και μείωσε τον χρόνο αναζήτησης. Επιτρέπεται η διακοπή των λειτουργιών ανασυγκρότησης. Η δυνατότητα προσθήκης συσκευών κατά την εξισορρόπηση μεταξύ μονάδων δίσκου είναι απενεργοποιημένη, π.χ. κατά την προσάρτηση ενός συστήματος αρχείων με την επιλογή skip_balance.
    • Μια νέα σύνταξη για την προσάρτηση του συστήματος αρχείων Ceph έχει προταθεί, επιλύοντας υπάρχοντα προβλήματα που σχετίζονται με τη σύνδεση με διευθύνσεις IP. Εκτός από τις διευθύνσεις IP, μπορείτε τώρα να χρησιμοποιήσετε το αναγνωριστικό συμπλέγματος (FSID) για να αναγνωρίσετε τον διακομιστή: mount -t ceph [προστασία μέσω email]_name=/[subdir] mnt -o mon_addr=monip1[:port][/monip2[:port]]
    • Το σύστημα αρχείων Ext4 έχει μετακινηθεί σε ένα νέο API τοποθέτησης που διαχωρίζει τα βήματα της ανάλυσης των επιλογών προσάρτησης και της διαμόρφωσης superblock. Καταργήσαμε την υποστήριξη για τις επιλογές τοποθέτησης lazytime και nolazytime, οι οποίες προστέθηκαν ως προσωρινή αλλαγή για να διευκολυνθεί η μετάβαση του util-linux στη χρήση της σημαίας MS_LAZYTIME. Προστέθηκε υποστήριξη για τη ρύθμιση και την ανάγνωση ετικετών στο FS (ioctl FS_IOC_GETFSLABEL και FS_IOC_SETFSLABEL).
    • Το NFSv4 πρόσθεσε υποστήριξη για εργασία σε συστήματα αρχείων χωρίς διάκριση πεζών-κεφαλαίων σε ονόματα αρχείων και καταλόγων. Το NFSv4.1+ προσθέτει υποστήριξη για τον ορισμό συγκεντρωτικών περιόδων σύνδεσης (trunking).
  • Υπηρεσίες μνήμης και συστήματος
    • Προστέθηκε πρόγραμμα οδήγησης amd-pstate για παροχή δυναμικού ελέγχου συχνότητας για βέλτιστη απόδοση. Το πρόγραμμα οδήγησης υποστηρίζει CPU και APU AMD ξεκινώντας από τη γενιά Zen 2, που αναπτύχθηκε από κοινού με τη Valve και στοχεύει στη βελτίωση της απόδοσης διαχείρισης ενέργειας. Για προσαρμοστικές αλλαγές συχνότητας, χρησιμοποιείται ο μηχανισμός CPPC (Συνεργατικός Έλεγχος Απόδοσης Επεξεργαστή), ο οποίος σας επιτρέπει να αλλάζετε τους δείκτες με μεγαλύτερη ακρίβεια (δεν περιορίζεται σε τρία επίπεδα απόδοσης) και να ανταποκρίνεστε πιο γρήγορα στις αλλαγές κατάστασης από την προηγούμενη κατάσταση P που βασίζεται σε ACPI προγράμματα οδήγησης (CPUFreq).
    • Το υποσύστημα eBPF προσφέρει έναν χειριστή bpf_loop(), ο οποίος παρέχει έναν εναλλακτικό τρόπο οργάνωσης βρόχων σε προγράμματα eBPF, ταχύτερα και ευκολότερα για επαλήθευση από έναν επαληθευτή.
    • Σε επίπεδο πυρήνα, εφαρμόζεται ο μηχανισμός CO-RE (Compile Once - Run Everywhere), ο οποίος σας επιτρέπει να μεταγλωττίσετε τον κώδικα των προγραμμάτων eBPF μόνο μία φορά και να χρησιμοποιήσετε έναν ειδικό γενικό φορτωτή που προσαρμόζει το φορτωμένο πρόγραμμα στους τρέχοντες τύπους πυρήνα και BTF (Μορφή τύπου BPF).
    • Είναι δυνατή η αντιστοίχιση ονομάτων σε περιοχές ιδιωτικής ανώνυμης μνήμης (που εκχωρείται μέσω malloc), γεγονός που μπορεί να απλοποιήσει τον εντοπισμό σφαλμάτων και τη βελτιστοποίηση της κατανάλωσης μνήμης στις εφαρμογές. Τα ονόματα εκχωρούνται μέσω prctl με τη σημαία PR_SET_VMA_ANON_NAME και εμφανίζονται στα /proc/pid/maps και /proc/pid/smaps με τη μορφή "[anon: ]".
    • Ο προγραμματιστής εργασιών παρέχει παρακολούθηση και εμφάνιση στο /proc/PID/sched του χρόνου που αφιερώνουν οι διεργασίες σε κατάσταση αναγκαστικής αδράνειας, που χρησιμοποιείται, για παράδειγμα, για τη μείωση του φορτίου όταν ο επεξεργαστής υπερθερμαίνεται.
    • Προστέθηκε μονάδα gpio-sim, σχεδιασμένη για την προσομοίωση τσιπ GPIO για δοκιμή.
    • Προστέθηκε μια υποεντολή "latency" στην εντολή "perf ftrace" για τη δημιουργία ιστογραμμάτων με πληροφορίες λανθάνουσας κατάστασης.
    • Προστέθηκε ένα σύνολο βοηθητικών προγραμμάτων "RTLA" για την ανάλυση της εργασίας σε πραγματικό χρόνο. Περιλαμβάνει βοηθητικά προγράμματα όπως το osnoise (καθορίζει την επίδραση του λειτουργικού συστήματος στην εκτέλεση μιας εργασίας) και το timerlat (αλλάζει τις καθυστερήσεις που σχετίζονται με το χρονόμετρο).
    • Μια δεύτερη σειρά ενημερώσεων κώδικα έχει ενσωματωθεί με την εφαρμογή της έννοιας των φυλλαδίων σελίδων, τα οποία μοιάζουν με σύνθετες σελίδες, αλλά έχουν βελτιωμένη σημασιολογία και σαφέστερη οργάνωση της εργασίας. Η χρήση tomes σάς επιτρέπει να επιταχύνετε τη διαχείριση μνήμης σε ορισμένα υποσυστήματα πυρήνα. Οι προτεινόμενες ενημερώσεις κώδικα ολοκλήρωσαν τη μετατροπή της προσωρινής μνήμης σελίδων στη χρήση των τόμων και πρόσθεσαν την αρχική υποστήριξη για τόμους στο σύστημα αρχείων XFS.
    • Προστέθηκε η λειτουργία δημιουργίας "make mod2noconfig", η οποία δημιουργεί μια διαμόρφωση που συλλέγει όλα τα απενεργοποιημένα υποσυστήματα με τη μορφή λειτουργικών μονάδων πυρήνα.
    • Οι απαιτήσεις για την έκδοση του LLVM/Clang που μπορεί να χρησιμοποιηθεί για την κατασκευή του πυρήνα έχουν αυξηθεί. Η κατασκευή τώρα απαιτεί τουλάχιστον έκδοση LLVM 11.
  • Εικονικοποίηση και Ασφάλεια
    • Προτείνεται μια ενημερωμένη εφαρμογή της γεννήτριας ψευδοτυχαίων αριθμών RDRAND, που είναι υπεύθυνη για τη λειτουργία των συσκευών /dev/random και /dev/urandom, αξιοσημείωτη για τη μετάβαση στη χρήση της συνάρτησης κατακερματισμού BLAKE2s αντί της SHA1 για λειτουργίες ανάμειξης εντροπίας. Η αλλαγή βελτίωσε την ασφάλεια της γεννήτριας ψευδοτυχαίων αριθμών εξαλείφοντας τον προβληματικό αλγόριθμο SHA1 και εξαλείφοντας την αντικατάσταση του διανύσματος αρχικοποίησης RNG. Δεδομένου ότι ο αλγόριθμος BLAKE2s είναι ανώτερος του SHA1 σε απόδοση, η χρήση του είχε επίσης θετική επίδραση στην απόδοση.
    • Προστέθηκε προστασία από ευπάθειες σε επεξεργαστές που προκαλούνται από κερδοσκοπική εκτέλεση εντολών μετά από λειτουργίες άνευ όρων άλματος προς τα εμπρός. Το πρόβλημα παρουσιάζεται λόγω της προληπτικής επεξεργασίας των εντολών αμέσως μετά την εντολή διακλάδωσης στη μνήμη (SLS, Straight Line Speculation). Η ενεργοποίηση της προστασίας απαιτεί κατασκευή με την τρέχουσα δοκιμαστική έκδοση του GCC 12.
    • Προστέθηκε ένας μηχανισμός για την παρακολούθηση της καταμέτρησης αναφορών (refcount, reference-count), με στόχο τη μείωση του αριθμού των σφαλμάτων στην καταμέτρηση αναφορών που οδηγούν σε πρόσβαση στη μνήμη μετά την απελευθέρωσή της. Ο μηχανισμός περιορίζεται επί του παρόντος στο υποσύστημα δικτύου, αλλά στο μέλλον μπορεί να προσαρμοστεί σε άλλα μέρη του πυρήνα.
    • Έχουν εφαρμοστεί εκτεταμένοι έλεγχοι νέων καταχωρήσεων στον πίνακα σελίδων της μνήμης διεργασιών, επιτρέποντας τον εντοπισμό ορισμένων τύπων ζημιών και τη διακοπή του συστήματος, αποκλείοντας τις επιθέσεις σε πρώιμο στάδιο.
    • Προστέθηκε η δυνατότητα αποσυσκευασίας μονάδων πυρήνα απευθείας από τον ίδιο τον πυρήνα και όχι από έναν χειριστή στο χώρο χρήστη, κάτι που επιτρέπει τη χρήση της λειτουργικής μονάδας LoadPin LSM για να διασφαλιστεί ότι οι μονάδες πυρήνα φορτώνονται στη μνήμη από μια επαληθευμένη συσκευή αποθήκευσης.
    • Παρέχεται συναρμολόγηση με τη σημαία "-Wcast-function-type", η οποία επιτρέπει προειδοποιήσεις σχετικά με τη μετάδοση δεικτών λειτουργίας σε μη συμβατό τύπο.
    • Προστέθηκε πρόγραμμα οδήγησης εικονικού κεντρικού υπολογιστή pvUSB για τον Xen hypervisor, παρέχοντας πρόσβαση σε συσκευές USB που προωθούνται σε συστήματα φιλοξενούμενων (επιτρέπει στα συστήματα φιλοξενούμενων να έχουν πρόσβαση σε φυσικές συσκευές USB που έχουν εκχωρηθεί στο σύστημα φιλοξενουμένων).
    • Προστέθηκε μια μονάδα που σας επιτρέπει να αλληλεπιδράτε μέσω Wi-Fi με το υποσύστημα IME (Intel Management Engine), το οποίο διατίθεται στις περισσότερες σύγχρονες μητρικές με επεξεργαστές Intel και υλοποιείται ως ξεχωριστός μικροεπεξεργαστής που λειτουργεί ανεξάρτητα από την CPU.
    • Για την αρχιτεκτονική ARM64, έχει υλοποιηθεί υποστήριξη για το εργαλείο εντοπισμού σφαλμάτων KCSAN (Kernel Concurrency Sanitizer), σχεδιασμένο να εντοπίζει δυναμικά τις συνθήκες αγώνα εντός του πυρήνα.
    • Για συστήματα ARM 32-bit, έχει προστεθεί η δυνατότητα χρήσης του μηχανισμού KFENCE για τον εντοπισμό σφαλμάτων κατά την εργασία με μνήμη.
    • Ο hypervisor KVM προσθέτει υποστήριξη για οδηγίες AMX (Advanced Matrix Extensions) που υλοποιούνται στους επερχόμενους επεξεργαστές διακομιστή Intel Xeon Scalable.
  • Υποσύστημα δικτύου
    • Προστέθηκε υποστήριξη για τη μεταφόρτωση λειτουργιών που σχετίζονται με τη διαχείριση της κυκλοφορίας στο πλάι των συσκευών δικτύου.
    • Προστέθηκε η δυνατότητα χρήσης MCTP (Management Component Transport Protocol) σε σειριακές συσκευές. Το MCTP μπορεί να χρησιμοποιηθεί για την επικοινωνία μεταξύ ελεγκτών διαχείρισης και των σχετικών συσκευών τους (κεντρικοί επεξεργαστές, περιφερειακά, κ.λπ.).
    • Η στοίβα TCP έχει βελτιστοποιηθεί, για παράδειγμα, για να βελτιωθεί η απόδοση των κλήσεων recvmsg, έχει εφαρμοστεί καθυστερημένη απελευθέρωση των buffer υποδοχής.
    • Σε επίπεδο αρχής CAP_NET_RAW, επιτρέπεται η ρύθμιση των λειτουργιών SO_PRIORITY και SO_MARK μέσω της συνάρτησης setsockopt.
    • Για το IPv4, οι μη επεξεργασμένες υποδοχές επιτρέπεται να συνδέονται σε μη τοπικές διευθύνσεις IP χρησιμοποιώντας τις επιλογές IP_FREEBIND και IP_TRANSPARENT.
    • Προστέθηκε sysctl arp_missed_max για τη διαμόρφωση του ορίου αριθμού αποτυχιών κατά τον έλεγχο της οθόνης ARP, μετά τον οποίο η διεπαφή δικτύου τοποθετείται σε κατάσταση απενεργοποιημένης.
    • Παρέχει τη δυνατότητα διαμόρφωσης ξεχωριστών τιμών sysctl min_pmtu και mtu_expires για χώρους ονομάτων δικτύου.
    • Προστέθηκε η δυνατότητα ορισμού και προσδιορισμού του μεγέθους των buffer για τα εισερχόμενα και εξερχόμενα πακέτα στο ethtool API.
    • Το Netfilter έχει προσθέσει υποστήριξη για το φιλτράρισμα της διαμετακομιστικής κίνησης pppoe σε μια γέφυρα δικτύου.
    • Η μονάδα ksmbd, η οποία υλοποιεί έναν διακομιστή αρχείων χρησιμοποιώντας το πρωτόκολλο SMB3, έχει προσθέσει υποστήριξη για ανταλλαγή κλειδιών, ενεργοποιημένη θύρα δικτύου 445 για smbdirect και πρόσθετη υποστήριξη για την παράμετρο "smb2 max credit".
  • Оборудование
    • Υποστήριξη για οθόνες για την εμφάνιση εμπιστευτικών πληροφοριών έχει προστεθεί στο υποσύστημα drm (Direct Renderering Manager) και στο πρόγραμμα οδήγησης i915, για παράδειγμα, ορισμένοι φορητοί υπολογιστές είναι εξοπλισμένοι με οθόνες με ενσωματωμένη λειτουργία εμπιστευτικής προβολής, καθιστώντας δύσκολη την προβολή από έξω . Οι πρόσθετες αλλαγές σάς επιτρέπουν να συνδέετε εξειδικευμένα προγράμματα οδήγησης για τέτοιες οθόνες και να ελέγχετε τις εμπιστευτικές λειτουργίες περιήγησης ορίζοντας ιδιότητες σε κανονικά προγράμματα οδήγησης KMS.
    • Το πρόγραμμα οδήγησης amdgpu περιλαμβάνει υποστήριξη για τεχνολογία εντοπισμού σφαλμάτων STB (Smart Trace Buffer) για όλες τις GPU της AMD που το υποστηρίζουν. Το STB διευκολύνει την ανάλυση των αστοχιών και τον εντοπισμό της πηγής των προβλημάτων αποθηκεύοντας σε ένα ειδικό buffer πληροφορίες σχετικά με τις λειτουργίες που εκτελέστηκαν πριν από την τελευταία αποτυχία.
    • Το πρόγραμμα οδήγησης i915 προσθέτει υποστήριξη για τα τσιπ Intel Raptor Lake S και επιτρέπει την υποστήριξη για το υποσύστημα γραφικών των τσιπ Intel Alder Lake P από προεπιλογή. Είναι δυνατός ο έλεγχος του οπίσθιου φωτισμού της οθόνης μέσω της διεπαφής VESA DPCD.
    • Η υποστήριξη για την επιτάχυνση κύλισης υλικού στην κονσόλα έχει επιστραφεί στα προγράμματα οδήγησης fbcon/fbdev.
    • Συνεχίζεται η ενσωμάτωση των αλλαγών για την υποστήριξη τσιπ Apple M1. Εφάρμοσε τη δυνατότητα χρήσης του προγράμματος οδήγησης simpledrm σε συστήματα με τσιπ Apple M1 για έξοδο μέσω ενός framebuffer που παρέχεται από το υλικολογισμικό.
    • Προστέθηκε υποστήριξη για ARM SoС, συσκευές και πλακέτες Snapdragon 7c, 845 και 888 (Sony Xperia XZ2 / XZ2C / XZ3, Xperia 1 III / 5 III, Samsung J5, Microsoft Surface Duo 2), Mediatek MT6589 (Fairphone FP1), Mediatek MT8183 Acer Chromebook 314), Mediatek MT7986a/b (χρησιμοποιείται σε δρομολογητές Wi-Fi), Broadcom BCM4908 (Netgear RAXE500), Qualcomm SDX65, Samsung Exynos7885, Renesas R-Car S4-8, TI J721s2, TI J320s8, TI J.P. , Aspeed AST8/AST2500, Engicam i.Core STM2600MP32, Allwinner Tanix TX1, Facebook Bletchley BMC, Goramo MultiLink, JOZ Access Point, Y Soft IOTA Crux/Crux+, t6/t6000 MacBook Pro 6001/.
    • Προστέθηκε υποστήριξη για επεξεργαστές ARM Cortex-M55 και Cortex-M33.
    • Προστέθηκε υποστήριξη για συσκευές που βασίζονται σε CPU MIPS: Linksys WRT320N v1, Netgear R6300 v1, Netgear WN2500RP v1/v2.
    • Προστέθηκε υποστήριξη για το StarFive JH7100 SoC με βάση την αρχιτεκτονική RISC-V.
    • Προστέθηκε πρόγραμμα οδήγησης lenovo-yogabook-wmi για έλεγχο του οπίσθιου φωτισμού του πληκτρολογίου και πρόσβαση σε διάφορους αισθητήρες στο Lenovo Yoga Book.
    • Προστέθηκε πρόγραμμα οδήγησης asus_wmi_sensors για πρόσβαση σε αισθητήρες που χρησιμοποιούνται σε μητρικές πλακέτες Asus X370, X470, B450, B550 και X399 που βασίζονται σε επεξεργαστές AMD Ryzen.
    • Προστέθηκε πρόγραμμα οδήγησης x86-android-tablet για tablet PC που βασίζονται σε x86 που αποστέλλονται με την πλατφόρμα Android.
    • Προστέθηκε υποστήριξη για οθόνες αφής TrekStor SurfTab duo W1 και ηλεκτρονικό στυλό για tablet Chuwi Hi10 Plus και Pro.
    • Τα προγράμματα οδήγησης για το SoC Tegra 20/30 έχουν προσθέσει υποστήριξη για διαχείριση ισχύος και τάσης. Επιτρέπει την εκκίνηση σε παλαιότερες συσκευές Tegra SoC 32 bit όπως ASUS Prime TF201, Pad TF701T, Pad TF300T, Infinity TF700T, EeePad TF101 και Pad TF300TG.
    • Προστέθηκαν προγράμματα οδήγησης για βιομηχανικούς υπολογιστές Siemens.
    • Προστέθηκε υποστήριξη για Sony Tulip Truly NT35521, Vivax TPC-9150, Innolux G070Y2-T02, BOE BF060Y8M-AJ0, JDI R63452, Novatek NT35950, Wanchanglong W552946 TIPC-043015 και Team.
    • Προστέθηκε υποστήριξη για συστήματα ήχου και κωδικοποιητές AMD Renoir ACP, Asahi Kasei Microdevices AKM4375, συστήματα Intel που χρησιμοποιούν NAU8825/MAX98390, Mediatek MT8915, nVidia Tegra20 S/PDIF, Qualcomm ALC5682I-VS320TEXADCV3x194x35 Τα προβλήματα με τον ήχο Tegra41 HD έχουν επιλυθεί. Προστέθηκε υποστήριξη HDA για κωδικοποιητές CSXNUMXLXNUMX. Βελτιωμένη υποστήριξη για συστήματα ήχου για φορητούς υπολογιστές Lenovo και HP, καθώς και μητρικές κάρτες Gigabyte.

Πηγή: opennet.ru

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