Νέα έκδοση ενημερώσεων κώδικα για τον πυρήνα Linux με υποστήριξη για τη γλώσσα Rust

Ο Miguel Ojeda, ο συγγραφέας του έργου Rust-for-Linux, πρότεινε την κυκλοφορία των στοιχείων v5 για την ανάπτυξη προγραμμάτων οδήγησης συσκευών στη γλώσσα Rust προς εξέταση από τους προγραμματιστές του πυρήνα Linux. Αυτή είναι η έκτη έκδοση των ενημερώσεων κώδικα, λαμβάνοντας υπόψη την πρώτη έκδοση, που δημοσιεύτηκε χωρίς αριθμό έκδοσης. Η υποστήριξη Rust θεωρείται πειραματική, αλλά περιλαμβάνεται ήδη στον κλάδο του linux-next και έχει αναπτυχθεί επαρκώς για να ξεκινήσει η εργασία για τη δημιουργία επιπέδων αφαίρεσης σε υποσυστήματα πυρήνα, καθώς και εγγραφή προγραμμάτων οδήγησης και λειτουργικών μονάδων. Η ανάπτυξη χρηματοδοτείται από την Google και την ISRG (Internet Security Research Group), η οποία είναι ο ιδρυτής του έργου Let's Encrypt και προωθεί το HTTPS και την ανάπτυξη τεχνολογιών για τη βελτίωση της ασφάλειας στο Διαδίκτυο.

Θυμηθείτε ότι οι προτεινόμενες αλλαγές καθιστούν δυνατή τη χρήση της Rust ως δεύτερης γλώσσας για την ανάπτυξη προγραμμάτων οδήγησης και λειτουργικών μονάδων πυρήνα. Η υποστήριξη Rust παρουσιάζεται ως μια επιλογή που δεν είναι ενεργοποιημένη από προεπιλογή και δεν έχει ως αποτέλεσμα τη συμπερίληψη του Rust στις απαιτούμενες εξαρτήσεις κατασκευής για τον πυρήνα. Η χρήση του Rust για την ανάπτυξη προγραμμάτων οδήγησης θα σας επιτρέψει να δημιουργήσετε ασφαλέστερα και καλύτερα προγράμματα οδήγησης με ελάχιστη προσπάθεια, χωρίς προβλήματα όπως η πρόσβαση σε μια περιοχή μνήμης μετά την απελευθέρωσή της, η κατάργηση αναφοράς μηδενικών δεικτών και οι υπερβάσεις buffer.

Ο ασφαλής χειρισμός της μνήμης παρέχεται στο Rust κατά το χρόνο μεταγλώττισης μέσω ελέγχου αναφοράς, παρακολούθησης της ιδιοκτησίας αντικειμένου και της διάρκειας ζωής του αντικειμένου (πεδίο), καθώς και μέσω αξιολόγησης της ορθότητας της πρόσβασης στη μνήμη κατά την εκτέλεση του κώδικα. Το Rust παρέχει επίσης προστασία έναντι υπερχείλισης ακεραίων, απαιτεί υποχρεωτική αρχικοποίηση τιμών μεταβλητών πριν από τη χρήση, χειρίζεται καλύτερα τα σφάλματα στην τυπική βιβλιοθήκη, εφαρμόζει την έννοια των αμετάβλητων αναφορών και μεταβλητών από προεπιλογή, προσφέρει ισχυρή στατική πληκτρολόγηση για την ελαχιστοποίηση των λογικών σφαλμάτων.

Η νέα έκδοση των ενημερώσεων κώδικα συνεχίζει να εξαλείφει τα σχόλια που έγιναν κατά τη συζήτηση της πρώτης, δεύτερης, τρίτης, τέταρτης και πέμπτης έκδοσης των ενημερώσεων κώδικα. Στη νέα έκδοση:

  • Το κιτ εργαλείων έχει ενημερωθεί για να κυκλοφορήσει το Rust 1.59.0. Μια παραλλαγή της βιβλιοθήκης κατανομής συγχρονίζεται επίσης με τη νέα έκδοση του Rust, εξαλείφοντας την πιθανή δημιουργία κατάστασης «πανικού» όταν εμφανίζονται σφάλματα, όπως η έλλειψη μνήμης. Η δυνατότητα χρήσης ενθέτων συναρμολογητή ("feature(global_asm)") έχει σταθεροποιηθεί.
  • Προστέθηκε υποστήριξη για τη δημιουργία προγραμμάτων κεντρικού υπολογιστή στο Rust που χρησιμοποιούνται κατά τη μεταγλώττιση του πυρήνα.
  • Αντί να παραδίδονται προ-δημιουργημένα αρχεία προδιαγραφών πλατφόρμας στόχου, δημιουργούνται δυναμικά με βάση τη διαμόρφωση του πυρήνα.
  • Προστέθηκε η παράμετρος πυρήνα HAVE_RUST για ενεργοποίηση για αρχιτεκτονικές που υποστηρίζουν Rust.
  • Οι αφαιρέσεις προτείνονται για χρήση στον κώδικα Rust για μια γεννήτρια ψευδοτυχαίων αριθμών υλικού.
  • Επιτρέπεται η χρήση κωδικών σφάλματος χωρίς το πρόθεμα "Error::" (για παράδειγμα, "return Err(EINVAL)") για την κατά προσέγγιση διαχείριση των κωδικών σφάλματος στο C.
  • Προστέθηκε ο τύπος "CString" για προσαρμοσμένες συμβολοσειρές C. Οι τύποι Formatter και Buffer έχουν συνδυαστεί.
  • Προστέθηκαν τύποι Bool και LockInfo.
  • Η εφαρμογή των spin locks έχει απλοποιηθεί.

Πηγή: opennet.ru

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