os libres pour l'iot - zephyr
TRANSCRIPT
www.ciose.fr
1
OS libres pour l’IoTOS libres pour l’IoTZephyrZephyr
C. CharreyreC. [email protected]@ciose.fr
http://www.ciose.frhttp://www.ciose.frhttps://twitter.com/CIO_SysEmbhttps://twitter.com/CIO_SysEmbhttp://fr.slideshare.net/charreyrehttp://fr.slideshare.net/charreyre
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
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
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
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
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
OS libres pour l'IoT - 22 Nov 2016
www.ciose.fr
7
Architecture
Crédit Anas Nashif – Zephyr Project : Technical Overview
OS libres pour l'IoT - 22 Nov 2016
www.ciose.fr
8
Services du nano kernel
Crédit Anas Nashif – Zephyr Project : Technical Overview
OS libres pour l'IoT - 22 Nov 2016
www.ciose.fr
9
Services du micro kernel
Crédit Anas Nashif – Zephyr Project : Technical Overview
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
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)
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
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 :
●
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
OS libres pour l'IoT - 22 Nov 2016
www.ciose.fr
15
Démo
● Merci de votre attention● Place à quelques démo