Το έργο Asterinas κυκλοφόρησε την έκδοση 0.19, έναν πυρήνα γραμμένο σε Rust και σχεδιασμένο για χρήση σε λειτουργικά συστήματα γενικής χρήσης. Ο πυρήνας παρέχει ένα ABI (Application Binary Interface) συμβατό με τον πυρήνα. Linux και μπορεί να χρησιμοποιηθεί αντ' αυτού. Η διανομή Asterinas NixOS, η οποία συνδυάζει τον πυρήνα Asterinas με το περιβάλλον συστήματος NixOS, αναπτύσσεται παράλληλα. Ο κώδικας του έργου βρίσκεται υπό ανάπτυξη από το 2022 και διανέμεται υπό την MPL (Mozilla Public License).
Αυτή τη στιγμή, υπάρχουν περισσότερες από 240 κλήσεις συστήματος που έχουν υλοποιηθεί στον πυρήνα. LinuxΗ διανομή Asterinas NixOS έχει επαληθευτεί ότι λειτουργεί πάνω από τον πυρήνα Asterinas με πάνω από 100 πακέτα NixOS. Τα υποστηριζόμενα πακέτα περιλαμβάνουν: Xfce, Firefox, bash, systemd, Podman, QEMU, rsync, Apache httpd, nginx, SQLite, Redis, Clang, GCC, Go, Lua, Node.js, OpenJDK, Perl, PHP, Python, Ruby, Rust, Git, FFmpeg, PyTorch, TensorFlow, Ollama και Codex.
Ο πυρήνας παρέχει πλήρη υποστήριξη για την αρχιτεκτονική x86-64, μερική υποστήριξη για ARM64, RISC-V 64 και x86-64 με απομόνωση βασισμένη στο Intel TDX, καθώς και αρχική υποστήριξη για την αρχιτεκτονική LoongArch 64. Οι τομείς εφαρμογής προτεραιότητας περιλαμβάνουν συστήματα που βασίζονται σε Linux ABI, αλλά απαιτούν υψηλότερο επίπεδο ασφάλειας. Για παράδειγμα, το Asterinas προτείνεται για χρήση στη δημιουργία ενός ασφαλούς περιβάλλοντος συστήματος. εικονικές μηχανές, για την απομόνωση των οποίων χρησιμοποιούνται τεχνολογίες όπως ARM CCA, AMD SEV και Intel TDX, καθώς και από την πλευρά του συστήματος υποδοχής, η οποία διασφαλίζει την εκτόξευση κοντέινερ.
Για να μειώσει την πιθανότητα σφαλμάτων μνήμης, που αποτελούν την κύρια πηγή των πιο επικίνδυνων τρωτών σημείων, το Asterinas χρησιμοποιεί τη γλώσσα Rust και περιορισμένη χρήση μη ασφαλών μπλοκ. Ο πυρήνας κατασκευάζεται χρησιμοποιώντας την αρχιτεκτονική framekernel, η οποία επιχειρεί να συνδυάσει τις δυνατότητες απομόνωσης των μικροπυρήνων με την αποτελεσματικότητα των μονολιθικών πυρήνων.
Τα στοιχεία του πυρήνα στο Asterinas βρίσκονται σε έναν κοινόχρηστο χώρο διευθύνσεων και η ασφάλεια επιτυγχάνεται μέσω του λογικού διαχωρισμού του ασφαλούς κώδικα από τον κώδικα που θα μπορούσε ενδεχομένως να είναι ευάλωτος. Ο πυρήνας χωρίζεται σε δύο μέρη, και τα δύο γραμμένα σε Rust: OS Framework και OS Services. Οι OS Services απαγορεύουν τη χρήση μη ασφαλών μπλοκ και όλες οι λειτουργίες χαμηλού επιπέδου που απαιτούν εκτέλεση κώδικα σε μη ασφαλή μπλοκ μετακινούνται στο OS Framework και είναι προσβάσιμες μόνο μέσω ενός API υψηλού επιπέδου. Όλες οι κλήσεις συστήματος, τα συστήματα αρχείων και τα προγράμματα οδήγησης υλοποιούνται σε επίπεδο OS Services και δεν μπορούν να περιλαμβάνουν μη ασφαλή μπλοκ.
Για την ανάπτυξη υπηρεσιών συστήματος και μονάδων πυρήνα, παρέχεται το OSDK (Operating System Development Kit), το οποίο παρέχει το βοηθητικό πρόγραμμα cargo-osdk για τη δημιουργία, την κατασκευή, τον έλεγχο και την εκτέλεση στοιχείων του λειτουργικού συστήματος. Οι προγραμματιστές μπορούν επίσης να έχουν πρόσβαση στο σύνολο OSTD (Operating System Standard Library), το οποίο περιλαμβάνει μια έκδοση των βιβλιοθηκών προτύπων Rust (crate std) προσαρμοσμένες για χρήση σε στοιχεία του λειτουργικού συστήματος.
Μεταξύ των αλλαγών στο Asterinas 0.19:
- Το υποσύστημα DRM (Direct Rendering Manager), η συσκευή /dev/dri, η διεπαφή KMS (kernel mode setting) και το πρόγραμμα οδήγησης "modesetting" έχουν υλοποιηθεί, επιτρέποντας την εκκίνηση μιας τυπικής στοίβας γραφικών που βασίζεται στον X.Org Server και το Mesa, αντί του προηγουμένως χρησιμοποιούμενου προγράμματος οδήγησης fbdev, το οποίο χρησιμοποιεί ένα framebuffer.
- Έχει προστεθεί υποστήριξη για την αρχιτεκτονική AArch64 (ARM64), η οποία πλέον λειτουργεί ως η κύρια αρχιτεκτονική ανάπτυξης παράλληλα με την x86-64. Ένα δεύτερο επίπεδο υποστήριξης έχει υλοποιηθεί για την AArch64, εξασφαλίζοντας βασική λειτουργικότητα, συνεχείς δοκιμές ενσωμάτωσης και μερική κάλυψη δοκιμών.
- Συνεχίστηκαν οι εργασίες για την προσαρμογή του Asterinas για εκτέλεση ως φιλοξενούμενο σύστημα σε Kata Containers και Confidential Containers. Προτάθηκε μια νέα υλοποίηση Overlayfs που περνάει με επιτυχία τις τυπικές σουίτες δοκιμών συστήματος αρχείων πυρήνα. Linux και xfstests. Έχει υλοποιηθεί ένα νέο API τοποθέτησης. Ο κώδικας virtio-fs έχει σταθεροποιηθεί. Έχει προστεθεί υποστήριξη πρωτοκόλλου.
άμεση εκκίνηση, που χρησιμοποιείται στα QEMU, Cloud Hypervisor και Firecracker. Οι χρόνοι εκκίνησης έχουν επιταχυνθεί. εικονικές μηχανές, η μνήμη του οποίου είναι κρυπτογραφημένη με την τεχνολογία Intel TDX. - Το πλαίσιο OSTD (Operating System Standard Library - Βιβλιοθήκη Προτύπων Λειτουργικού Συστήματος) υλοποιεί ένα βασικό API για τη δημιουργία μινιμαλιστικών hypervisors βασισμένων στο Intel VMX.
- Προστέθηκε υποστήριξη για το μοντέλο ανάπτυξης προγραμμάτων οδήγησης Rust. Προστέθηκε ένα στοιχείο aster-device με λειτουργικότητα που θυμίζει στοιχεία πυρήνα. Linux με βασικές αρχές και αφαιρέσεις για την ανάπτυξη προγραμμάτων οδήγησης, αλλά γραμμένο σε Rust χωρίς μη ασφαλή κώδικα.
- Η αυτο-φιλοξενία είναι πλέον δυνατή - μπορείτε πλέον να δημιουργήσετε τον πυρήνα Asterinas από ένα περιβάλλον με τον πυρήνα Asterinas και τα πακέτα NixOS.
Πηγή: opennet.ru
