Xen Hypervisor Toolkit Rework Initiative στο Rust

Οι προγραμματιστές της πλατφόρμας XCP-ng, που αναπτύχθηκε υπό την πτέρυγα του έργου Xen, δημοσίευσαν ένα σχέδιο για τη δημιουργία ενός αντικαταστάτη για διάφορα στοιχεία της στοίβας λογισμικού Xen στη γλώσσα Rust. Δεν υπάρχουν σχέδια για επανεπεξεργασία του ίδιου του hypervisor Xen· η εργασία επικεντρώνεται κυρίως στην επανεπεξεργασία μεμονωμένων στοιχείων της εργαλειοθήκης.

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

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

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

Η ανάγκη επανεπεξεργασίας των εργαλείων επισκεπτών Linux (xe-guest-utilities) προκαλείται από προβλήματα με την ποιότητα του κώδικα και την ανάπτυξη εκτός του Xen Project υπό τον έλεγχο του Cloud Software Group, γεγονός που καθιστά δύσκολη τη συσκευασία πακέτων και την επιρροή της κοινότητας στην ανάπτυξη. Σκοπεύουν να δημιουργήσουν μια νέα έκδοση της εργαλειοθήκης (xen-guest-agent) εντελώς από την αρχή, καθιστώντας την όσο το δυνατόν πιο απλή και διαχωρίζοντας τη λογική του πράκτορα από τις βιβλιοθήκες. Αποφασίστηκε να επανασχεδιαστεί η διαδικασία παρασκηνίου για τη συλλογή μετρήσεων (rrdd) καθώς είναι συμπαγής και ξεχωριστή, γεγονός που απλοποιεί τα πειράματα σχετικά με τη χρήση μιας νέας γλώσσας κατά την ανάπτυξη.

Το επόμενο έτος, ενδέχεται να ξεκινήσουν οι εργασίες για την ανάπτυξη του στοιχείου xenopsd-ng στο Rust, το οποίο θα βελτιστοποιήσει την αρχιτεκτονική της στοίβας λογισμικού. Η κύρια ιδέα είναι να συγκεντρωθεί η εργασία με API χαμηλού επιπέδου σε ένα στοιχείο και να οργανωθεί η παροχή όλων των API υψηλού επιπέδου σε άλλα στοιχεία της στοίβας μέσω αυτού.

Τρέχουσα αρχιτεκτονική στοίβας Xen:

Xen Hypervisor Toolkit Rework Initiative στο Rust

Προτεινόμενη αρχιτεκτονική στοίβας Xen βασισμένη σε xenopsd-ng:

Xen Hypervisor Toolkit Rework Initiative στο Rust


Πηγή: opennet.ru

Προσθέστε ένα σχόλιο