Difference between revisions of "VT2016 Zephyr"

From air
Jump to navigation Jump to search
Line 22: Line 22:
 
* Windows CE
 
* Windows CE
   
Pour avoir une liste complete, veuillez consulter la page suivante [https://en.wikipedia.org/wiki/Comparison_of_real-time_operating_systems Liste complète des systèmes RTOS]
+
Pour avoir une liste complete, veuillez consulter la page suivante [https://en.wikipedia.org/wiki/Comparison_of_real-time_operating_systems Liste complète des systèmes RTOS].
   
  +
Pourquoi donc un nouveau système?
  +
Avec l'évolution du domaine des objets connectés, Linux Foundation a senti le besoin de mettre en place un système qui sera réellement Open Source et auquel tout le monde pourra participé. Un système dont la sécurité sera pris en compte dès le tout début du développement avec des expèrts en sécurités qui assurerons le bon maintien des politiques de sécurité du système avec des testes de pénétration et des revue de code.
  +
La plus part des systèmes qui existent sont au fait une partie de système, le scheduleur qui est en principe suffisant pour les objets connectés mais qui rend le développement d'application plus complex, mais Linux Foundation voulais un système complet tout comme Linux.
  +
Un système réellement connecté avec tout plein de protocoles réseau qui permettrons la connexion a diverses réseaux. Exemple des réseaux:
  +
* Bluetooth
  +
* Bluetooth LE
  +
* WiFi
  +
* 802.15.4
  +
* 6Lowpan
  +
* CoAP
  +
* IPv4
  +
* IPv6
  +
* NFC.
   
=Les mécanismes de Docker=
 
   
  +
=Les fonctionnalités du système=
Dans son fonctionnement, Docker distingue principalement 2 éléments afin de fournir une virtualisation : les images et les containers. Une image correspond à l'état d'un système, prêt à être utilisé. Une image va servir de base à un container, qui lui va représenter l'évolution d'une exécution de cette image, sans influencer celle-ci. Ainsi, les image et les container peuvent être rapproché des classes et objets en programmation objet.
 
   
  +
* Une seule espace d’adressage
Plusieurs moyen sont disponible pour avoir une image, des images ready to use sont disponible dans des "registry", comme le Docker Hub. Une autre possibilité est de créer sa propre image, avec un Dockerfile (ou Docker compose). Le principe est de choisir une image de base, et d'y ajouter les outils nécessaire à ses besoins. Toute les images existantes peuvent servir de base. Ci dessous, le Dockerfile de l'image Hello-World, créée par Docker :
 
  +
* Facilement configurable
<syntaxhighlight lang="text">
 
  +
* Ressources définis lors de la compilation
#Extrait hello-world/Dockerfile
 
  +
* Très faible vérification d’erreur
FROM scratch
 
  +
* Services de développement
COPY hello /
 
CMD [« /hello »]
 
</syntaxhighlight>
 
   
  +
=Architecture de Zéphyr=
Le mot clé FROM indique le nom de l'image sur laquelle se baser. COPY, quant à lui, permet de copier du contenu directement dans l'image. Finalement, le mot clé CMD permet d'exécuter une commande au lancement d'un container basé sur l'image. Lancer cette image aura donc pour effet d'exécuter le programme "hello".
 
   
  +
L'Architecture de Zéphyr est particulière car elle est composé de 2 Kernels:
=Docker face aux VM=
 
   
  +
* Le nanoKernel:
Docker vient directement faire face aux machines virtuels. Son point fort est sa légèreté : Docker n'a pas besoin d'un OS invité complet vu qu'il se base sur celui de l'hôte.
 
  +
Qui représente la partie essenciel du système, elle gère toute l'ordonnacement et l'exécution des taches. elle ne pèse que 2kb.
  +
* Le MicroKernel
  +
Qui représente la partie complémentaire du système qui offre plus de fonctionnalités comme la connectivité et la récupération des taches.
   
[[File:CaaS2016-VM.png|500px]]
 
[[File:CaaS2016-Docker.png|500px]]
 
   
 
[[File:zephyr2016.png|500px]]
Ci-dessus, à gauche, le principe de fonctionnement des machine virtuelles. Un hypervisor va venir gérer les ressources du système hôte pour les systèmes invités. Pour faire fonctionner une application, un système complet est nécessaire. A droite, le principe de fonctionnement de Docker. Docker se base sur le système hôte, il n'y a donc pas besoin d'un système invité complet. Le Docker Engine rempli donc le même rôle que l'hypervisor pour les VM.
 
  +
   
 
=Les CaaS=
 
=Les CaaS=

Revision as of 11:16, 6 November 2016

Présentation

  • Sujet : Zéphyr, Système d'exploitation pour objets connectés
  • Auteur : Cenyo Medewou
  • Enseignants : Didier DONSEZ, Georges-Pierre BONNEAU

Résumé

Zéphyr est un système d'exploitation qui a été développé à l'origine par Wind River System, une filliale de Intel qui est spécialisé dans la réalisation de systèmes d'objets connecté, et qui a été repris par la Linux foundation en février 2016 dans le but de devenir le système d'exploitation leader du marché. Ce système vise les appareils de très faible mémoire, en effet le plus petit kernel de Zéphyr n'occupe que 2KB dans la mémoire, ce qui est pratique pour certains objets connecté.

Motivations

Zéphyr est un RTOS (Real time Operating system). Un RTOS, système temps réel en français est un système d'exploitation multitâche destiné aux applications temps réel permettant de controler ainsi l'ordre d'exécution des taches et de connaitre ainsi à l'avance le resultat. Il existe plein de RTOS, par exemple :

  • abassi
  • apache mynewt OS
  • atomthreads
  • Bertos
  • Brtos
  • FreeRTOS
  • nOS
  • Windows CE

Pour avoir une liste complete, veuillez consulter la page suivante Liste complète des systèmes RTOS.

Pourquoi donc un nouveau système? Avec l'évolution du domaine des objets connectés, Linux Foundation a senti le besoin de mettre en place un système qui sera réellement Open Source et auquel tout le monde pourra participé. Un système dont la sécurité sera pris en compte dès le tout début du développement avec des expèrts en sécurités qui assurerons le bon maintien des politiques de sécurité du système avec des testes de pénétration et des revue de code. La plus part des systèmes qui existent sont au fait une partie de système, le scheduleur qui est en principe suffisant pour les objets connectés mais qui rend le développement d'application plus complex, mais Linux Foundation voulais un système complet tout comme Linux. Un système réellement connecté avec tout plein de protocoles réseau qui permettrons la connexion a diverses réseaux. Exemple des réseaux:

  • Bluetooth
  • Bluetooth LE
  • WiFi
  • 802.15.4
  • 6Lowpan
  • CoAP
  • IPv4
  • IPv6
  • NFC.


Les fonctionnalités du système

  • Une seule espace d’adressage
  • Facilement configurable
  • Ressources définis lors de la compilation
  • Très faible vérification d’erreur
  • Services de développement

Architecture de Zéphyr

L'Architecture de Zéphyr est particulière car elle est composé de 2 Kernels:

  • Le nanoKernel:
 Qui représente la partie essenciel du système, elle gère toute l'ordonnacement et l'exécution des taches. elle ne pèse que 2kb.
  • Le MicroKernel
 Qui représente la partie complémentaire du système qui offre plus de fonctionnalités comme la connectivité et la récupération des taches.


Zephyr2016.png


Les CaaS

Les Containers as a Service sont une application de Docker dans le cloud. Les containers vont être déployés sur des machines distantes dans le cloud. Le principal avantage de ce service est la portabilité : le container en local sera basé sur la même image que le container distant. De ce fait, il n'y aura aucune mauvaise surprise dû au matériel ou à la configuration de la machine dans le cloud.

Un autre avantage est de pouvoir séparer complètement la partie développement de la partie déploiement : le développeur ne se soucie plus que du développement et de la construction de l'image, alors que d'autres équipes vont se charger du déploiement sans se soucier de la configuration de l'image ni de ce qu'elle contient.

Pour aller plus loin

Site officiel de Docker

Site officiel de LXC

Docker sur le wiki