Recherche de site Web

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.

Articles connexes: