Un nouveau système d'exploitation open source pour les systèmes embarqués
RT-Thread Smart travaille à ouvrir le monde de l'IoT et de l'informatique de pointe.
Il existe une demande croissante pour les systèmes d'exploitation embarqués, et il est préférable que celui sur lequel vous vous basez soit open source. L'équipe R&D du projet RT-Thread a consacré deux années de recherche et de développement intensif pour arriver à la dernière offre du projet : RT-Thread Smart. Il s'agit d'un système d'exploitation à micronoyau destiné principalement aux processeurs de milieu de gamme à haut de gamme tels que RISC-V ou Arm Cortex-A, doté d'une unité de gestion de mémoire (MMU) et fournissant une plate-forme logicielle compétitive basée sur POSIX pour toutes les industries de l'embarqué. espace.
Qui a besoin de RT-Thread Smart ?
RT-Thread Smart est un système d'exploitation à micro-noyau professionnel et hautes performances pour les applications en temps réel. Il offre une base open source pour les appareils embarqués sur n'importe quel marché, y compris la sécurité (par exemple, les caméras sur protocole Internet), le contrôle industriel, les appareils embarqués, l'électronique grand public et tout ce qui utilise la technologie embarquée (qui signifie de plus en plus « tout »). C'est important car, contrairement aux systèmes d'exploitation IoT traditionnels, un système d'exploitation à micro-noyau peut combler le fossé entre un système d'exploitation en temps réel (RTOS) traditionnel et un système d'exploitation relativement volumineux comme Linux pour atteindre le meilleur équilibre entre performances en temps réel, coût, sécurité, vitesse de démarrage, et plus encore.
L'architecture de RT-Thread Smart
RT-Thread Smart divise un système en espace noyau et espace utilisateur en tirant parti de la MMU et des méthodes d'appel système. Il divise ensuite l'espace d'adressage pour chaque mode (un système 32 bits fournit un espace d'adressage 4G).
(RT-Thread, CC BY-SA 4.0)
Le noyau RT-Thread Smart inclut les fonctionnalités de base de la plateforme et prend en charge les personnalisations. L'environnement d'application de l'espace utilisateur de RT-Thread Smart utilise musl libc pour fournir des appels d'interface POSIX et des supports d'exécution C. Il hérite également de l'écosystème RT-Thread d'origine, en utilisant SCons ou d'autres outils de construction tels que Autotools, Makefiles, CMake, etc. pour prendre en charge le développement, ainsi que des progiciels en ligne prêts à l'emploi de RT-Thread (plus de 342 au moment d’écrire ces lignes). Vous pouvez même porter des applications Linux, telles que wget/cURL, BusyBox, OpenSSL et Simple DirectMedia Layer, sur votre plateforme.
Le noyau RT-Thread Smart compressé ne fait que 217 Ko, avec un système de fichiers racine de 127 Ko. L'utilisation typique de la mémoire est d'environ 2 Mo.
Y compris la prise en charge complète des systèmes de fichiers, des piles de protocoles réseau et du multimédia, il ne faut que trois à cinq secondes à RT-Thread pour terminer son processus de démarrage. Sans exécuter ni charger d'applications utilisateur complexes, RT-Thread Smart nécessite moins de 500 ms pour démarrer et être prêt.
Grâce à son composant d'interface utilisateur (UI) Persimmon intégré, le temps nécessaire entre la mise sous tension et l'exécution d'une interface utilisateur est d'environ une seconde. En d’autres termes, il s’agit d’un système vraiment petit et rapide. Bien entendu, le « temps réel » ne concerne pas le démarrage, mais la manière dont le système fonctionne de manière cohérente au fil du temps. Pour RT-Thread, les performances en temps réel sont une priorité et la latence d'interruption est inférieure à 1 μs, ce qui répond à la plupart des cas d'application avec les exigences en temps réel les plus strictes.
RT-Thread Smart contre RT-Thread
Vous vous interrogez peut-être sur les différences entre RT-Thread Smart et RT-Thread. En termes simples, RT-Thread Smart est un système d'exploitation basé sur RT-Thread RTOS, mais il intègre le processus de l'espace utilisateur. La partie noyau de RT-Smart est essentiellement RT-Thread RTOS ; il s'exécute sur des adresses virtuelles, ajoute la gestion des processus et utilise des mécanismes de communication interprocessus, la gestion de la mémoire virtuelle/de l'espace d'adressage, des chargeurs ELF, etc., et il intègre toutes ces fonctionnalités dans RT-Thread RTOS. Lorsque les composants sont désactivés, RT-Smart revient sur RT-Thread RTOS.
Voici une comparaison :
RT-Thread | RT-Thread Smart | |
---|---|---|
Supported chips | Cortex-M/R, RISC-V RV32IMAC (and similar), Cortex-A MPU | MPU with MMU, such as ARM Cortex-A and RISC-V |
Compiling | The kernel and application are compiled into an image program. | The kernel and application can be separately compiled and executed. |
Memory | Runs on a linear address space (even with MMU) and uses virtual addressing with the physical address | Runs on a 32-bit system with the kernel running on more than 1GB, the user-space process that has full 4G address spaces are isolated from each other. Peripheral drivers must access peripherals with virtual addresses. |
Running errors | When an application fails, the overall system collapses. | When an application fails, it does not affect kernel and other process execution. |
Running model | Multi-thread model | Multiprocess model (multithread is supported within the process, and kernel threads are supported by the kernel) |
User model | Single-user model | Single-user model |
API | RT-Thread API, POSIX PSE52 | RT-Thread API (on kernel and userspace), plus a full POSIX API |
Real time | Preemptive hard real-time system | Preemptive hard real-time system |
Resource utilization | Very small | Relatively small |
Debugging | Generally debugged through the emulator | Supports GDB debugging and no emulator required |
RT-Thread RTOS est très compact. Toutes les applications et sous-systèmes sont compilés dans l'image et les applications multithread s'exécutent et partagent le même espace d'adressage.
RT-Thread Smart est indépendant. Les systèmes et les applications sont compilés et exécutés séparément. Les applications disposent d’un espace d’adressage complet et sont isolées les unes des autres. Il hérite également de toutes les fonctionnalités temps réel de RT-Thread et dispose d'un environnement POSIX.
De même, ils sont tous deux compatibles avec l'API RT-Thread, de sorte que les applications sur RT-Thread RTOS peuvent être portées en douceur vers RT-Thread Smart.
Intégrer l'open source
RT-Thread Smart est un projet open source, avec son code disponible sur GitHub. Vous pouvez télécharger le code et sa documentation, l’essayer, soumettre des commentaires et contribuer à sa diffusion auprès d’un plus grand nombre de défenseurs de l’open source. Les systèmes embarqués devraient appartenir à leurs utilisateurs, et il y a trop de développeurs embarqués qui ne réalisent pas ce qui est disponible.
Si vous êtes un développeur, aidez-nous à pirater RT-Thread Smart ! À mesure que le projet RT-Thread continue de progresser, notre objectif est de rendre open source les mondes passionnants de l’IoT et de l’informatique de pointe.