Κυκλοφορία λειτουργικού συστήματος ToaruOS 1.14 και γλώσσας προγραμματισμού Kuroko 1.1

Η κυκλοφορία του έργου ToaruOS 1.14 είναι διαθέσιμη, αναπτύσσοντας ένα λειτουργικό σύστημα τύπου Unix γραμμένο από την αρχή με τον δικό του πυρήνα, τον φορτωτή εκκίνησης, την τυπική βιβλιοθήκη C, τον διαχειριστή πακέτων, τα στοιχεία χώρου χρήστη και μια γραφική διεπαφή με έναν σύνθετο διαχειριστή παραθύρων. Στο τρέχον στάδιο ανάπτυξης, οι δυνατότητες του συστήματος είναι επαρκείς για την εκτέλεση Python 3 και GCC. Ο κώδικας του έργου είναι γραμμένος σε C και διανέμεται με την άδεια BSD. Μια ζωντανή εικόνα μεγέθους 14 MB έχει ετοιμαστεί για λήψη, η οποία μπορεί να δοκιμαστεί σε QEMU, VMware ή VirtualBox.

Κυκλοφορία λειτουργικού συστήματος ToaruOS 1.14 και γλώσσας προγραμματισμού Kuroko 1.1

Το έργο ξεκίνησε το 2010 στο Πανεπιστήμιο του Ιλινόις και αρχικά αναπτύχθηκε ως ερευνητική εργασία στον τομέα της δημιουργίας νέων σύνθετων γραφικών διεπαφών. Από το 2012, η ​​ανάπτυξη μετατράπηκε στο λειτουργικό σύστημα ToaruOS, το οποίο αναπτύχθηκε αρχικά ως φοιτητικό έργο και στη συνέχεια εξελίχθηκε σε ένα χόμπι για το Σαββατοκύριακο, το οποίο ξεκίνησε από την κοινότητα που σχηματίστηκε γύρω από το έργο. Στην τρέχουσα μορφή του, το σύστημα είναι εξοπλισμένο με έναν σύνθετο διαχειριστή παραθύρων, υποστηρίζει δυναμικά συνδεδεμένα εκτελέσιμα αρχεία σε μορφή ELF, πολλαπλές εργασίες, γραφικά και στοίβες δικτύου.

Το πακέτο περιλαμβάνει μια θύρα της γλώσσας προγραμματισμού Python 3.6, η οποία χρησιμοποιείται στην ανάπτυξη ορισμένων γραφικών εφαρμογών ειδικά για το ToaruOS, όπως διαχείριση πακέτων, πρόγραμμα επεξεργασίας γραφικών, πρόγραμμα προβολής PDF, αριθμομηχανή και απλά παιχνίδια. Τα προγράμματα τρίτων που μεταφέρονται στο ToaruOS περιλαμβάνουν Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, Super Nintendo emulator, Bochs κ.λπ.

Το ToaruOS βασίζεται σε έναν πυρήνα που χρησιμοποιεί μια υβριδική αρθρωτή αρχιτεκτονική που συνδυάζει ένα μονολιθικό πλαίσιο και εργαλεία για τη χρήση μονάδων με δυνατότητα φόρτωσης, τα οποία αποτελούν την πλειοψηφία των διαθέσιμων προγραμμάτων οδήγησης συσκευών, όπως προγράμματα οδήγησης δίσκου (PATA και ATAPI), συστήματα αρχείων EXT2 και ISO9660, framebuffer , πληκτρολόγια, ποντίκια , κάρτες δικτύου (AMD PCnet FAST, Realtek RTL8139 και Intel PRO/1000), τσιπ ήχου (Intel AC'97), καθώς και πρόσθετα VirtualBox για συστήματα φιλοξενούμενων.

Τα πρωτόγονα που παρέχονται από τον πυρήνα περιλαμβάνουν νήματα Unix, TTY, εικονικό σύστημα αρχείων, multithreading, IPC, κοινόχρηστη μνήμη, πολλαπλές εργασίες και άλλες τυπικές λειτουργίες. Το ext2 χρησιμοποιείται ως σύστημα αρχείων. Για την αλληλεπίδραση με τον πυρήνα, παρέχεται μια εφαρμογή ψευδο-FS /proc, που δημιουργήθηκε κατ' αναλογία με το Linux.

Τα σχέδια για το 2021 περιλαμβάνουν εργασίες για την αρχιτεκτονική 64-bit x86-64 (προς το παρόν, δημιουργούνται συγκροτήματα μόνο για συστήματα 32-bit x86) και υποστήριξη για συστήματα πολλαπλών επεξεργαστών (SMP). Άλλοι στόχοι περιλαμβάνουν τη βελτίωση της συμβατότητας με τις προδιαγραφές POSIX στον τομέα των μεθόδων επεξεργασίας και συγχρονισμού σήματος, τη μεταφορά της τυπικής βιβλιοθήκης C στο επίπεδο Newlib και την εφαρμογή του δικού της μεταγλωττιστή και εργαλείων ανάπτυξης γλώσσας C.

Το έργο αναπτύσσει επίσης τη δική του δυναμική γλώσσα προγραμματισμού, την Kuroko, που έχει σχεδιαστεί για να αντικαταστήσει την Python κατά την ανάπτυξη βοηθητικών προγραμμάτων και προσαρμοσμένων εφαρμογών για το σύστημα. Η γλώσσα υποστηρίζει μεταγλώττιση και ερμηνεία bytecode, η σύνταξή της μοιάζει με Python (τοποθετείται ως συντομευμένη διάλεκτος της Python με ρητό ορισμό μεταβλητών) και έχει πολύ συμπαγή υλοποίηση. Ο διερμηνέας bytecode παρέχει έναν συλλέκτη σκουπιδιών και υποστηρίζει τη λειτουργία πολλαπλών νημάτων χωρίς τη χρήση καθολικού κλειδώματος. Ο μεταγλωττιστής και ο διερμηνέας μπορούν να μεταγλωττιστούν με τη μορφή μιας μικρής κοινόχρηστης βιβλιοθήκης (~500KB), ενσωματωμένη με άλλα προγράμματα και επεκτάσιμη μέσω του C API. Εκτός από το ToaruOS, η γλώσσα μπορεί να χρησιμοποιηθεί σε Linux, macOS, Windows και να εκτελεστεί σε προγράμματα περιήγησης που υποστηρίζουν WebAssembly.

Η νέα έκδοση του ToaruOS επικεντρώθηκε στην ανάπτυξη της τυπικής βιβλιοθήκης C και της γλώσσας προγραμματισμού Kuroko. Για παράδειγμα, στο libc έχουν προστεθεί μαθηματικές συναρτήσεις που είναι απαραίτητες για τον σωστό υπολογισμό των παραμέτρων φωτισμού στο παιχνίδι Quake. Η δυνατότητα εκκίνησης στο VirtualBox σε λειτουργία EFI έχει βελτιωθεί. Το μέγεθος της εικόνας iso έχει μειωθεί με τη χρήση συμπίεσης της εικόνας του δίσκου ram.

Η νέα έκδοση της γλώσσας Kuroko 1.1 προσθέτει υποστήριξη για async and await, υλοποιεί multithreading, βελτιώνει τη συμβατότητα με την Python 3, υποστηρίζει πολλαπλές εκχωρήσεις τιμών, επεκτείνει τα εργαλεία για τη σύνταξη χειριστών στη γλώσσα C, προσθέτει υποστήριξη για σχολιασμούς τύπων για συναρτήσεις, προσθέτει το λέξεις-κλειδιά "yield" και "yield from", οι ενότητες os, dis, fileio και time έχουν ενσωματωθεί, νέες μέθοδοι έχουν εφαρμοστεί σε str, list, dict και bytes, προστέθηκε υποστήριξη για προμεταγλωττίσεις σε bytecode, η άδεια χρήσης έχει έχει αλλάξει σε MIT (προηγουμένως υπήρχε συνδυασμός MIT και ISC).

Πηγή: opennet.ru

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