Ο Rust δεν εξαιρέθηκε από τις κριτικές του Linus Torvalds

Πριν λίγες εβδομάδες τα νέα για κάποιες εφαρμογές που έγιναν στο ο κλάδος linux-next, ο οποίος περιλαμβάνει ένα αρχικό σύνολο στοιχείων για την ανάπτυξη προγραμμάτων οδήγησης συσκευών στη γλώσσα Rust.

Αυτή η τεκμηρίωση δημοσιεύθηκε ξεχωριστά σχετικά με τη χρήση του Rust στον πυρήνα του Linux και ένα παράδειγμα μιας μονάδας πυρήνα με πρόγραμμα οδήγησης συσκευής χαρακτήρων στη γλώσσα Rust. Ο κωδικός προστέθηκε από τον Stephen Rothwell, συντηρητή του υποκαταστήματος.

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

Τα μεγαλύτερα παράπονα προκλήθηκαν από δυναμικό διαφυγής "Πανικός αποτυχίας χρόνου εκτέλεσης" σε λάθος καταστάσεις, Για παράδειγμα, σε κατάσταση εκτός μνήμης, όταν οι λειτουργίες εκχώρησης δυναμικής μνήμης, συμπεριλαμβανομένων των λειτουργιών του πυρήνα, ενδέχεται να αποτύχουν.

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

Ένα άλλο πρόβλημα ήταν οι προσπάθειες χρήσης κυμαινόμενων σημείων ή τύπων 128 bit, που δεν είναι έγκυρα για περιβάλλοντα όπως ο πυρήνας Linux.

Μπορεί να μην καταλαβαίνετε τις συνέπειες του πότε μπορεί να συμβεί, οπότε ίσως
είναι λιγότερο πρόβλημα από ό, τι νομίζω ότι είναι, αλλά ουσιαστικά
Νομίζω ότι εάν οποιαδήποτε χαρτογράφηση σκουριάς μπορεί να προκαλέσει πανικό, αυτό είναι απλά
_ βασικά_ δεν είναι αποδεκτή.

Αντιστοίχιση αστοχιών σε μη βασικό ελεγκτή ή κώδικα, και δηλαδή για
ορισμός, όλος ο νέος κωδικός Rust, δεν μπορεί ποτέ να προκαλέσει
πανικός έγκυρα. Το ίδιο ισχύει για «ω, σε ορισμένες περιπτώσεις δεν προσπάθησα να χρησιμοποιήσω το
128-bit ακέραιοι ή κυμαινόμενο σημείο ».

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

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

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

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

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

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

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

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

Τέλος, αν θέλετε να μάθετε περισσότερα για αυτό, μπορείτε να ελέγξετε τις λεπτομέρειες Στον ακόλουθο σύνδεσμο.


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: AB Internet Networks 2008 SL
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.

  1.   Miguel Rodríguez dijo

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

  2.   Σέτα dijo

    Κατά καιρούς ξαναδιαβάζω άρθρα του Linux Adictos Αλλά μου παίρνει πολύ λίγο χρόνο για να απελπίζομαι όταν βλέπω ότι παρά το πολύ καλό περιεχόμενο, το τελικό αποτέλεσμα καταστρέφεται με φρικτή ορθογραφία.
    Θα είναι τόσο δύσκολη η ορθογραφία και η γραμματική;
    Κρίμα!
    Χαμογελάστε!