Το Rust για Linux περιλαμβάνει πολλές βελτιώσεις για υποστήριξη

Τους τελευταίους μήνες Οι προγραμματιστές Linux έχουν διαφωνήσει η δυνατότητα επιτρέπουν τη χρήση της γλώσσας Rust για να γράψετε νέα προγράμματα οδήγησης συσκευών για τον πυρήνα.

Πέρυσι, οι προγραμματιστές του πυρήνα Linux φαίνεται ότι κατέληξαν σε συμφωνία για το θέμα, Οι υποστηρικτές του Rust ανέφεραν εργασίες που δείχνουν ότι περίπου τα δύο τρίτα των τρωτών σημείων του πυρήνα στα οποία έχουν εκχωρηθεί CVE στο Android και το Ubuntu σχετίζονται με ζητήματα ασφάλειας της μνήμης.

Μετά από αυτή τη δήλωση, ο Linus Torvalds, μηχανικός λογισμικού, επικεφαλής δημιουργός και προγραμματιστής του πυρήνα Linux, είπε σε μια συνέντευξη ότι οι συζητήσεις για το θέμα θα ήταν πολύ πιο σημαντικές από μια μακροσκελή ανάρτηση στο Google για τη γλώσσα.

Όταν ρωτήθηκε για την πρόταση χρήσης του Rust, είπε ότι, "Η λύση εδώ είναι απλή: απλώς χρησιμοποιήστε C ++ αντί για Rust."

Μετά από αυτό τον Μάρτιο, ξεκίνησε η πρώτη υποστήριξηe το οποίο επέτρεψε στα προγράμματα οδήγησης Rust να τοποθετηθούν στο δέντρο Linux-Next για περαιτέρω δοκιμή πριν την τελική συμπερίληψή τους στον κύριο πυρήνα.

Ακριβώς πίσω από αυτό ήταν ένα "αίτημα για σχόλιο" που επανεκδόθηκε στη λίστα αλληλογραφίας του πυρήνα σχετικά με την προοπτική του κώδικα Rust για τον πυρήνα του Linux.

Μιγκέλ ΟτζένταΟ προγραμματιστής του πυρήνα Linux ξεκίνησε μια πρόταση Αίτησης για Σχόλια (RFC) στη λίστα αλληλογραφίας του πυρήνα Linux.

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

«Μερικοί από εσάς έχετε παρατηρήσει τις τελευταίες εβδομάδες και μήνες ότι γίνεται μια σοβαρή προσπάθεια να φέρει μια δεύτερη γλώσσα στον πυρήνα. Είμαστε επιτέλους εκεί, με ένα RFC που προσθέτει υποστήριξη Rust στον πυρήνα του Linux », δήλωσε ο Miguel Ojeja. «Γνωρίζουμε ότι η εισαγωγή μιας νέας γλώσσας στον πυρήνα συνεπάγεται τεράστιο κόστος και κινδύνους», πρόσθεσε.

The Rust for Linux Project Team μετακινήθηκε από τον μεταγλωττιστή Rust beta στη χρήση σταθερών εκδόσεων, μετεγκατάσταση κάθε φορά που κυκλοφορεί μια νέα έκδοση.

«Θα θέλαμε να ευχαριστήσουμε τον Rust που συνεργάστηκε μαζί μας σε αυτές τις επιλογές, ώστε ο πυρήνας να τις χρησιμοποιήσει», είπε ο Miguel.

Κατά την ενημέρωση του μεταγλωττιστή, της ομάδας μπόρεσε να αφαιρέσει ορισμένες ασταθείς λειτουργίες από τη λίστα: const_fn_transmute, const_panic, const_unreachable_unchecked, core_panic και try_reserve.

Επιπλέον, επισημαίνεται ότι έχουν προστεθεί ορισμένες επιλογές σπονδυλοποίησης περισσότερα για να διαθέσετε για να απενεργοποιήσετε ορισμένες περιττές λειτουργίες: no_rc και no_sync.

Upstream, για να υποστηρίζεται καλά η περίπτωση χρήσης του πυρήνα, ή πιο συγκεκριμένα, το "μίγμα" επιλογών που χρειάζεται ο πυρήνας, ο Upstream core έχει προσθέσει επίσης το no_fp_fmt_parse.

Από την άλλη πλευρά, το Rust ενεργοποίησε μια σειρά πρόσθετων διαγνωστικών για τον μεταγλωττιστή Rust and Clippy. Μια διαφορά από το C είναι ότι τα διαγνωστικά Rust είναι λίγο πιο εύκολο να απενεργοποιηθούν στον κώδικα, κάτι που είναι πιο αυστηρό στη γενική περίπτωση.

επίσης έχουν εφαρμοστεί αφαιρέσεις και ενημερώσεις προγραμμάτων οδήγησης. Η ομάδα πρόσθεσε αφαιρέσεις για κλειδώματα ροής, επανακλήσεις διαχείρισης ενέργειας, μνήμη io (readX / writeX), τσιπ irq και διαχειριστές ροής υψηλού επιπέδου, τσιπ gpio (συμπεριλαμβανομένων των τσιπ irq), περιφερειακά, περιφερειακά amba και προγράμματα οδήγησης.

Η υποστήριξη των ο ελεγκτής είναι ενισχυμένος με υποδομή ανεξάρτητη από το λεωφορείο, Ανακλητά αντικείμενα, ανακλήσιμα mutexe, αποτελεσματικοί επαναλήπτες bit, καλύτερα διαγνωστικά πανικού και απλοποιημένα περιτυλίγματα δείκτη. Επιπλέον, βελτίωσε και απλοποίησε τα αντικείμενα Ref (συμβατά με το refcount_t) και αντικατέστησε όλες τις περιπτώσεις Rust.

Και ένα νέο πρόγραμμα οδήγησης για συσκευές gpio PL061 έχει εφαρμοστεί και αποσταλεί ως ενημερωμένη έκδοση κώδικα RFC.

Τέλος πρέπει να σημειωθεί ότι Η υποστήριξη σκουριάς εξακολουθεί να θεωρείται πειραματική. Ωστόσο, η υποστήριξη είναι αρκετά καλή ώστε οι προγραμματιστές του πυρήνα αρχίζουν να δουλεύουν στο Rust abstractions για υποσυστήματα εγγραφής και ελεγκτές και άλλες ενότητες. Η τρέχουσα σειρά μόλις έφτασε στο Linux-next, οπότε η πρώτη εκτέλεση θα πραγματοποιηθεί αυτή την εβδομάδα.

πηγή: https://lkml.org/lkml


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.