Zephyr (système d'exploitation)

Zephyr
Description de l'image Zephyr RTOS logo 2015.svg.

Informations
Développé par Fondation Linux et Wind RiverVoir et modifier les données sur Wikidata
Première version [1]Voir et modifier les données sur Wikidata
Dernière version 4.1.0 ()[2]Voir et modifier les données sur Wikidata
Dépôt github.com/zephyrproject-rtos/zephyrVoir et modifier les données sur Wikidata
Écrit en CVoir et modifier les données sur Wikidata
Environnement X86, architecture ARM, ARC (en), RISC-V, Xtensa (d), architecture MIPS, Nios II (en) et architecture SPARCVoir et modifier les données sur Wikidata
Type Système d'exploitation embarqué
Système d'exploitation libre (d)
Système d'exploitation temps réel
Linux Foundation project (d)Voir et modifier les données sur Wikidata
Licence Licence Apache 2.0Voir et modifier les données sur Wikidata
Site web www.zephyrproject.orgVoir et modifier les données sur Wikidata

Zephyr est un système d'exploitation temps réel open-source et libre sous Licence Apache 2.0, conçu pour les appareils aux ressources limitées, supportant plusieurs architectures. Un fork du projet sous licence BSD existe pour l'environnement Arduino 101, maintenu par Intel.

Zephyr comprend un noyau et tous les composants et bibliothèques, pilotes de périphériques, piles de protocoles, systèmes de fichiers et mises à jour de microprogrammes nécessaires au développement d'un logiciel d'application complet.[3]

Il fonctionne également sur les processeurs RISC-V, notamment sur son émulation par Qemu et sur différentes implémentations matérielles[4].

Il doit son nom à Zéphyr, le dieu grec du vent d'ouest.[5]

Histoire

En , le projet Rocket voit le jour chez Wind River Systems. C'est un noyau dédié à l'Internet des Objets (IoT).

En , Zephyr passe sous l'égide de la Fondation Linux. Depuis, les contributeurs principaux sont Intel, Linaro, NXP Semiconductors, Synopsys, et UbiquiOS.

En janvier 2025, Zephyr avait le plus grand nombre de contributeurs et de commits comparé à d'autres RTOS (y compris Mbed, RT-Thread, NuttX et RIOT). [6]

Fonctionnalités

Le noyau Zephyr est pensé pour des appareils aux contraintes fortes en termes de mémoire[7] : du capteur connecté à la montre connectée en passant par les « technologies portables » simple ou la passerelle IoT sans fil. Il est principalement utilisé dans les objets connectés[8].

L'OS se distingue des autres solutions existantes sur plusieurs points :

  • Un unique espace d'adressage
  • Hautement configurable
  • Les ressources sont définies statiquement, à la compilation
  • Peu ou pas de vérification d'erreurs dynamique

De plus, l'OS expose un certain nombre d'interfaces de programmation pour permettre au développeur d'écrire son application.

Sécurité

Un groupe de travail est dédié au maintien et au développement de la sécurité pour le projet.[9] En outre, le modèle de développement ouvert permet de multiplier les études et critiques du code, ce qui participe à le rendre sûr et plus sécurisé.

Outil utilitaire « West »

Zephyr dispose d'un outil polyvalent appelé « west » qui permet de gérer les dépôts, de télécharger des programmes sur le matériel, etc.[5]

Espace d'adressage unique

Une image Zephyr fonctionnelle contient le code applicatif et le code du noyau, réunis en un seul binaire. L'application et le kernel s'exécutent dans le même espace d'adressage.

Hautement configurable

Zephyr permet de sélectionner uniquement les fonctionnalités voulues, et de les paramétrer si besoin (taille d'un espace mémoire réservé par exemple).

Ressources définies statiquement

Il n'est pas possible de définir une ressource pendant l’exécution d'une application. Ceci permet de diminuer la taille du code et d'augmenter les performances, en évitant du code de gestion dynamique supplémentaire.

Vérification d'erreurs minimale

Là aussi, cela permet de gagner en taille de code compilé et performances. A noter qu'il est possible d'activer des services de vérifications dynamiques, pour aider à déboguer pendant la phase de développement.

API de développement

Les interfaces fournies sont classiques, et sont résumées ici[3]:

  • Multithreading à niveaux de priorités, avec la possibilité de mélanger threads préemptibles et coopératifs. Optionnellement, l'ordonnanceur préemptif peut allouer des quanta de temps via un mécanisme de type round-robin.
  • Gestion des interruptions, avec configuration statique ou dynamique des routines liées à chaque interruption.
  • Synchronisation: sémaphore (binaire ou à compteur), mutex.
  • Communication entre threads: file de messages, flux d'octets.
  • Allocation de mémoire dynamique pour des tailles de blocs mémoire variables.
  • Gestion d'énergie avancée: tickless idle (inactif et modes de sommeil avancés.)

Voir aussi

Notes et références

  1. « https://www.zephyrproject.org/news/linux-foundation-announces-project-build-real-time-operating-system-internet-things-devices »
  2. « Release 4.1.0 », (consulté le )
  3. a et b « Introduction — Zephyr Project Documentation », sur docs.zephyrproject.org (consulté le )
  4. (en) « Zephyr », sur RISC-V getting started guide (sur readthedocs.io)
  5. a et b (en) « West (Zephyr’s meta-tool) », sur docs.zephyrproject (consulté le )
  6. zephyrproject-rtos/zephyr, Zephyr Project, (lire en ligne)
  7. « Découverte de l'OS Zephyr | Linux Embedded », sur www.linuxembedded.fr (consulté le )
  8. « Zephyr : un OS temps réel open source pour l'IoT », Generation NT, (consulté le )
  9. (en) « The Internet Of Things Goes Open Source With Linux Foundation's Zephyr Project », sur forbes, (consulté le )


Prefix: a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9

Portal di Ensiklopedia Dunia

Kembali kehalaman sebelumnya