Η υποστήριξη Rust για τον πυρήνα Linux δέχεται κριτική από τον Torvalds

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

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

Ένα άλλο πρόβλημα ήταν οι προσπάθειες χρήσης τύπων κινητής υποδιαστολής ή 128-bit, οι οποίοι δεν είναι αποδεκτοί για περιβάλλοντα όπως ο πυρήνας του Linux. Αυτό αποδείχθηκε πιο σοβαρό πρόβλημα, καθώς αυτή τη στιγμή η βασική βιβλιοθήκη Rust είναι αδιαίρετη και αντιπροσωπεύει ένα μεγάλο blob - δεν υπάρχει τρόπος να ζητήσετε μόνο ορισμένες από τις λειτουργίες, αποτρέποντας τη χρήση μιας ή άλλης προβληματικής λειτουργικότητας. Η επίλυση του προβλήματος μπορεί να απαιτήσει αλλαγές στον μεταγλωττιστή και τις βιβλιοθήκες rust, αν και αυτή τη στιγμή η ομάδα δεν έχει ακόμη στρατηγική για τον τρόπο εφαρμογής της σπονδυλοποίησης των βιβλιοθηκών γλωσσών.

Επιπλέον, ο Torvalds σημείωσε ότι το παρεχόμενο παράδειγμα προγράμματος οδήγησης ήταν άχρηστο και μας συμβούλεψε να χρησιμοποιήσουμε ως παράδειγμα κάποιο πρόγραμμα οδήγησης που λύνει ένα από τα πραγματικά προβλήματα.

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

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

Πηγή: opennet.ru

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