Ένας προγραμματιστής προσφέρει μια εκ νέου υλοποίηση του GNU Coreutils στο Rust 

gnu-coreutils-rust

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

Ο Sylvestre Ledru άρχισε να εργάζεται για την επανεφαρμογή του GNU Coreutils στο Rust κατά τη διάρκεια της πανδημίας COVID-19 και το παρουσίασε την περασμένη εβδομάδα κατά την έκδοση του 2023 του FOSDEM. Η προσπάθεια που ονομάζεται uutils είναι πλέον συσκευασμένη από πολλές διανομές Linux και χρησιμοποιείται επίσης από ένα διάσημο κοινωνικό δίκτυο μέσω του έργου Yocto.

Οι συγκρίσεις των γλωσσών Rust και C++ έχουν ένα κοινό νήμα: τονίζουν την υπεροχή του Rust έναντι της C++ όσον αφορά την ασφάλεια της μνήμης. Ο επεξεργαστής RisingWave εξηγεί γιατί ξανάγραψε το εγγενές Cloud DBMS του από την αρχή στο Rust μετά την αποχώρησή του από το έργο C++.

«Το Rust διασφαλίζει τη μνήμη και την ασφάλεια του νήματος κατά το χρόνο μεταγλώττισης, εισάγοντας κανόνες ιδιοκτησίας. Ξεπερνά το RAII, έναν μηχανισμό διαχείρισης μνήμης που χρησιμοποιείται συνήθως στη C++. Έχει δύο πλεονεκτήματα. Το πρώτο είναι προφανές: μόλις ο μεταγλωττιστής Rust επικυρώσει το πρόγραμμά μας, δεν θα έχουμε σφάλματα τμήματος ή συνθήκες αγώνα κατά το χρόνο εκτέλεσης, κάτι που θα απαιτούσε δεκάδες ώρες εντοπισμού σφαλμάτων, ειδικά σε μια εξαιρετικά ταυτόχρονη βάση κώδικα και ως επί το πλείστον ασύγχρονη. Το δεύτερο είναι πιο λεπτό: ο μεταγλωττιστής του Rust απλώς περιορίζει τους τύπους αστοχιών, γεγονός που μειώνει τα στενά ένθετα αποσπάσματα κώδικα που μπορούν να προκαλέσουν μια τέτοια εσφαλμένη συμπεριφορά. Η αναπαραγωγή σφαλμάτων βελτιώνεται σημαντικά με τη χρήση ντετερμινιστικής εκτέλεσης. »

Το GNU Coreutils είναι ένα πακέτο από το έργο GNU που περιέχει πολλά βασικά εργαλεία που χρειάζονται για λειτουργικά συστήματα που μοιάζουν με Unix: cp (αντιγραφή αρχείου ή καταλόγου), mkdir (δημιουργία καταλόγου) κ.λπ. Ένας προγραμματιστής προσφέρει μια εκ νέου υλοποίηση στη γλώσσα Rust.

Ένας από τους στόχους: να γίνει το πακέτο χρησιμοποιήσιμο σε άλλα λειτουργικά συστήματα: Windows, macOS, Android, FreeBSD κ.λπ. Η κίνηση έρχεται για να αναζωογονήσει τη συζήτηση σχετικά με το εάν θα συνεχιστεί η έναρξη νέων έργων σε C και C++ ή απλά να επιλέξουμε τη γλώσσα Rust.

«Η γλώσσα Rust προσφέρει εγγυήσεις ασφαλείας από προεπιλογή όταν πρόκειται για διαχείριση μνήμης. Αυτό δεν συμβαίνει στην περίπτωση της C και της C++, η χρήση των οποίων στο Mozilla είναι η αιτία προβλημάτων ασφάλειας της μνήμης», τονίζει ο Sylvestre Ledru.

Ωστόσο, ο Bjarne Stroustrup διαφωνεί ότι οι συγκρίσεις μεταξύ Rust και C++ περιορίζουν την έννοια της ασφάλειας του λογισμικού σε αυτήν της ασφάλειας της μνήμης:

«Δεν υπάρχει ενιαίος ορισμός της έννοιας της «ασφάλειας» και μπορούμε να επιτύχουμε μια ποικιλία τύπων ασφάλειας μέσω ενός συνδυασμού στυλ προγραμματισμού, βιβλιοθηκών υποστήριξης και αξιοποιώντας τη στατική ανάλυση. Ο Bjarne Stroustrup προτείνει λοιπόν ότι το τι μπορεί να αποκτηθεί από την C++ όσον αφορά την ασφάλεια του λογισμικού εξαρτάται, μεταξύ άλλων, από τον προγραμματιστή και, ειδικότερα, από τη γνώση των εργαλείων που προσφέρει η γλώσσα, την κυριαρχία του στον μεταγλωττιστή κ.λπ.

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

Ομάδα Google, του οποίου η δημοσίευση εμφανίστηκε το τρίτο τρίμηνο του προηγούμενου έτους, κατέληξε στο συμπέρασμα του ότι το σύστημα που μοιάζει με C++ δεν προσφέρεται για μια τέτοια άσκηση. Και στο ότι μπορεί να επιτευχθεί ασφάλεια μνήμης στη C++ με χειριστήρια κατά την εκτέλεση του προγράμματος. Με άλλα λόγια, Είναι με αργό κώδικα C++ που είναι δυνατό να επιτευχθεί ένα επίπεδο ασφάλειας ισοδύναμο με αυτό του Rust.

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


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

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

*

*

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