Open Source Innovation - Origines et Expansion de l'Open X (obsolete)
OS libres pour l'IoT - Zephyr
1. www.ciose.fr
1
OS libres pour l’IoTOS libres pour l’IoT
ZephyrZephyr
C. CharreyreC. Charreyre
christian.charreyre@ciose.frchristian.charreyre@ciose.fr
http://www.ciose.frhttp://www.ciose.fr
https://twitter.com/CIO_SysEmbhttps://twitter.com/CIO_SysEmb
http://fr.slideshare.net/charreyrehttp://fr.slideshare.net/charreyre
2. OS libres pour l'IoT - 22 Nov 2016
www.ciose.fr
2
Licence
Attribution-Noncommercial-Share Alike 4.0 International
● You are free:
to Share - copy and redistribute the material in any medium or format
to Adapt - remix, transform, and build upon the material
The licensor cannot revoke these freedoms as long as you follow the license terms.
● Under the following conditions:
Attribution — You must give appropriate credit, provide a link to the license, and indicate if
changes were made. You may do so in any reasonable manner, but not in any way that
suggests the licensor endorses you or your use.
NonCommercial — You may not use the material for commercial purposes.
ShareAlike — If you remix, transform, or build upon the material, you must distribute your
contributions under the same license as the original.
● No additional restrictions — You may not apply legal terms or
technological measures that legally restrict others from doing
anything the license permits.
● License text : http://creativecommons.org/licenses/by-nc-sa/4.0/legalcode
3. OS libres pour l'IoT - 22 Nov 2016
www.ciose.fr
3
CIO en quelques mots
● Société d'ingénierie en systèmes embarqués :
électronique et logiciel
● Au service de nos clients depuis 1990
● 15 spécialistes en embarqué et temps réel
● Expert en Linux embarqué depuis 2000,
OpenEmbedded et Yocto depuis 2008
● CA annuel : 1 500 000 €
● Siège à Saint-Étienne
● Agence à Marseille
● Agréé CIR
4. OS libres pour l'IoT - 22 Nov 2016
www.ciose.fr
4
C. Charreyre en quelques mots
● Associé au sein de CIO
● Responsable des technologies Linux embarqué
● Formateur Linux embarqué (avec Captronic et en
direct)
● 30 ans dans l'embarqué et le monde Unix / Linux
● Fervent promoteur du logiciel libre
● Membre de Medinsoft – Commission Logiciel
Libre
5. OS libres pour l'IoT - 22 Nov 2016
www.ciose.fr
5
Présentation de Zephyr
● OS temps réel compact, destiné à l’IoT
● Projet collaboratif de la Linux Foundation
● Disponible pour architectures
– X86 : Arduino 101, Quark, Galileo, Minnowboard, Qemu
x86
– ARM v7-M et v7E-M : Arduino Due, Olimexino, 96B
Carbon et Nitrogen, Qemu Cortex M3 …
– ARC : Arduino 101
– Nios II : Altera Max10, Qemu Nios II
● Footprint réduit : jusqu’à quelques kO
● Licence Apache 2.0
6. OS libres pour l'IoT - 22 Nov 2016
www.ciose.fr
6
Fonctionnalités
● Espace d’adressage unique : OS et application linkés
ensemble ---> pas d’isolation mémoire
● OS configurable pour compromis features / taille –
configuration basée sur Kbuild du kernel Linux
● 2 types de kernel :
– Nanokernel < 10k
– Microkernel = sur-ensemble du nanokernel, + fonctionnalités
● Services système :
– support du multithreading – fibers schedulés en coopératifs + tâches
préemptibles sur base priorité fixe
– mécanisme d’interruptions, interrompt tâches et fibers
– synchronisation de threads par sémaphores binaire, compteur ou
mutex
– IPC entre threads par message queues et byte streams
– allocation mémoire dynamique
– gestion de l’énergie
7. OS libres pour l'IoT - 22 Nov 2016
www.ciose.fr
7
Architecture
Crédit Anas Nashif – Zephyr Project : Technical Overview
8. OS libres pour l'IoT - 22 Nov 2016
www.ciose.fr
8
Services du nano kernel
Crédit Anas Nashif – Zephyr Project : Technical Overview
9. OS libres pour l'IoT - 22 Nov 2016
www.ciose.fr
9
Services du micro kernel
Crédit Anas Nashif – Zephyr Project : Technical Overview
10. OS libres pour l'IoT - 22 Nov 2016
www.ciose.fr
10
Environnement de développement
● SDK disponible pour
– Linux
– Windows
– MacOS
● Le SDK fournit les outils croisés pour toutes les
architectures simultanément
– gcc
– binutils
– gdb
– libgcc
– newlib
11. OS libres pour l'IoT - 22 Nov 2016
www.ciose.fr
11
Code source Zephyr
● Téléchargé par git clone
https://gerrit.zephyrproject.org/r/zephyr zephyr-
project
● Organisation code source similaire au kernel
Linux (en bien + léger)
12. OS libres pour l'IoT - 22 Nov 2016
www.ciose.fr
12
Code source Zephyr
● Présence de Makefile et Kconfig similaires au
kernel Linux
● Répertoire samples donne les 1ers exemples
d’applications
13. OS libres pour l'IoT - 22 Nov 2016
www.ciose.fr
13
Compilation d’une application
● Définir l’environnement dans son terminal :
● Se positionner dans le répertoire source et
effectuer un make en définissant la variable
BOARD :
●
14. OS libres pour l'IoT - 22 Nov 2016
www.ciose.fr
14
Compilation d’une application
● La taille du projet hello-world strippé est de 17k, avec un
micro-kernel
● L’application est testée dans qemu à l’aide du Makefile
● Exemple synchronisation : 18 k
● Exemple shell : 11 k
● Exemple net echo_server : 48 k
15. OS libres pour l'IoT - 22 Nov 2016
www.ciose.fr
15
Démo
● Merci de votre attention
● Place à quelques démo