Ο Linus Torvalds εξέτασε ενημερώσεις κώδικα που εφάρμοζαν τη δυνατότητα δημιουργίας προγραμμάτων οδήγησης στη γλώσσα Rust για τον πυρήνα. Linux, και έκανε ορισμένα επικριτικά σχόλια.
Το μεγαλύτερο παράπονο αφορούσε την πιθανότητα εμφάνισης panic() σε λανθασμένες καταστάσεις, όπως καταστάσεις χαμηλής μνήμης, όταν οι δυναμικές λειτουργίες κατανομής μνήμης, συμπεριλαμβανομένων εκείνων εντός του πυρήνα, μπορούν να αποτύχουν. Ο Torvalds δήλωσε ότι μια τέτοια προσέγγιση είναι θεμελιωδώς απαράδεκτη στον πυρήνα και, εάν αυτό το σημείο δεν γίνει κατανοητό, μπορεί να αποκλείσει εντελώς οποιονδήποτε κώδικα προσπαθεί να χρησιμοποιήσει μια τέτοια προσέγγιση. Από την άλλη πλευρά, ο προγραμματιστής που εργάζεται στα patches συμφώνησε με αυτό το πρόβλημα και πιστεύει ότι μπορεί να λυθεί.
Ένα άλλο πρόβλημα ήταν οι προσπάθειες χρήσης τύπων κινητής υποδιαστολής ή τύπων 128-bit, κάτι που δεν είναι αποδεκτό για περιβάλλοντα όπως ο πυρήνας. LinuxΑυτό αποδείχθηκε ένα πιο σοβαρό πρόβλημα, καθώς η βασική βιβλιοθήκη του Rust είναι προς το παρόν αδιαίρετη και αντιπροσωπεύει ένα μεγάλο μπλοκ—δεν σας επιτρέπει να ζητήσετε μόνο συγκεκριμένες λειτουργίες, εμποδίζοντας τη χρήση ορισμένων προβληματικών λειτουργιών. Η επίλυση αυτού του προβλήματος μπορεί να απαιτήσει αλλαγές στον μεταγλωττιστή και τις βιβλιοθήκες του Rust, και η ομάδα προς το παρόν δεν έχει μια στρατηγική για την εφαρμογή της αρθρωτής δομής στις βιβλιοθήκες γλωσσών.
Επιπλέον, ο Torvalds σημείωσε ότι το παράδειγμα προγράμματος οδήγησης που παρέχεται είναι άχρηστο και συμβούλευσε να επισυνάψετε ως παράδειγμα κάποιο πρόγραμμα οδήγησης που λύνει ένα από τα πραγματικά προβλήματα.
Ενημέρωση: Η Google ανακοίνωσε τη συμμετοχή της στην πρωτοβουλία για την προώθηση της υποστήριξης του Rust στον πυρήνα. Linux και περιέγραψε την τεχνική σκοπιμότητα της υλοποίησης του Rust για την αντιμετώπιση προβλημάτων που προκύπτουν από σφάλματα διαχείρισης μνήμης. Η Google πιστεύει ότι το Rust είναι πλέον έτοιμο να ενταχθεί στην C ως γλώσσα για την ανάπτυξη στοιχείων πυρήνα. LinuxΤο άρθρο παρέχει επίσης παραδείγματα χρήσης της γλώσσας Rust για την ανάπτυξη προγραμμάτων οδήγησης πυρήνα, στο πλαίσιο της χρήσης τους στην πλατφόρμα. Android (Η Rust αναγνωρίζεται ως επίσημα υποστηριζόμενη γλώσσα για ανάπτυξη) Android).
Σημειώνεται ότι η Google έχει ετοιμάσει ένα αρχικό πρωτότυπο ενός προγράμματος οδήγησης γραμμένου σε Rust για τον μηχανισμό επικοινωνίας μεταξύ διεργασιών του Binder, το οποίο θα επιτρέψει μια λεπτομερή σύγκριση της απόδοσης και της ασφάλειας των υλοποιήσεων του Binder σε C και Rust. Στην τρέχουσα μορφή του, το έργο δεν έχει ακόμη ολοκληρωθεί, αλλά έχουν ήδη προετοιμαστεί επίπεδα για σχεδόν όλες τις βασικές αφαιρέσεις της βασικής λειτουργικότητας που απαιτείται για να λειτουργήσει το Binder, για να χρησιμοποιηθούν αυτές οι αφαιρέσεις στον κώδικα Rust.
Πηγή: opennet.ru
