Το Rust for Linux σε μπελάδες, ένταση και διαφωνίες έχουν ήδη έρθει στο φως 

Rust για προβλήματα Linux

Φαίνεται ότι φέτος δεν θα είναι η χρονιά του Linux, αφού παρόλο που το τελευταίο τρίμηνο του περασμένου έτους όλα έμοιαζαν ότι το Linux και οι επιτραπέζιοι υπολογιστές θα απογειωνόταν το 2025, τα πράγματα δεν είναι πάντα όπως φαίνονται.

Και είναι μόνο λίγες μέρες Christoph Hellwig, μια εξέχουσα προσωπικότητα στη διατήρηση κρίσιμων υποσυστημάτων όπως DMA, KVM, Slab Allocator και PowerPC στον πυρήνα του Linux, έχει ξεκαθαρίσει την άρνησή της να υποστηρίξει patches που διευκολύνουν την ανάπτυξη των ελεγκτών στο Rust.

Κρίστοφ Χέλγουιχ αναφέρει ότι τα εν λόγω patches Πρότειναν να συμπεριληφθούν περιτυλίγματα γύρω από τις λειτουργίες του υποσυστήματος DMA για να επιτρέψουν στους οδηγούς που είναι γραμμένοι σε Rust να το χρησιμοποιούν. Ωστόσο, υποστηρίζει ότι αυτή η στρατηγικήΗ συντήρηση του κώδικα περιπλέκει και η σαφήνεια των διεπαφών C πρέπει να διατηρηθεί, αποτρέποντας την επέκταση των αφαιρέσεων που θα μπορούσαν να εμποδίσουν την ενσωμάτωση με τον υπόλοιπο πυρήνα.

Τα προβλήματα της μίξης γλωσσών σε ένα έργο

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

Για να αποφύγει αυτή την κατάσταση, Hellwig συνέστησε την άμεση πρόσβαση των ελεγκτών στο Rust στο εγγενές API DMA στο C, αντί να καταφεύγουν σε πρόσθετα περιτυλίγματα που πιστεύουν ότι θα έβαζαν σε κίνδυνο τη συντηρησιμότητα του πυρήνα.

Από την πλευρά τους, Οι προγραμματιστές που πρότειναν τα patches υποστήριξαν ότι θα φρόντιζαν για τη συντήρηση του κώδικα Rust και, για το σκοπό αυτό, έχουν οργανώσει τους συνδέσμους σε έναν συγκεκριμένο υποκατάλογο (rust/kernel/dma.rs). Ωστόσο, Ο Hellwig άσκησε βέτο σε αυτές τις προτάσεις, προειδοποιώντας ότι δεν χρειάζεται να αναλάβει την ευθύνη. να ενσωματώσει κώδικα από άλλες γλώσσες σε βασικά υποσυστήματα.

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

Η διαμάχη εντάθηκε όταν προσωπικότητες όπως ο Jason Gunthorpe, το TPM, το VFIO και ο συντηρητής Infiniband στη NVIDIA, μοιράστηκαν παραδείγματα για τον τρόπο αλλαγής στα υποσυστήματα μνήμης, ενώ ήταν σωστά από την οπτική γωνία του κώδικα C, δημιούργησε προβλήματα κατά την προσπάθεια μεταγλώττισης του πυρήνα με υποστήριξη Rust. Αυτά τα περιστατικά κατέστησαν σαφές ότι οι δεσμεύσεις μεταξύ C και Rust μπορούν να δημιουργήσουν πρόσθετες εξαρτήσεις που καθιστούν δύσκολη τη συντονισμένη ανάπτυξη.

Αξίζει να το αναφέρουμε Η συζήτηση δεν περιορίστηκε σε τεχνικές πτυχές. Ο Hector Martin πρότεινε ότι η λύση μπορεί να είναι η υιοθέτηση της σύνδεσης απευθείας μέσω του Linus Torvalds, αποφεύγοντας την παρέμβαση του συντηρητή υποσυστήματος DMA. Ωστόσο, αυτή η προσέγγιση θα μπορούσε να διαταράξει την παραδοσιακή ιεραρχική δομή της ανάπτυξης του πυρήνα.

Ο Έκτορας επεσήμανε επίσης συμπεριφορές που θεωρούσε τοξικές, αναφέροντας μάλιστα ότι η κριτική του Hellwig, ο οποίος συνέκρινε τον Rust με έναν "καρκινικό όγκο", είχε συμβάλει στην απογοήτευσή του και τελικά στην απόφασή του να παραιτηθεί ως ο συντηρητής της πλατφόρμας ARM/Apple στον κύριο πυρήνα. Παρά την παραίτησή του, η πλατφόρμα θα συνεχίσει να υποστηρίζεται από τον Sven Peter, ο οποίος έχει δεσμευτεί να συνεχίσει να τη διατηρεί.

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

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

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