Η Western Digital εργάζεται ήδη σε ένα πρόγραμμα οδήγησης NVMe γραμμένο σε Rust

RustLinux

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

Κατά τη διάρκεια του συνεδρίου «Linux Plumbers 2022». που ήταν σε εξέλιξη αυτές τις μέρες, ένας μηχανικός της Western Digital έκανε μια παρουσίαση για την ανάπτυξη ενός ελεγκτή πειραματικό για SSD NVM-Express (NVMe) γραμμένο σε Rust και τρέχει σε επίπεδο πυρήνα Linux.

Ακόμα κι αν το έργο βρίσκεται ακόμη σε αρχικό στάδιο ανάπτυξης, οι δοκιμές που πραγματοποιήθηκαν έδειξαν ότι η απόδοση του προγράμματος οδήγησης Rust NVMe αντιστοιχεί στο πρόγραμμα οδήγησης NVMe που είναι γραμμένο σε C στον πυρήνα.

Είμαι ο Matthew Wilcox, είμαι ένας από τους συγγραφείς της προδιαγραφής NVMe, ήμουν αυτός που πρότεινα να φτιάξω ένα πρόγραμμα οδήγησης NVMe για να δείξω την αξία του Rust. Ήταν επιτυχημένο πέρα ​​από τις πιο τρελές προσδοκίες μου. 

Σχετικά με την έκθεση που παρουσιάστηκε Το τρέχον πρόγραμμα οδήγησης NVMe C λέγεται ότι είναι πλήρως ικανοποιητικό για προγραμματιστές, αλλά το υποσύστημα NVMe είναι μια καλή πλατφόρμα για τη διερεύνηση της σκοπιμότητας ανάπτυξης προγραμμάτων οδήγησης στο Rust, καθώς είναι αρκετά απλό, ευρέως χρησιμοποιούμενο, έχει υψηλές απαιτήσεις απόδοσης, έχει αποδεδειγμένη εφαρμογή αναφοράς για σύγκριση και υποστηρίζει διάφορες διεπαφές ( dev, pci, dma, blk-mq, gendisk, sysfs).

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

Τα σχέδια για το μέλλον περιλαμβάνουν την απαλλαγή από τα υπάρχοντα ανασφαλή μπλοκ, υποστήριξη για την αφαίρεση της συσκευής και τη λήψη του προγράμματος οδήγησης, υποστήριξη διεπαφής sysfs, εφαρμόστε την lazy προετοιμασία, δημιουργήστε έναν ελεγκτή για blk-mq και πειραματιστείτε με ένα μοντέλο ασύγχρονου προγραμματισμού για queue_rq.

Επιπλέον, μπορούμε να επισημάνουμε τα πειράματα που πραγματοποιήθηκαν από τον Όμιλο NCC για την ανάπτυξη ελεγκτών στη γλώσσα Rust για τον πυρήνα του FreeBSD. Για παράδειγμα, ένας απλός ελεγκτής ηχούς που επιστρέφει δεδομένα γραμμένα στο /dev/rustmodule. Στην επόμενη φάση του πειραματισμού, ο Όμιλος NCC εξετάζει το ενδεχόμενο επανεπεξεργασίας βασικών στοιχείων στο Rust για τη βελτίωση της ασφάλειας των λειτουργιών δικτύου και αρχείων.

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

Για παράδειγμα, αναφέρει την ανάγκη να δημιουργηθεί ένα σύνολο επιπέδων αφαίρεσης πάνω από υποσυστήματα και δομές πυρήνα, παρόμοια με τα πρόσθετα που προετοιμάστηκαν από το έργο Rust για Linux. Στο μέλλον, σχεδιάζουμε να εκτελέσουμε παρόμοια πειράματα με τον πυρήνα του Illumos και να επισημάνουμε κοινές αφαιρέσεις στο Rust που θα μπορούσαν να χρησιμοποιηθούν σε προγράμματα οδήγησης που έχουν γραφτεί από τη Rust για Linux, BSD και Illumos.

Σύμφωνα με τη Microsoft και την Google, περίπου το 70% των τρωτών σημείων στα προϊόντα λογισμικού τους οφείλεται σε μη ασφαλή διαχείριση μνήμης.

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

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

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

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

Τελικά αν ενδιαφέρεστε να μάθετε περισσότερα γι 'αυτό, μπορείτε να ελέγξετε τις λεπτομέρειες στο τον ακόλουθο σύνδεσμο.


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

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

*

*

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