Τους τελευταίους μήνες μια συζήτηση έχει ενταθεί που φαινόταν ότι περιοριζόταν σε απλές διαφωνίες, και τώρα κλιμακώνεται σε κρίσιμα επίπεδα εντός της κοινότητας προγραμματιστών Linux. Αυτό που ξεκίνησε ως επιχείρημα Σχετικά με την εισαγωγή του Rust στον πυρήνα έχει δημιουργήσει βαθιές εντάσεις και διχασμούς μεταξύ εκείνων που βλέπουν αυτή τη γλώσσα ως μια καινοτόμο λύση και εκείνων που, από την άλλη πλευρά, φοβούνται ότι η υιοθέτησή της θα περιπλέξει και θα κατακερματίσει μια παραδοσιακά ομοιογενή βάση κώδικα.
Όταν πρωτοπροτάθηκε η ενσωμάτωση σκουριά στο linux, Πολλοί προγραμματιστές ήταν ενθουσιασμένοι. Μετά από εκτεταμένες κριτικές και αποδοχή της αλλαγής από τον Linus Torvalds, η γλώσσα ενσωματώθηκε στην έκδοση 6.1 του πυρήνα. Ωστόσο, υπήρξαν αρχικά σχόλια που απορρίφθηκαν ως «απλές απόψεις» εκείνη την εποχή, αλλά τώρα θεωρούνται προειδοποιητικά σημάδια.
Αυτά τα σχόλια που ανέφερα Αναφέρθηκαν σε ορισμένα «έθιμα» να το πω έτσι και βασικά Ανέφεραν ότι θα υπήρχε η πιθανότητα κάποιας αντίστασης από τους προγραμματιστές με την εισαγωγή μιας νέας γλώσσας και αυτό θα μπορούσε να δημιουργήσει ένα "διχασμό" μεταξύ της ομάδας ανάπτυξης Linux, προς έκπληξή μου, φαίνεται ότι αυτό γίνεται πραγματικότητα.
Τις προηγούμενες μέρες Είχαμε μοιραστεί εδώ στο blog για τις συζητήσεις και τα προβλήματα που προέκυψαν στην ομάδα ανάπτυξης Linux, συμπεριλαμβανομένης της σιωπηρής παραίτησης του Κρίστοφ Χέλγουιχ ο οποίος εξέφρασε την άρνησή του να υποστηρίξει patches που διευκολύνουν την ανάπτυξη προγραμμάτων οδήγησης στο Rust.
Λίγο μετά από αυτό, μίλησε ξανά και τώρα μοιράστηκε τις σκέψεις του Σχετικά με την ενσωμάτωση Rust wrappers στο υποσύστημα DMA του πυρήνα Linux. Hellwig επικρίνει τους κανόνες που προτείνει το έργο Rust για Linux, υποστηρίζοντας ότι είναι άχρηστα μέχρι να υιοθετηθούν και να επισημοποιηθούν στην επίσημη τεκμηρίωση του πυρήνα με συναίνεση της κοινότητας.
Hellwig επισημαίνει ότι αυτοί οι κανόνες κακώς σελεπιτρέπουν στους συντηρητές να αποφασίζουν μονομερώς για την ενσωμάτωση κώδικα Το Rust στα υποσυστήματα του, όταν, σε μια ιδιωτική συνομιλία, ο Linus Torvalds κατέστησε σαφή τη δέσμευσή του να αποδεχτεί τον κώδικα Rust στον πυρήνα, ανεξάρτητα από τυχόν αντιρρήσεις που προέκυψαν.
Hellwig χρησιμοποιεί μια εντυπωσιακή αναλογία, συγκρίνοντας τα περιτυλίγματα Rust με έναν «καρκινικό όγκο» που θα εξαπλωθεί σε όλα τα υποσυστήματα, προκαλώντας ανεξέλεγκτη κατακερματισμό. Για αυτόν, ο πυρήνας εξελίσσεται μιας μονολιθικής οντότητας σε ένα έργο γραμμένο σε πολλές γλώσσες, χωρίς σαφή κατευθυντήρια γραμμή ποια να χρησιμοποιήσει και πότε, πράγμα που δημιουργεί μια συνεχή ανάγκη για επανεγγραφή κώδικα από τη μια γλώσσα στην άλλη. Αυτό το σενάριο, σύμφωνα με τον Hellwig, περιπλέκει πολύ τη συντήρηση και τη συνοχή του συστήματος.
Επίσης, Hellwig αμφισβητεί το σκοπό της εισαγωγής του Rust στον πυρήνα. Εάν η πρόθεση είναι να αντιμετωπιστούν ζητήματα ασφάλειας που σχετίζονται με τη διαχείριση μνήμης χαμηλού επιπέδου, το πρώτο βήμα θα πρέπει να είναι ο εκσυγχρονισμός του υπάρχοντος κώδικα. Δεδομένου ότι οι συντηρητές διστάζουν να εφαρμόσουν ακόμη και βασικούς ελέγχους, όπως τον έλεγχο για υπερχειλίσεις ακεραίων.
Φαίνεται μη ρεαλιστικό να πιστεύουμε ότι το χάσμα μεταξύ ενός πυρήνα που αγνοεί απλούς κανόνες ασφαλείας και ενός πυρήνα που ακολουθεί αυστηρούς κανόνες μπορεί να γεφυρωθεί.
Από την άλλη πλευρά, εάν ο στόχος είναι να απλοποιηθεί η ανάπτυξη προγραμμάτων οδήγησης, η εισαγωγή μιας νέας γλώσσας θα αυξήσει μόνο τον φόρτο εργασίας σε όσους έχουν ήδη επιβαρυνθεί με τη συντήρηση της υποδομής του πυρήνα.
Από την άλλη πλευρά του νομίσματος, οι υποστηρικτές της υιοθέτησης του Rust στον πυρήνα επισημαίνουν τα ήδη γνωστά πιθανά πλεονεκτήματα της σύνταξης νέου κώδικα στο Rust: σημαντική μείωση του κινδύνου σφαλμάτων μνήμης, συνθηκών αγώνα και ορισμένων λογικών σφαλμάτων.
Υποστηρίζεται επίσης ότι οι εγγυήσεις της γλώσσας θα επέτρεπε στους συντηρητές να αναθεωρούν και να αναπαράγουν τις ενότητες πιο αποτελεσματικά, εκμεταλλευόμενοι προηγμένες αφαιρέσεις που θα διευκόλυναν τη δημιουργία νέων ελεγκτών και μονάδων. Επιπλέον, η χρήση μιας σύγχρονης γλώσσας θα μπορούσε να προσελκύσει νέους προγραμματιστές στο έργο και τα εργαλεία του Rust, όπως οι υποχρεωτικές απαιτήσεις τεκμηρίωσης για δημόσια API, θα μπορούσαν να βοηθήσουν στην αύξηση των προτύπων για την ποιότητα και την ασφάλεια του κώδικα.
Με λίγα λόγια, η συζήτηση για την ένταξη του Rust στον πυρήνα του Linux αντανακλά μια βαθιά ένταση μεταξύ της ανάγκης εκσυγχρονισμού και διασφάλισης του συστήματος και του κινδύνου περίπλοκης και κατακερματισμού μιας βάσης κώδικα. Ενώ ορισμένοι βλέπουν το Rust ως λύση σε μακροχρόνια ζητήματα ασφάλειας και συντήρησης, άλλοι, όπως ο Hellwig, προειδοποιούν ότι χωρίς σαφή συναίνεση, η ανάμειξη πολλών γλωσσών θα μπορούσε να οδηγήσει σε μη διαχειρίσιμο χάος σε ένα έργο τόσο κρίσιμο όσο ο πυρήνας.
πηγή: https://lore.kernel.org