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

Μετά από δύο μήνες ανάπτυξης, ο Linus Torvalds κυκλοφόρησε τον πυρήνα Linux 6.0. Η σημαντική αλλαγή αριθμού έκδοσης είναι για αισθητικούς λόγους και είναι ένα επίσημο βήμα για την ανακούφιση από την ταλαιπωρία της συσσώρευσης μεγάλου αριθμού εκδόσεων στη σειρά (Ο Linus αστειεύτηκε ότι ο λόγος για την αλλαγή του αριθμού υποκαταστήματος είναι πιο πιθανό να του ξεμείνουν τα δάχτυλα και τα δάχτυλα των ποδιών για να μετράνε τους αριθμούς έκδοσης). Μεταξύ των πιο αξιοσημείωτων αλλαγών: υποστήριξη για ασύγχρονες εγγραφές με buffer στο XFS, το πρόγραμμα οδήγησης μπλοκ ublk, βελτιστοποιήσεις προγραμματιστή εργασιών, μηχανισμός επαλήθευσης της σωστής λειτουργίας του πυρήνα, υποστήριξη για τον κρυπτογράφηση μπλοκ ARIA.

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

  • Υποσύστημα δίσκου, I/O και συστήματα αρχείων
    • Στο σύστημα αρχείων XFS έχει προστεθεί υποστήριξη για ασύγχρονες εγγραφές με buffer με χρήση του μηχανισμού io_uring. Οι δοκιμές απόδοσης που έγιναν με το κιτ εργαλείων fio (1 νήμα, μέγεθος μπλοκ 4kb, 600 δευτερόλεπτα, διαδοχική εγγραφή) δείχνουν αύξηση στις λειτουργίες εισόδου/εξόδου ανά δευτερόλεπτο (IOPS) από 77k σε 209k, ρυθμούς μεταφοράς δεδομένων από 314MB/s σε 854MB/s , και η καθυστέρηση πέφτει από 9600ns σε 120ns (80 φορές).
    • Το σύστημα αρχείων Btrfs υλοποιεί τη δεύτερη έκδοση του πρωτοκόλλου για την εντολή "send", η οποία υλοποιεί υποστήριξη για πρόσθετα μεταδεδομένα, αποστολή δεδομένων σε μεγαλύτερα μπλοκ (πάνω από 64K) και μεταφορά εκτάσεων σε συμπιεσμένη μορφή. Σημαντικά (έως και 3 φορές) η απόδοση των λειτουργιών άμεσης ανάγνωσης έχει αυξηθεί λόγω της ταυτόχρονης ανάγνωσης έως και 256 τομέων. Μειώθηκαν οι διενέξεις κλειδώματος και επιτάχυνση της επικύρωσης μεταδεδομένων μειώνοντας τα δεσμευμένα μεταδεδομένα για στοιχεία που έχουν αναβληθεί.
    • Νέες λειτουργίες EXT4_IOC_GETFSUUID και EXT4_IC_SETFSUUID ioctl έχουν προστεθεί στο σύστημα αρχείων ext4 για ανάκτηση ή ρύθμιση του UUID που είναι αποθηκευμένο στο superblock.
    • Το σύστημα αρχείων F2FS προσφέρει μια λειτουργία χαμηλής κατανάλωσης μνήμης που βελτιστοποιεί τη λειτουργία σε συσκευές με χαμηλή μνήμη RAM και σας επιτρέπει να μειώσετε την κατανάλωση μνήμης σε βάρος της απόδοσης.
    • Προστέθηκε υποστήριξη για έλεγχο ταυτότητας μονάδας δίσκου NVMe.
    • Ο διακομιστής NFSv4 εφαρμόζει ένα όριο στον αριθμό των ενεργών πελατών, το οποίο έχει οριστεί σε 1024 έγκυρους πελάτες ανά gigabyte μνήμης RAM στο σύστημα.
    • Η εφαρμογή πελάτη CIFS έχει βελτιώσει την απόδοση πολλαπλών διαδρομών.
    • Μια νέα σημαία FAN_MARK_IGNORE προστέθηκε στο υποσύστημα παρακολούθησης συμβάντων στο fanotify FS για να αγνοηθούν συγκεκριμένα συμβάντα.
    • Στο σύστημα αρχείων Overlayfs, όταν προσαρτάται σε σύστημα αρχείων με αντιστοίχιση αναγνωριστικού χρήστη, οι λίστες ελέγχου πρόσβασης συμβατές με το POSIX υποστηρίζονται σωστά.
    • Προστέθηκε πρόγραμμα οδήγησης μπλοκ ublk που εκθέτει συγκεκριμένη λογική σε μια διαδικασία φόντου χώρου χρήστη και χρησιμοποιεί το υποσύστημα io_uring.
  • Υπηρεσίες μνήμης και συστήματος
    • Στο υποσύστημα DAMON (Data Access MONitor) προστέθηκαν νέες δυνατότητες που επιτρέπουν όχι μόνο την παρακολούθηση της πρόσβασης των διεργασιών στη μνήμη RAM από το χώρο του χρήστη, αλλά και την επιρροή στη διαχείριση της μνήμης. Ειδικότερα, προτείνεται μια νέα ενότητα "LRU_SORT", η οποία παρέχει αναδιάταξη των λιστών LRU (Last Recently Used) για να αυξηθεί η προτεραιότητα ορισμένων σελίδων μνήμης.
    • Έχει υλοποιηθεί η δυνατότητα δημιουργίας νέων περιοχών μνήμης χρησιμοποιώντας τις δυνατότητες του διαύλου CXL (Compute Express Link), ο οποίος χρησιμοποιείται για την οργάνωση της αλληλεπίδρασης υψηλής ταχύτητας μεταξύ της CPU και των συσκευών μνήμης. Το CXL επιτρέπει τη σύνδεση νέων περιοχών μνήμης που παρέχονται από εξωτερικές συσκευές μνήμης και τη χρήση τους ως πρόσθετους φυσικούς πόρους χώρου διευθύνσεων για την επέκταση της μνήμης τυχαίας πρόσβασης συστήματος (DDR) ή της μνήμης μόνο για ανάγνωση (PMEM).
    • Αντιμετώπισε προβλήματα απόδοσης συστήματος σε επεξεργαστές AMD Zen που προκλήθηκαν από κώδικα που προστέθηκε πριν από 20 χρόνια για να επιλύσει ένα πρόβλημα υλικού σε ορισμένα chipset (προστέθηκε μια επιπλέον οδηγία WAIT για να επιβραδύνει τον επεξεργαστή, ώστε το chipset να έχει χρόνο να μπει σε κατάσταση αδράνειας). Η αλλαγή είχε ως αποτέλεσμα την υποβάθμιση της απόδοσης για φόρτους εργασίας που συχνά εναλλάσσονται μεταξύ αδράνειας και απασχολημένης κατάστασης. Για παράδειγμα, μετά την απενεργοποίηση του ελιγμού παράκαμψης, οι μέσες βαθμολογίες δοκιμών tbench αυξήθηκαν από 32191 MB/s σε 33805 MB/s.
    • Καταργήθηκε ο ευρετικός κώδικας από τον προγραμματιστή εργασιών, ο οποίος διασφαλίζει τη μετεγκατάσταση των διεργασιών στις λιγότερο φορτισμένες CPU, λαμβάνοντας υπόψη το προβλεπόμενο κέρδος στην κατανάλωση ενέργειας. Οι προγραμματιστές κατέληξαν στο συμπέρασμα ότι το ευρετικό δεν είναι χρήσιμο και ότι είναι ευκολότερο να αφαιρούνται και να μετακινούνται διαδικασίες χωρίς πρόσθετες αξιολογήσεις κάθε φορά που μια τέτοια μεταφορά θα μπορούσε ενδεχομένως να οδηγήσει σε μείωση της κατανάλωσης ενέργειας (για παράδειγμα, όταν η CPU στόχος είναι σε ένα επίπεδο με χαμηλότερη κατανάλωση ρεύματος). Η απενεργοποίηση της ευρετικής οδήγησε σε μείωση της κατανάλωσης ενέργειας κατά την εκτέλεση εντατικών εργασιών, για παράδειγμα, σε μια δοκιμή με αποκωδικοποίηση βίντεο, η κατανάλωση ενέργειας μειώθηκε κατά 5.6%.
    • Η κατανομή των εργασιών μεταξύ των πυρήνων της CPU σε μεγάλα συστήματα έχει βελτιστοποιηθεί, γεγονός που κατέστησε δυνατή την αύξηση της απόδοσης υπό ορισμένους τύπους φορτίου.
    • Η ασύγχρονη διεπαφή εισόδου/εξόδου io_uring εισάγει μια νέα σημαία, την IORING_RECV_MULTISHOT, η οποία επιτρέπει τη χρήση της λειτουργίας πολλαπλών λήψεων με την κλήση συστήματος recv() για την εκτέλεση πολλαπλών αναγνώσεων από την ίδια υποδοχή δικτύου ταυτόχρονα. Το io_uring υλοποιεί επίσης υποστήριξη για μεταφορά δικτύου χωρίς ενδιάμεσο buffering (zero-copy).
    • Εφάρμοσε τη δυνατότητα να τεθούν τα προγράμματα BPF που συνδέονται με το ρούχο σε κατάσταση ύπνου. Το BPF προσθέτει επίσης έναν νέο επαναλήπτη ksym για εργασία με πίνακες συμβόλων πυρήνα.
    • Καταργήθηκε η απαρχαιωμένη διεπαφή "efivars" στο sysfs για πρόσβαση σε μεταβλητές εκκίνησης UEFI (το εικονικό σύστημα αρχείων efivarfs χρησιμοποιείται πλέον ευρέως για πρόσβαση σε δεδομένα EFI).
    • Το βοηθητικό πρόγραμμα perf έχει νέες αναφορές για την ανάλυση της διαμάχης κλειδώματος και του χρόνου που αφιερώνει ο επεξεργαστής για την εκτέλεση των στοιχείων του πυρήνα.
    • Καταργήθηκε η ρύθμιση CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3, η οποία επέτρεψε τη δημιουργία του πυρήνα σε λειτουργία βελτιστοποίησης "-O3". Σημειώνεται ότι ο πειραματισμός με λειτουργίες βελτιστοποίησης μπορεί να πραγματοποιηθεί μέσω της μετάδοσης σημαιών κατά τη συναρμολόγηση ("make KCFLAGS=-O3") και για να προστεθεί μια ρύθμιση στο Kconfig, απαιτείται η παροχή επαναλαμβανόμενων προφίλ απόδοσης, δείχνοντας ότι ο βρόχος Το ξετύλιγμα που εφαρμόζεται στη λειτουργία "-O3" δίνει κέρδος σε σύγκριση με το επίπεδο βελτιστοποίησης "-O2".
    • Έχει προστεθεί μια διεπαφή εντοπισμού σφαλμάτων για τη λήψη πληροφοριών σχετικά με τη λειτουργία μεμονωμένων "συρρίκνωσης μνήμης" (οι χειριστές καλούνται όταν υπάρχει έλλειψη μνήμης και δομές δεδομένων του πυρήνα συσκευασίας για να μειωθεί η κατανάλωση μνήμης).
    • Η υποστήριξη για το δίαυλο PCI έχει υλοποιηθεί για τις αρχιτεκτονικές OpenRISC και LoongArch.
    • Για την αρχιτεκτονική RISC-V, η επέκταση "Zicbom" υλοποιείται για τη διαχείριση συσκευών με DMA που δεν είναι συνεπής στην κρυφή μνήμη (non-cache-coherent).
  • Εικονικοποίηση και Ασφάλεια
    • Ο μηχανισμός επαλήθευσης RV (Επαλήθευση χρόνου εκτέλεσης) έχει προστεθεί για τον έλεγχο της σωστής λειτουργίας σε συστήματα υψηλής αξιοπιστίας που εγγυώνται καμία αστοχία. Η επικύρωση γίνεται κατά το χρόνο εκτέλεσης με την προσάρτηση χειριστών σε σημεία εντοπισμού που ελέγχουν την πραγματική πρόοδο της εκτέλεσης σε σχέση με ένα προκαθορισμένο μοντέλο αναφοράς ντετερμινιστικού αυτόματου που καθορίζει την αναμενόμενη συμπεριφορά του συστήματος. Η επαλήθευση μοντέλου χρόνου εκτέλεσης τοποθετείται ως μια πιο ελαφριά και εύχρηστη μέθοδος επαλήθευσης της ορθότητας της εκτέλεσης σε συστήματα κρίσιμα για την αποστολή, συμπληρώνοντας τις κλασικές μεθόδους επαλήθευσης αξιοπιστίας. Μεταξύ των πλεονεκτημάτων του RV είναι η δυνατότητα παροχής αυστηρής επαλήθευσης χωρίς χωριστή υλοποίηση ολόκληρου του συστήματος στη γλώσσα μοντελοποίησης, καθώς και μια ευέλικτη απόκριση σε απρόβλεπτα γεγονότα.
    • Ενσωματωμένα στοιχεία πυρήνα για διαχείριση θυλάκων με βάση την τεχνολογία Intel SGX2 (Software Guard eXtensions), η οποία επιτρέπει στις εφαρμογές να εκτελούν κώδικα σε απομονωμένες κρυπτογραφημένες περιοχές της μνήμης, η πρόσβαση στις οποίες περιορίζεται από το υπόλοιπο σύστημα. Η τεχνολογία Intel SGX2 υποστηρίζεται στα τσιπ Intel Ice Lake και Gemini Lake και διαφέρει από την Intel SGX1 σε πρόσθετες οδηγίες για τη δυναμική διαχείριση μνήμης θύλακας.
    • Για την αρχιτεκτονική x86, είναι δυνατή η μεταφορά του σπόρου για τη γεννήτρια ψευδοτυχαίων αριθμών μέσω των ρυθμίσεων του bootloader.
    • Προστέθηκε η δυνατότητα διαχείρισης αλλαγών που πραγματοποιήθηκαν μέσω της κλήσης setgroups() στη μονάδα SafeSetID LSM. Το SafeSetID επιτρέπει στις υπηρεσίες συστήματος να διαχειρίζονται με ασφάλεια τους χρήστες χωρίς κλιμάκωση προνομίων (CAP_SETUID) και χωρίς να αποκτούν εξουσιοδότηση χρήστη root.
    • Προστέθηκε υποστήριξη για τον κρυπτογράφηση μπλοκ ARIA.
    • Η μονάδα διαχείρισης ασφαλείας που βασίζεται σε BPF υλοποιεί τη δυνατότητα σύνδεσης χειριστών σε μεμονωμένες διεργασίες και ομάδες διεργασιών (cgroups).
    • Ένας μηχανισμός με εφαρμογή παρακολούθησης έχει προστεθεί για τον εντοπισμό hangups των φιλοξενούμενων συστημάτων που βασίζονται στην παρακολούθηση δραστηριότητας vCPU.
  • Υποσύστημα δικτύου
    • Στο υποσύστημα BPF έχουν προστεθεί προγράμματα χειρισμού για τη δημιουργία και τον έλεγχο των cookies SYN. Ένα σύνολο λειτουργιών (kfunc) έχει επίσης προστεθεί για πρόσβαση και αλλαγή της κατάστασης των συνδέσεων.
    • Η υποστήριξη για τον μηχανισμό MLO (Λειτουργία πολλαπλών συνδέσμων), που ορίζεται στην προδιαγραφή WiFi 7, έχει προστεθεί στην ασύρματη στοίβα, η οποία επιτρέπει στις συσκευές να λαμβάνουν και να στέλνουν δεδομένα ταυτόχρονα χρησιμοποιώντας διαφορετικές ζώνες συχνοτήτων και κανάλια, για παράδειγμα, για τη ρύθμιση πολλών κανάλια επικοινωνίας ταυτόχρονα μεταξύ ενός σημείου πρόσβασης και μιας συσκευής πελάτη.
    • Βελτιωμένη απόδοση του πρωτοκόλλου TLS που είναι ενσωματωμένο στον πυρήνα.
    • Προστέθηκε η επιλογή γραμμής εντολών "hostname=" πυρήνα για να επιτρέπεται ο ορισμός ενός ονόματος κεντρικού υπολογιστή νωρίς κατά την εκκίνηση, πριν από την εκκίνηση των στοιχείων του χώρου χρήστη.
  • Оборудование
    • Το πρόγραμμα οδήγησης i915 (Intel) παρέχει υποστήριξη για διακριτές κάρτες γραφικών Intel Arc (DG2/Alchemist) A750 και A770. Έχει προταθεί μια αρχική εφαρμογή υποστήριξης για τις GPU Intel Ponte Vecchio (Xe-HPC) και Meteor Lake. Συνεχίστηκαν οι εργασίες για την υποστήριξη της πλατφόρμας Intel Raptor Lake.
    • Το πρόγραμμα οδήγησης amdgpu συνεχίζει να εργάζεται για την υποστήριξη των πλατφορμών AMD RDNA3 (RX 7000) και CDNA (Instinct).
    • Στο πρόγραμμα οδήγησης Nouveau, ο κώδικας για την υποστήριξη κινητήρων οθόνης GPU NVIDIA nv50 έχει επανασχεδιαστεί.
    • Προστέθηκε νέο πρόγραμμα οδήγησης DRM logicvc για οθόνες LogiCVC.
    • Το πρόγραμμα οδήγησης v3d (για τις GPU της Broadcom Video Core) υποστηρίζει πλέον πλακέτες Raspberry Pi 4.
    • Προστέθηκε υποστήριξη για το πρόγραμμα οδήγησης Qualcomm Adreno 619 GPU σε msm.
    • Η υποστήριξη για τις GPU της ARM Mali Valhall έχει προστεθεί στο πρόγραμμα οδήγησης Panfrost.
    • Προστέθηκε αρχική υποστήριξη για επεξεργαστές Qualcomm Snapdragon 8cx Gen3 που χρησιμοποιούνται σε φορητούς υπολογιστές Lenovo ThinkPad X13s.
    • Προστέθηκαν προγράμματα οδήγησης ήχου για τις πλατφόρμες AMD Raphael (Ryzen 7000), AMD Jadeite, Intel Meteor Lake και Mediatek MT8186.
    • Προστέθηκε υποστήριξη για επιταχυντές μηχανικής εκμάθησης Intel Habana Gaudi 2.
    • Προστέθηκε υποστήριξη για ARM SoC Allwinner H616, NXP i.MX93, Sunplus SP7021, Nuvoton NPCM8XX, Marvell Prestera 98DX2530, Google Chameleon v3.

Ταυτόχρονα, το Ίδρυμα Ελεύθερου Λογισμικού Λατινικής Αμερικής σχημάτισε μια παραλλαγή του εντελώς δωρεάν πυρήνα 6.0 - Linux-libre 6.0-gnu, απαλλαγμένη από στοιχεία υλικολογισμικού και προγράμματος οδήγησης που περιέχουν μη ελεύθερα στοιχεία ή τμήματα κώδικα, το πεδίο εφαρμογής του οποίου περιορίζεται από ο κατασκευαστής. Η νέα έκδοση απενεργοποιεί τη χρήση blobs στο πρόγραμμα οδήγησης ήχου CS35L41 HD και στο πρόγραμμα οδήγησης UCSI για τους μικροελεγκτές STM32G0. Εκκαθάριση αρχείων dts για τσιπ Qualcomm και MediaTek. Επανασχεδιασμένη απενεργοποίηση blobs στο πρόγραμμα οδήγησης MediaTek MT76. Ενημερωμένος κώδικας καθαρισμού blob σε προγράμματα οδήγησης και υποσυστήματα AMDGPU, Adreno, Tegra VIC, Netronome NFP και Habanalabs Gaudi2. Σταμάτησε να καθαρίζει το πρόγραμμα οδήγησης VXGE που αφαιρέθηκε από τον πυρήνα.

Πηγή: opennet.ru

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