ΕΛ/ΛΑΚ | creativecommons.gr | mycontent.ellak.gr |
freedom

RT-Thread Smart: Ένα νέο λειτουργικό σύστημα ανοιχτού κώδικα για embedded συστήματα

Υπάρχει μια αυξανόμενη ζήτηση για embedded operating systems, και είναι καλύτερο όταν αυτά είναι ανοιχτού κώδικα. Η ομάδα R&D του έργου RT-Thread μετά από τρία χρόνια έρευνας και εντατικής ανάπτυξης δημιούργησε το έργο RT-Thread Smart.

Πρόκειται για ένα λειτουργικό σύστημα microkernel που απευθύνεται κυρίως σε επεξεργαστές μεσαίου εύρους έως υψηλού επιπέδου όπως RISC-V ή Arm Cortex-A που διαθέτει μονάδα διαχείρισης μνήμης (MMU) και παρέχει μια ανταγωνιστική πλατφόρμα λογισμικού με βάση το POSIX για όλες τις βιομηχανίες στο χώρο των embedded συστημάτων.

Ποιος χρειάζεται το RT-Thread Smart;

Το RT-Thread Smart είναι ένα επαγγελματικό, υψηλής απόδοσης, λειτουργικό σύστημα microkernel για real-time εφαρμογές . Προσφέρει μια βάση ανοιχτού κώδικα για ενσωματωμένες συσκευές σε οποιαδήποτε αγορά, συμπεριλαμβανομένης της ασφάλειας (π.χ. κάμερες διαδικτύου), βιομηχανικού ελέγχου, ενσωματωμένων συσκευών, ηλεκτρονικών ειδών ευρείας κατανάλωσης και οτιδήποτε άλλο χρησιμοποιεί ενσωματωμένη τεχνολογία (η οποία όλο και περισσότερο σημαίνει "τα πάντα"). Είναι σημαντικό γιατί, σε αντίθεση με τα παραδοσιακά λειτουργικά συστήματα IoT, ένα λειτουργικό σύστημα microkernel μπορεί να καλύψει το κενό μεταξύ ενός παραδοσιακού λειτουργικού συστήματος πραγματικού χρόνου (RTOS) και ενός συγκριτικά μεγάλου λειτουργικού συστήματος όπως το Linux για την επίτευξη της καλύτερης ισορροπίας μεταξύ απόδοσης σε πραγματικό χρόνο, κόστους, ασφάλεια, ταχύτητα εκκίνησης και πολλά άλλα.

Η αρχιτεκτονική του RT-Thread Smart

Το RT-Thread Smart χωρίζει ένα σύστημα σε χώρο πυρήνα και χώρο χρήστη εκμεταλλευόμενο τις μεθόδους MMU και κλήσεων συστήματος. Στη συνέχεια διαιρεί το χώρο διευθύνσεων για κάθε λειτουργία (ένα σύστημα 32 bit παρέχει χώρο διευθύνσεων 4G).

Έξυπνη αρχιτεκτονική RT-Thread

(RT-Thread, CC BY-SA 4.0)

Ο πυρήνας RT-Thread Smart περιλαμβάνει τη βασική λειτουργικότητα της πλατφόρμας και υποστηρίζει προσαρμογές. Το περιβάλλον εφαρμογών χώρου χρήστη του RT-Thread Smart χρησιμοποιεί musl libc για να παρέχει κλήσεις διεπαφής POSIX και C runtime supports. Kληρονομεί επίσης το αρχικό οικοσύστημα RT-Thread, χρησιμοποιώντας SCons ή άλλα εργαλεία κατασκευής, όπως Autotools , Makefiles, CMake , καθώς και υποστήριξη για πάνω από 342 πακέτα λογισμικού αυτή τη στιγμή. Μπορείτε ακόμη και να μεταφέρετε εφαρμογές Linux, όπως wget / cURL, BusyBox, OpenSSL και Simple DirectMedia Layer, στην πλατφόρμα σας.

Ο συμπιεσμένος πυρήνας RT-Thread Smart είναι μόλις 217KB, με σύστημα αρχείων root 127KB. Η τυπική χρήση μνήμης είναι περίπου 2MB.

Συμπεριλαμβανομένης της πλήρους υποστήριξης για συστήματα αρχείων, στοίβες πρωτοκόλλων δικτύου και πολυμέσα, χρειάζονται μόνο τρία έως πέντε δευτερόλεπτα για να ολοκληρωθεί η διαδικασία εκκίνησης του RT-Thread. Χωρίς εκτέλεση ή φόρτωση σύνθετων εφαρμογών χρήστη, το RT-Thread Smart απαιτεί λιγότερα από 500ms για να ξεκινήσει και να είναι έτοιμο.

Με το ενσωματωμένη επιφάνεια εργασίας Persimmon (UI), ο χρόνος που απαιτείται από την ενεργοποίηση μέχρι το γραφικό περιβάλλον είναι περίπου ένα δευτερόλεπτο. Με άλλα λόγια, αυτό είναι ένα πολύ μικρό και γρήγορο σύστημα. Φυσικά, το "real time" δεν αφορά την εκκίνηση, αλλά την απόδοση του συστήματος με συνέπεια με την πάροδο του χρόνου. Για το RT-Thread, η απόδοση σε πραγματικό χρόνο αποτελεί προτεραιότητα και η interrupt latency είναι μικρότερη από 1 μs, η οποία ικανοποιεί τις περισσότερες περιπτώσεις εφαρμογής με τις αυστηρότερες απαιτήσεις σε πραγματικό χρόνο.

RT-Thread Smart vs. RT-Thread

Ίσως αναρωτιέστε για τις διαφορές μεταξύ RT-Thread Smart και RT-Thread. Με απλά λόγια, το RT-Thread Smart είναι ένα λειτουργικό σύστημα RT-Thread RTOS, αλλά ενσωματώνει τη διεργασία user-space. Το μέρος του πυρήνα του RT-Smart είναι ουσιαστικά RT-Thread RTOS και τρέχει σε εικονικές διευθύνσεις, προσθέτει διαχείριση διεργασιών και χρησιμοποιεί μηχανισμούς επικοινωνίας μεταξύ διεργασιών, διαχείριση χώρου εικονικής μνήμης / διευθύνσεων, ELF loaders κ.ο.κ. Όταν τα στοιχεία IwP είναι απενεργοποιημένα, το RT-Smart επιστρέφει στο RT-Thread RTOS.

Ακολουθεί μια σύγκριση:

 RT-ThreadRT-Thread Smart
Supported chipsCortex-M/R, RISC-V RV32IMAC (and similar), Cortex-A MPUMPU with MMU, such as Cortex-A
CompilingThe kernel and application are compiled into an image program.The kernel and application can be separately compiled and executed.
MemoryRuns on a linear address space (even with MMU) and uses virtual addressing with the physical addressRuns on a 32-bit system with the kernel running on more than 1GB, the user-state process has separate address spaces that are isolated from each other. Peripheral drivers must access peripherals with virtual addresses.
Running errorsWhen an application fails, the overall system collapses.When an application fails, it does not affect kernel and other process execution.
Running modelMulti-thread modelMultiprocess model (multithread is supported within the process, and kernel threads are supported by the kernel)
User modelSingle-user modelSingle-user model
APIRT-Thread API, POSIX PSE52RT-Thread API (on kernel and userspace), plus a full POSIX API
Real timePreemptive hard real-time systemPreemptive hard real-time system
Resource utilizationVery smallRelatively small
DebuggingGenerally debugged through the emulatorSupports GDB debugging and no emulator
required

Το RT-Thread RTOS είναι πολύ συμπαγές. Όλες οι εφαρμογές και τα υποσυστήματα συγκεντρώνονται στο Image και οι εφαρμογές πολλαπλών νημάτων εκτελούνται και μοιράζονται τον ίδιο χώρο διευθύνσεων.

Το RT-Thread Smart είναι ανεξάρτητο. Τα συστήματα και οι εφαρμογές γίνονται compiled ξεχωριστά και εκτελούνται. Οι εφαρμογές έχουν πλήρη χώρο διευθύνσεων και διατηρούνται απομονωμένες μεταξύ τους Κληρονομεί επίσης όλα τα εξαιρετικά χαρακτηριστικά σε πραγματικό χρόνο του RT-Thread και διαθέτει ένα περιβάλλον POSIX.

Ομοίως, και τα δύο είναι συμβατά με το RT-Thread API, οπότε οι εφαρμογές σε RT-Thread RTOS μπορούν να μεταφερθούν ομαλά στο RT-Thread Smart.

Ανοιχτός κώδικας

Το RT-Thread Smart είναι ένα έργο ανοιχτού κώδικα, με τον κώδικα του διαθέσιμο στο GitHub. Μπορείτε να κατεβάσετε τον κώδικα και την τεκμηρίωσή του, να τον δοκιμάσετε, να υποβάλετε σχόλια και σχόλια και να τον βοηθήσετε να τον διαδώσετε σε περισσότερους υποστηρικτές ανοιχτού κώδικα. Τα ενσωματωμένα συστήματα πρέπει να ανήκουν στους χρήστες τους και υπάρχουν πάρα πολλοί προγραμματιστές εκεί έξω που δεν αντιλαμβάνονται τι είναι διαθέσιμο.

Πηγή άρθρου: https://opensource.com/

Leave a Comment