Το πρωτότυπο του εγχώριου OS Phantom που βασίζεται στο Genode θα είναι έτοιμο πριν από το τέλος του χρόνου

Ο Dmitry Zavalishin μίλησε για το έργο μεταφοράς της εικονικής μηχανής του λειτουργικού συστήματος Phantom για να λειτουργήσει στο περιβάλλον λειτουργικού συστήματος μικροπυρήνα Genode. Η συνέντευξη σημειώνει ότι η κύρια έκδοση του Phantom είναι ήδη έτοιμη για πιλοτικά έργα και η έκδοση που βασίζεται στο Genode θα είναι έτοιμη για χρήση στο τέλος του έτους. Ταυτόχρονα, μόνο ένα λειτουργικό εννοιολογικό πρωτότυπο έχει ανακοινωθεί μέχρι στιγμής στον ιστότοπο του έργου, του οποίου η σταθερότητα και η λειτουργικότητα δεν έχουν φτάσει σε επίπεδο κατάλληλο για βιομηχανική χρήση, και μεταξύ των πλησιέστερων σχεδίων είναι η διαμόρφωση μιας άλφα έκδοσης. κατάλληλο για πειράματα από τρίτους προγραμματιστές.

Ο κώδικας του έργου διανέμεται με την άδεια LGPL, αλλά η τελευταία αλλαγή στο κύριο αποθετήριο χρονολογείται από τον Νοέμβριο του 2019. Η δημόσια δραστηριότητα που σχετίζεται με το έργο συγκεντρώνεται στο αποθετήριο με ένα πιρούνι για το Genode, το οποίο από τον Δεκέμβριο του 2020 διατηρεί ο Anton Antonov, φοιτητής από το Πανεπιστήμιο Innopolis.

Από τις αρχές της δεκαετίας του 2000, το λειτουργικό σύστημα Phantom αναπτύχθηκε ως προσωπικό έργο του Dmitry Zavalishin και από το 2010 μεταφέρθηκε υπό την πτέρυγα της εταιρείας Digital Zone που δημιουργήθηκε από τον Dmitry. Το σύστημα είναι αξιοσημείωτο για την εστίασή του στην υψηλή αξιοπιστία και τη χρήση της έννοιας "όλα είναι ένα αντικείμενο" αντί για "όλα είναι ένα αρχείο", η οποία εξαλείφει τη χρήση αρχείων λόγω της διατήρησης της κατάστασης μνήμης και ενός συνεχούς κύκλου δουλειά. Οι εφαρμογές στο Phantom δεν τερματίζονται, αλλά μόνο παύονται και συνεχίζονται από εκεί που σταμάτησαν. Όλες οι μεταβλητές και οι δομές δεδομένων μπορούν να αποθηκευτούν για όσο χρόνο χρειάζεται η εφαρμογή και ο προγραμματιστής δεν χρειάζεται να φροντίσει ιδιαίτερα για την αποθήκευση των δεδομένων.

Οι εφαρμογές στο Phantom μεταγλωττίζονται σε bytecode, ο οποίος εκτελείται σε μια εικονική μηχανή που βασίζεται σε στοίβα, παρόμοια με την εικονική μηχανή Java. Η εικονική μηχανή παρέχει διαρκή μνήμη εφαρμογής - το σύστημα ξεπλένει περιοδικά στιγμιότυπα της κατάστασης της εικονικής μηχανής σε μόνιμα μέσα. Μετά τον τερματισμό λειτουργίας ή τη συντριβή, η εργασία μπορεί να συνεχιστεί ξεκινώντας από το τελευταίο στιγμιότυπο αποθηκευμένης μνήμης. Τα στιγμιότυπα δημιουργούνται ασύγχρονα και χωρίς αναστολή της εικονικής μηχανής, αλλά ένα στιγμιότυπο καταγράφει ένα κομμάτι μιας χρήσης, σαν να σταμάτησε η εικονική μηχανή, να αποθηκεύτηκε στο δίσκο και να ξεκινήσει ξανά.

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

Για την εφαρμογή, η εργασία φαίνεται συνεχής και δεν εξαρτάται από επανεκκινήσεις του λειτουργικού συστήματος, σφάλματα και τερματισμούς λειτουργίας του υπολογιστή. Το μοντέλο προγραμματισμού για το Phantom συγκρίνεται με τη λειτουργία ενός διακομιστή εφαρμογών που δεν σταματά ποτέ για μια γλώσσα προγραμματισμού αντικειμένων. Η μεταφορά προγραμμάτων Java για Phantom θεωρείται ως ένας από τους κύριους τρόπους ανάπτυξης εφαρμογών, κάτι που διευκολύνεται από την ομοιότητα της εικονικής μηχανής Phantom με το JVM. Εκτός από τον μεταγλωττιστή bytecode για τη γλώσσα Java, το έργο σχεδιάζει τη δημιουργία μεταγλωττιστών για Python και C#, καθώς και την υλοποίηση ενός μεταφραστή από τον ενδιάμεσο κώδικα WebAssembly.

Για την εκτέλεση λειτουργιών που απαιτούν υψηλή απόδοση, όπως επεξεργασία βίντεο και ήχου, είναι δυνατή η εκτέλεση δυαδικών αντικειμένων με εγγενή κώδικα σε ξεχωριστά νήματα (το LLVM χρησιμοποιείται για τη δημιουργία δυαδικών αντικειμένων). Για πρόσβαση σε υπηρεσίες πυρήνα χαμηλού επιπέδου, ορισμένες κλάσεις VM («εσωτερικές» κλάσεις) υλοποιούνται σε επίπεδο πυρήνα λειτουργικού συστήματος. Για την εκτέλεση εφαρμογών Linux, παρέχεται ένα επίπεδο POSIX που εξομοιώνει τις κλήσεις που είναι απαραίτητες για τη λειτουργία των διεργασιών Unix (η επιμονή για εφαρμογές στο επίπεδο POSIX δεν παρέχεται ακόμη).

Το πρωτότυπο του εγχώριου OS Phantom που βασίζεται στο Genode θα είναι έτοιμο πριν από το τέλος του χρόνου

Το παραδοσιακό Phantom OS, εκτός από την εικονική μηχανή, περιλαμβάνει τον δικό του πυρήνα με την υλοποίηση νημάτων, έναν διαχειριστή μνήμης, έναν συλλέκτη απορριμμάτων, μηχανισμούς συγχρονισμού, ένα σύστημα I/O και προγράμματα οδήγησης για εργασία με εξοπλισμό, γεγονός που περιπλέκει σημαντικά την το έργο σε ετοιμότητα για ευρεία χρήση. Ξεχωριστά, αναπτύσσονται στοιχεία με στοίβα δικτύου, υποσύστημα γραφικών και διεπαφή χρήστη. Αξίζει να σημειωθεί ότι το υποσύστημα γραφικών και ο διαχειριστής παραθύρων λειτουργούν σε επίπεδο πυρήνα.

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

Η χρήση του Genode θα καταστήσει δυνατή τη χρήση ήδη δοκιμασμένων μικροπυρήνων και προγραμμάτων οδήγησης, καθώς και τη μεταφορά προγραμμάτων οδήγησης στο χώρο του χρήστη (στην τρέχουσα μορφή τους, τα προγράμματα οδήγησης είναι γραμμένα σε C και εκτελούνται σε επίπεδο πυρήνα Phantom). Συγκεκριμένα, θα είναι δυνατή η χρήση του μικροπυρήνα seL4, ο οποίος έχει περάσει τη μαθηματική επαλήθευση της αξιοπιστίας, επιβεβαιώνοντας ότι η υλοποίηση συμμορφώνεται πλήρως με τις προδιαγραφές που καθορίζονται στην επίσημη γλώσσα. Εξετάζεται η δυνατότητα προετοιμασίας μιας παρόμοιας απόδειξης αξιοπιστίας για την εικονική μηχανή Phantom, η οποία θα επιτρέψει την επαλήθευση ολόκληρου του περιβάλλοντος του λειτουργικού συστήματος.

Ο κύριος τομέας εφαρμογής του λιμένα που βασίζεται στο Genode είναι η ανάπτυξη εφαρμογών για διάφορες βιομηχανικές και ενσωματωμένες συσκευές. Προς το παρόν, έχει ήδη προετοιμαστεί ένα σύνολο αλλαγών για την εικονική μηχανή και έχουν προστεθεί δεσμεύσεις που τρέχουν πάνω από το Genode για τα στοιχεία persistence του πυρήνα και τις κύριες διεπαφές χαμηλού επιπέδου. Σημειώνεται ότι η εικονική μηχανή Phantom μπορεί ήδη να λειτουργήσει σε περιβάλλον Genode 64-bit, αλλά το VM δεν έχει ακόμη εφαρμοστεί σε λειτουργία persistence, το υποσύστημα προγράμματος οδήγησης πρέπει να επεξεργαστεί εκ νέου και τα στοιχεία με μια στοίβα δικτύου και ένα υποσύστημα γραφικών έχουν να προσαρμοστεί για το Genode.

Το πρωτότυπο του εγχώριου OS Phantom που βασίζεται στο Genode θα είναι έτοιμο πριν από το τέλος του χρόνου
Το πρωτότυπο του εγχώριου OS Phantom που βασίζεται στο Genode θα είναι έτοιμο πριν από το τέλος του χρόνου
Το πρωτότυπο του εγχώριου OS Phantom που βασίζεται στο Genode θα είναι έτοιμο πριν από το τέλος του χρόνου


Πηγή: opennet.ru

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