os libres pour l'iot - zephyr

15
www.ciose.fr 1 OS libres pour l’IoT OS libres pour l’IoT Zephyr Zephyr C. Charreyre C. Charreyre [email protected] [email protected] http://www.ciose.fr http://www.ciose.fr https://twitter.com/CIO_SysEmb https://twitter.com/CIO_SysEmb http://fr.slideshare.net/charreyre http://fr.slideshare.net/charreyre

Upload: christian-charreyre

Post on 22-Jan-2018

346 views

Category:

Software


5 download

TRANSCRIPT

Page 1: OS libres pour l'IoT - Zephyr

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

Page 2: OS libres pour l'IoT - Zephyr

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

Page 3: OS libres pour l'IoT - Zephyr

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

Page 4: OS libres pour l'IoT - Zephyr

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

Page 5: OS libres pour l'IoT - Zephyr

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

Page 6: OS libres pour l'IoT - Zephyr

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

Page 7: OS libres pour l'IoT - Zephyr

OS libres pour l'IoT - 22 Nov 2016

www.ciose.fr

7

Architecture

Crédit Anas Nashif – Zephyr Project : Technical Overview

Page 8: OS libres pour l'IoT - Zephyr

OS libres pour l'IoT - 22 Nov 2016

www.ciose.fr

8

Services du nano kernel

Crédit Anas Nashif – Zephyr Project : Technical Overview

Page 9: OS libres pour l'IoT - Zephyr

OS libres pour l'IoT - 22 Nov 2016

www.ciose.fr

9

Services du micro kernel

Crédit Anas Nashif – Zephyr Project : Technical Overview

Page 10: OS libres pour l'IoT - Zephyr

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

Page 11: OS libres pour l'IoT - Zephyr

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)

Page 12: OS libres pour l'IoT - Zephyr

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

Page 13: OS libres pour l'IoT - Zephyr

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 :

Page 14: OS libres pour l'IoT - Zephyr

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

Page 15: OS libres pour l'IoT - Zephyr

OS libres pour l'IoT - 22 Nov 2016

www.ciose.fr

15

Démo

● Merci de votre attention● Place à quelques démo