Φαίνεται ότι φέτος δεν θα είναι η χρονιά του Linux, αφού παρόλο που το τελευταίο τρίμηνο του περασμένου έτους όλα έμοιαζαν ότι το Linux και οι επιτραπέζιοι υπολογιστές θα απογειωνόταν το 2025, τα πράγματα δεν είναι πάντα όπως φαίνονται.
Και μόλις πριν από λίγες ημέρες, ο Christoph Hellwig, μια εξέχουσα προσωπικότητα στη συντήρηση κρίσιμων υποσυστημάτων όπως τα DMA, KVM, Slab Allocator και PowerPC στον πυρήνα του Linux , ξεκαθάρισε την απόρριψή του από την υποστήριξη ενημερώσεων κώδικα που διευκολύνουν την ανάπτυξη προγραμμάτων οδήγησης στο Rust.
Ο Christoph Hellwig αναφέρει ότι τα εν λόγω patches πρότειναν την συμπερίληψη περιτυλίξεων γύρω από λειτουργίες του υποσυστήματος DMA, ώστε να επιτρέπεται η χρήση του από προγράμματα οδήγησης γραμμένα σε Rust. Ωστόσο, υποστηρίζει ότι αυτή η στρατηγική περιπλέκει τη συντήρηση του κώδικα και ότι η σαφήνεια των διεπαφών C θα πρέπει να διατηρηθεί , αποφεύγοντας την επέκταση των αφαιρέσεων που θα μπορούσαν να εμποδίσουν την ενσωμάτωση με το υπόλοιπο του πυρήνα.
Τα προβλήματα της μίξης γλωσσών σε ένα έργο
Σύμφωνα με τον Hellwig, το κύριο πρόβλημα έγκειται στο γεγονός ότι η ενσωμάτωση κώδικα Rust δημιουργεί εξαρτήσεις που αναγκάζουν τους προγραμματιστές του υποσυστήματος C να λάβουν υπόψη τον αντίκτυπο των τροποποιήσεών τους στον κώδικα σύνδεσης Rust. Αυτό σημαίνει ότι οποιαδήποτε προσαρμογή στις εσωτερικές δομές ή λειτουργίες της C θα μπορούσε να απαιτήσει παράλληλες αλλαγές στον κώδικα Rust, δημιουργώντας ένα σενάριο που είναι δύσκολο να διατηρηθεί μακροπρόθεσμα.
Για να αποφευχθεί αυτή η κατάσταση, ο Hellwig συνέστησε στους οδηγούς στο Rust να έχουν άμεση πρόσβαση στο εγγενές DMA API στη C, αντί να καταφεύγουν σε πρόσθετα περιτυλίγματα που, κατά τη γνώμη του, θα έθεταν σε κίνδυνο τη συντηρησιμότητα του πυρήνα.
Οι προγραμματιστές που πρότειναν τα patches υποστήριξαν ότι θα διατηρούσαν τον κώδικα της Rust και, για τον σκοπό αυτό, είχαν οργανώσει τους συνδέσμους σε έναν συγκεκριμένο υποκατάλογο (rust/kernel/dma.rs). Ωστόσο, ο Hellwig άσκησε βέτο σε αυτές τις προτάσεις, προειδοποιώντας ότι δεν χρειαζόταν να αναλάβει την ευθύνη της ενσωμάτωσης κώδικα από άλλες γλώσσες στα βασικά υποσυστήματα.
Επιπλέον, σχολίασε έντονα ότι εάν θέλετε να μετατρέψετε τον πυρήνα σε ένα μωσαϊκό πολλών γλωσσών, θα πρέπει να ξεκινήσετε με τους οδηγούς του Rust αντί να επιβάλλετε αυτήν την πολυπλοκότητα σε θεμελιώδεις τομείς.
Η διαμάχη εντάθηκε όταν προσωπικότητες όπως ο Jason Gunthorpe, συντηρητής των TPM, VFIO και Infiniband στην NVIDIA, μοιράστηκαν παραδείγματα για το πώς οι αλλαγές στα υποσυστήματα μνήμης, αν και σωστές από την άποψη του κώδικα C, προκάλεσαν προβλήματα κατά την προσπάθεια μεταγλώττισης του πυρήνα με υποστήριξη Rust. Αυτά τα περιστατικά κατέδειξαν ότι οι συνδέσεις μεταξύ C και Rust μπορούν να εισαγάγουν πρόσθετες εξαρτήσεις που εμποδίζουν τη συντονισμένη ανάπτυξη.
Αξίζει να σημειωθεί ότι η συζήτηση δεν περιορίστηκε σε τεχνικές πτυχές. Ο Héctor Martín πρότεινε ότι η λύση θα μπορούσε να είναι η υιοθέτηση της σύνδεσης απευθείας μέσω του Linus Torvalds, παρακάμπτοντας τον συντηρητή του υποσυστήματος DMA. Ωστόσο, αυτή η προσέγγιση θα μπορούσε να διαταράξει την παραδοσιακή ιεραρχική δομή ανάπτυξης πυρήνα.
Ο Hector επισήμανε επίσης συμπεριφορές που θεωρούσε τοξικές, αναφέροντας μάλιστα ότι η κριτική του Hellwig, στην οποία συνέκρινε τον Rust με «καρκινικό όγκο», συνέβαλε στην απογοήτευσή του και, τελικά, στην απόφασή του να παραιτηθεί από τη θέση του συντηρητή της πλατφόρμας ARM/Apple στον κύριο πυρήνα. Παρά την παραίτησή του, η πλατφόρμα θα συνεχίσει να υποστηρίζεται από τον Sven Peter, ο οποίος έχει δεσμευτεί να συνεχίσει τη συντήρησή της.
Ο Linus Torvalds συμμετείχε στη συζήτηση , τονίζοντας ότι η διαδικασία ανάπτυξης του πυρήνα , αν και ατελής, λειτουργεί και ότι οι τεχνικές συζητήσεις θα πρέπει να επικεντρωθούν στις ενημερώσεις κώδικα (patches) , χωρίς να επηρεάζονται από εξωτερικές πιέσεις ή παρενόχληση στα μέσα κοινωνικής δικτύωσης. Για τον Torvalds , η εστίαση θα πρέπει να είναι καθαρά τεχνική, αφήνοντας στην άκρη τις προσωπικές διαφωνίες.
Η άρνηση του Christoph Hellwig να ενσωματώσει Rust wrappers στο υποσύστημα DMA υπογραμμίζει τις εντάσεις μεταξύ των προγραμματιστών πυρήνα Linux. Ενώ ορισμένοι βλέπουν το Rust ως ένα ισχυρό εργαλείο για τη δημιουργία νέων έργων, άλλοι φοβούνται ότι η ενσωμάτωση πολλών γλωσσών θα μπορούσε να εμποδίσει τη συντηρησιμότητα και τη συνέπεια της βάσης κώδικα.
Η κατάσταση παραμένει αντικείμενο συζήτησης και θα μπορούσε να έχει σημαντικές επιπτώσεις στο μέλλον της υποστήριξης του Rust στον πυρήνα. Σε κάθε περίπτωση, αυτό που είναι σαφές είναι ότι η κοινότητα ανάπτυξης Linux συνεχίζει να αντιμετωπίζει σύνθετες προκλήσεις, όπου οι τεχνικές αποφάσεις πρέπει να εξεταστούν προσεκτικά για να διασφαλιστεί η μακροπρόθεσμη βιωσιμότητα του έργου.