Kerla: ένας νέος πυρήνας γραμμένος σε Rust και συμβατός με το Linux ABI

Πρόσφατα κυκλοφόρησαν πληροφορίες για το έργο Kerla, το οποίο αναπτύσσεται ως πυρήνας λειτουργικού συστήματος γραμμένο στη γλώσσα Rust. Ο κώδικας διανέμεται υπό τις άδειες Apache 2.0 και MIT. Το έργο αναπτύσσεται από τον Ιάπωνα προγραμματιστή Seiya Nuta, γνωστό για τη δημιουργία του λειτουργικού συστήματος μικροπυρήνα Resea, γραμμένο σε γλώσσα C.

Ο νέος πυρήνας στοχεύει αρχικά εξασφάλιση συμβατότητας με τον πυρήνα του Linux σε επίπεδο ABI, που θα επιτρέψει σε μη τροποποιημένα δυαδικά αρχεία που έχουν δημιουργηθεί για Linux να εκτελούνται σε περιβάλλον που βασίζεται στο Kerla.

Σχετικά με την Κεράλ

Το Kerla είναι ένας πυρήνας μονολιθικού λειτουργικού συστήματος δημιουργήθηκε από την αρχή στο Rust. Στο τρέχον στάδιο ανάπτυξης, Kerla μπορεί να εκτελεστεί μόνο σε συστήματα με αρχιτεκτονική x86_64 και υλοποιεί βασικές κλήσεις συστήματος όπως εγγραφή, stat, mmap, σωλήνα και δημοσκόπηση, υποστηρίζει σήματα, ανώνυμους σωλήνες και διακόπτες περιβάλλοντος. Κλήσεις όπως fork, wait4 και execve παρέχουν τον έλεγχο των διεργασιών. Υπάρχει υποστήριξη για tty και ψευδο-τερματικά (pty). Μεταξύ των συστημάτων αρχείων initramfs (που χρησιμοποιούνται για την προσάρτηση του root FS), τα tmpfs και devfs εξακολουθούν να υποστηρίζονται.

Παρέχεται επίσης μια στοίβα δικτύου με υποστήριξη για υποδοχές TCP και UDP, με βάση τη βιβλιοθήκη smoltcp. Ο προγραμματιστής έχει ετοιμάσει ένα περιβάλλον εκκίνησης που λειτουργεί σε QEMU ή Firecracker VM με τον ελεγκτή virtio-net, στο οποίο μπορείτε ήδη να συνδεθείτε μέσω SSH. Το Musl χρησιμοποιείται ως βιβλιοθήκη συστήματος και το BusyBox ως βοηθητικό πρόγραμμα χρήστη. Βασισμένο στο Docker, έχει ετοιμαστεί ένα σύστημα κατασκευής που σας επιτρέπει να δημιουργήσετε τη δική σας εκκίνηση initramfs με τον πυρήνα Kerla.

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

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

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

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

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

«Κάντε κάποια δουλειά για να δημιουργήσετε ασφαλείς συνδέσμους και, στη συνέχεια, γράψτε τον πρόσθετο κώδικα στο Rust και θα μπορείτε ακόμα να απολαύσετε αυτόν τον ώριμο κώδικα. (Αυτό κάνει το Linux, γίνονται προσπάθειες για να προστεθεί η δυνατότητα εγγραφής μιας μονάδας πυρήνα στο Rust), πρόσθεσε. Οι προγραμματιστές Linux διερευνούν τις δυνατότητες σύνταξης ορισμένων νέων μονάδων πυρήνα χρησιμοποιώντας τη γλώσσα Rust για περίπου τρία χρόνια. Αυτό οδήγησε στο έργο «Rust for Linux».

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


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

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

*

*

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