Κυκλοφορία του λειτουργικού συστήματος Redox OS 0.7 γραμμένο σε Rust

Μετά από ενάμιση χρόνο ανάπτυξης, δημοσιεύτηκε η κυκλοφορία του λειτουργικού συστήματος Redox 0.7, που αναπτύχθηκε χρησιμοποιώντας τη γλώσσα Rust και την έννοια του μικροπυρήνα. Οι εξελίξεις του έργου διανέμονται με τη δωρεάν άδεια MIT. Για τη δοκιμή του Redox OS, προσφέρεται εγκατάσταση και ζωντανές εικόνες μεγέθους 75 MB. Τα συγκροτήματα δημιουργούνται για την αρχιτεκτονική x86_64 και είναι διαθέσιμα για συστήματα με UEFI και BIOS.

Κατά την προετοιμασία της νέας έκδοσης, η κύρια εστίαση ήταν να διασφαλιστεί ότι λειτουργεί σε πραγματικό υλικό. Βασικές καινοτομίες:

  • Έχει ξαναγραφεί πλήρως ο bootloader, στον οποίο ο κώδικας εκκίνησης σε συστήματα με BIOS και UEFI είναι ενοποιημένος και κυρίως γραμμένος σε Rust. Η αλλαγή του bootloader έχει επεκτείνει σημαντικά το εύρος του υποστηριζόμενου υλικού.
  • Εκτός από τις διορθώσεις σφαλμάτων, έχει γίνει δουλειά στον πυρήνα για τη βελτίωση της απόδοσης και την επέκταση της υποστήριξης υλικού. Οι μεταβλητές που σχετίζονται με την CPU έχουν μετατραπεί για χρήση του καταχωρητή GS. Παρέχεται αντανάκλαση (χαρτογράφηση) όλης της φυσικής μνήμης, διακόπτεται η χρήση σελίδων αναδρομικής μνήμης. Ο κώδικας συναρμολόγησης σε ενσωματωμένα ένθετα έχει ξαναγραφτεί για να βελτιωθεί η συμβατότητα με μελλοντικές εκδόσεις μεταγλωττιστή.
  • Προστέθηκε αρχική υποστήριξη για την αρχιτεκτονική AArch64.
  • Έχει γίνει μια μετάβαση στην επεξεργασία όλων των διαδρομών αρχείων σε κωδικοποίηση UTF-8.
  • Ο κώδικας για την εργασία με την προδιαγραφή ACPI AML (ACPI Machine Language) - uefi.org έχει μετακινηθεί από τον πυρήνα στη διαδικασία acpid παρασκηνίου που εκτελείται στο χώρο χρήστη.
  • Τα περιεχόμενα του Initfs έχουν μετακινηθεί σε νέο αρχείο, διευκολύνοντας τη δημιουργία πακέτων.
  • Το σύστημα αρχείων RedoxFS έχει ξαναγραφτεί και έχει μετατραπεί σε χρήση του μηχανισμού CoW (Copy-on-Write), στον οποίο οι αλλαγές δεν αντικαθιστούν τις πληροφορίες, αλλά αποθηκεύονται σε μια νέα θέση, γεγονός που έχει βελτιώσει σημαντικά την αξιοπιστία. Οι νέες δυνατότητες του RedoxFS περιλαμβάνουν υποστήριξη για ενημερώσεις συναλλαγών, κρυπτογράφηση δεδομένων χρησιμοποιώντας τον αλγόριθμο AES, καθώς και έλεγχο ταυτότητας δεδομένων και μεταδεδομένων με ψηφιακές υπογραφές. Εξασφαλίζεται η κοινή χρήση του κώδικα FS στο σύστημα και στο bootloader.
  • Η βελτίωση της τυπικής βιβλιοθήκης C Relibc που αναπτύχθηκε από το έργο, ικανή να λειτουργεί όχι μόνο στο Redox, αλλά και σε διανομές που βασίζονται στον πυρήνα του Linux, συνεχίστηκε. Οι αλλαγές διευκόλυναν τη μεταφορά διαφόρων προγραμμάτων στο Redox και έλυσαν προβλήματα με πολλά προγράμματα και βιβλιοθήκες γραμμένα σε C.
  • Έχει ετοιμαστεί μια έκδοση του μεταγλωττιστή rustc που μπορεί να εκτελεστεί σε Redox. Οι υπόλοιπες εργασίες περιλαμβάνουν τη βελτιστοποίηση της απόδοσης και την προσαρμογή του διαχειριστή πακέτων φορτίου για εργασία στο περιβάλλον Redox.

Κυκλοφορία του λειτουργικού συστήματος Redox OS 0.7 γραμμένο σε Rust

Το λειτουργικό σύστημα έχει αναπτυχθεί σύμφωνα με τη φιλοσοφία Unix και δανείζεται μερικές ιδέες από το SeL4, το Minix και το Plan 9. Το Redox χρησιμοποιεί την έννοια του μικροπυρήνα, στον οποίο παρέχεται μόνο η αλληλεπίδραση μεταξύ διεργασιών και διαχείρισης πόρων σε επίπεδο πυρήνα και όλα τα άλλα Η λειτουργικότητα τοποθετείται σε βιβλιοθήκες που μπορούν να χρησιμοποιηθούν τόσο στον πυρήνα όσο και στις εφαρμογές χρήστη. Όλα τα προγράμματα οδήγησης εκτελούνται στο χώρο χρήστη σε απομονωμένα περιβάλλοντα sandbox. Για συμβατότητα με υπάρχουσες εφαρμογές, παρέχεται ένα ειδικό επίπεδο POSIX, το οποίο σας επιτρέπει να εκτελείτε πολλά προγράμματα χωρίς μεταφορά.

Το σύστημα χρησιμοποιεί την αρχή "τα πάντα είναι μια διεύθυνση URL". Για παράδειγμα, η διεύθυνση URL "log://" μπορεί να χρησιμοποιηθεί για καταγραφή, "bus://" για αλληλεπίδραση μεταξύ διεργασιών, "tcp://" για αλληλεπίδραση δικτύου κ.λπ. Οι λειτουργικές μονάδες, οι οποίες μπορούν να υλοποιηθούν με τη μορφή προγραμμάτων οδήγησης, επεκτάσεων πυρήνα και εφαρμογών χρήστη, μπορούν να καταχωρήσουν τους δικούς τους χειριστές URL, για παράδειγμα, μπορείτε να γράψετε μια λειτουργική μονάδα πρόσβασης θύρας I/O και να τη συνδέσετε στη διεύθυνση URL "port_io:// ", μετά την οποία μπορείτε να το χρησιμοποιήσετε για πρόσβαση στη θύρα 60 ανοίγοντας τη διεύθυνση URL "port_io://60".

Το περιβάλλον χρήστη στο Redox είναι χτισμένο με βάση το γραφικό κέλυφος του ίδιου του Orbital (δεν πρέπει να συγχέεται με άλλο κέλυφος Orbital που χρησιμοποιεί Qt και Wayland) και το κιτ εργαλείων OrbTk, το οποίο παρέχει ένα API παρόμοιο με το Flutter, το React και το Redux. Το Netsurf χρησιμοποιείται ως πρόγραμμα περιήγησης ιστού. Το έργο αναπτύσσει επίσης τον δικό του διαχειριστή πακέτων, ένα σύνολο τυπικών βοηθητικών προγραμμάτων (binutils, coreutils, netutils, extrautils), το κέλυφος εντολών ion, την τυπική βιβλιοθήκη C relibc, το πρόγραμμα επεξεργασίας κειμένου που μοιάζει με vim, μια στοίβα δικτύου και ένα αρχείο Σύστημα. Η διαμόρφωση έχει οριστεί στη γλώσσα Toml.

Πηγή: opennet.ru

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