Un nouveau système d’exploitation open source pour les systèmes embarqués


  • Français


  • Il y a une demande croissante de systèmes d’exploitation embarqués, et c’est mieux lorsque celui sur lequel vous vous basez est open source. le Fil RT L’équipe de R&D du projet a passé trois ans 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 avec une unité de gestion de mémoire (MMU) et fournit une plate-forme logicielle compétitive pour toutes les industries de l’espace embarqué.

    Qui a besoin de RT-Thread Smart ?

    RT-Thread Smart est un système d’exploitation professionnel à micro-noyau 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 à protocole Internet), le contrôle industriel, les appareils embarqués, l’électronique grand public et tout ce qui utilise la technologie embarquée (ce qui signifie de plus en plus « tout »). C’est important car, contrairement aux systèmes d’exploitation IoT traditionnels, un système d’exploitation à micronoyau peut combler l’écart entre un système d’exploitation en temps réel traditionnel (RTOS) et un système d’exploitation relativement volumineux comme Linux pour obtenir le meilleur équilibre entre les performances en temps réel, le coût, sécurité, vitesse de démarrage, etc.

    L’architecture de RT-Thread Smart

    RT-Thread Smart sépare un système en mode noyau et en mode utilisateur en tirant parti des méthodes MMU et 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).

    Le noyau RT-Thread Smart inclut les fonctionnalités de base de la plate-forme et prend en charge les personnalisations. L’environnement d’application de l’espace utilisateur de RT-Thread Smart utilise libc musulman 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 les packages logiciels en ligne prêts à l’emploi de RT-Thread (plus de 342 au moment de la rédaction de cet article). Vous pouvez même porter des applications Linux, telles que wget/cURL, BusyBox, OpenSSL et Simple DirectMedia Layer, sur votre plate-forme.

    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.

    Avec 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 aucun composant fonctionnel, RT-Thread Smart nécessite moins de 500 ms pour démarrer et être prêt.

    Avec son composant d’interface utilisateur (UI) Persimmon intégré, le temps qu’il faut de la mise sous tension à une interface utilisateur en cours d’exécution est d’environ une seconde. En d’autres termes, il s’agit d’un système vraiment minuscule et rapide. Bien sûr, le “temps réel” ne concerne pas le démarrage mais la façon dont le système fonctionne de manière cohérente dans le 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 vs RT-Thread

    Vous vous demandez peut-être quelles sont 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 d’état utilisateur. La partie noyau de RT-Smart est essentiellement RT-Thread RTOS ; il s’exécute sur des adresses virtuelles, rejoint 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 fait de toutes ces fonctionnalités des composants dans RT-Thread RTOS. Lorsque les composants IwP sont désactivés, RT-Smart revient sur RT-Thread RTOS.

    Voici une comparaison :

    Fil RT RT-Thread Intelligent
    Puces prises en charge Cortex-M/R, RISC-V RV32IMAC (et similaire), Cortex-A MPU MPU avec MMU, comme Cortex-A
    Compilation Le noyau et l’application sont compilés dans un programme image. Le noyau et l’application peuvent être compilés et exécutés séparément.
    Mémoire Fonctionne sur un espace d’adressage linéaire (même avec MMU) et utilise l’adressage virtuel avec l’adresse physique Fonctionne sur un système 32 bits avec le noyau s’exécutant sur plus de 1 Go, le processus d’état utilisateur a des espaces d’adressage séparés qui sont isolés les uns des autres. Les pilotes de périphériques doivent accéder aux périphériques avec des adresses virtuelles.
    Erreurs d’exécution Lorsqu’une application échoue, l’ensemble du système s’effondre. Lorsqu’une application échoue, cela n’affecte pas l’exécution du noyau et des autres processus.
    Modèle de course Modèle multiprocessus Modèle multiprocessus (le multithread est pris en charge dans le processus et les threads du noyau sont pris en charge par le noyau)
    Modèle utilisateur Modèle mono-utilisateur Modèle mono-utilisateur
    API API RT-Thread, POSIX PSE52 API RT-Thread (sur le noyau et l’espace utilisateur), plus une API POSIX complète
    Temps réel Système préemptif en temps réel dur Système préemptif en temps réel dur
    Utilisation des ressources Très petit Relativement petite
    Débogage Généralement débogué via l’émulateur Aucun émulateur requis selon la façon dont le logiciel débogue

    RT-Thread RTOS est très compact. Toutes les applications et tous les sous-systèmes sont compilés dans l’image et le multitâche s’exécute et partage 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 ont un espace d’adressage complet et sont isolées les unes des autres. Il hérite également de toutes les fonctionnalités en 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 facilement portées 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 des réactions, et aider à le diffuser 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 développeur, aidez-nous à pirater RT-Thread Smart ! Alors que le projet RT-Thread continue de progresser, nous visons à rendre les mondes passionnants de l’IoT et de l’informatique de périphérie open source.

    Source

    Houssen Moshinaly

    Pour contacter personnellement le taulier :

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

    Copy code