39
www.riot-os.org Emmanuel Baccelli on behalf of the RIOT Community

Présentation du système d'exploitation RIOT-OS

Embed Size (px)

Citation preview

Page 1: Présentation du système d'exploitation RIOT-OS

www.riot-os.orgEmmanuel Baccelli

on behalf of the RIOT Community

Page 2: Présentation du système d'exploitation RIOT-OS

RIOTAgenda

• Why?• How?• What is RIOT?

• Solving IoT technical challenge1:constraineddevices• Solving IoT technical challenge2:interoperability

• Current stand,inanutshell

Page 3: Présentation du système d'exploitation RIOT-OS

RIOTAgenda

• Why?• How?• What is RIOT?

• Solving IoT technical challenge1:constraineddevices• Solving IoT technical challenge2:interoperability

• Current stand,inanutshell

Page 4: Présentation du système d'exploitation RIOT-OS

SoftwarePlatforms AreCrucial

• Recent callsforOSanddata’’sovereignty’’

Snowdenpolitical scandalà strategic&privacyincentives

Androidgeneratesbillionsofdollarsà businessincentives

Page 5: Présentation du système d'exploitation RIOT-OS

Advantage: extremely big business

Drawback:extreme challengeforprivacy

SoftwareplatformsareevenmorecrucialinIoT

IoT = FutureInternet’s extremity

Page 6: Présentation du système d'exploitation RIOT-OS

e.g.like Arduino(butnotlikeRasberry Pi)

• GreatexpectationsforIoT,but……nostandardplatform yet,toprogrammost IoT devices!

SoftwarePlatforms forIoT?

LinuxAndroid

Moore’s law

Page 7: Présentation du système d'exploitation RIOT-OS

GoalsforanIoT softwareplatform

ü long-term IoT softwarerobustness &security

ü trust,transparency &protectionofIoT users’privacy

ü faster innovationbyspreading IoT softwaredev.costs

ü less garbage with less IoT device lock-down

Page 8: Présentation du système d'exploitation RIOT-OS

RIOTAgenda

• Why?• How?• What is RIOT?

• Solving IoT technical challenge1:constraineddevices• Solving IoT technical challenge2:interoperability

• Current stand,inanutshell

Page 9: Présentation du système d'exploitation RIOT-OS

Howcan we achieve our goals?

• Experience (e.g.with Linux)showswe arelikely tosucceedwith aplatform that is:

§ opensource§ free§ driven byagrassroots community

Page 10: Présentation du système d'exploitation RIOT-OS

• Contributors worldwide– Peoplefrom industry,academia,hobbyists/makers– Community self-organizes,follows openprocesses

• Large-scale distributed sourcecodemanagement

Geopolitical neutrality

RIOTPrinciples

Page 11: Présentation du système d'exploitation RIOT-OS

RIOTPrinciples

• Free&opensourcesoftwareplatform– core distributed with non-viralcopyleft license

(aimsforlessforks=morecoherentcode+community)

Indirectbusinessmodels(likebusinesswithLinux)

Page 12: Présentation du système d'exploitation RIOT-OS

RIOTAgenda

• Why?• How?• What is RIOT?

• Solving IoT technical challenge1:constraineddevices• Solving IoT technical challenge2:interoperability

• Current stand,inanutshell

Page 13: Présentation du système d'exploitation RIOT-OS

RIOT : anOSthat fits IoT devices

IoT

Memory~16kB

Memory~100kBMemory~8kB

Page 14: Présentation du système d'exploitation RIOT-OS

RIOT:anOSthat fits IoT devices

• RIOTis thecombination of:

q neededmemory&energy efficiency tofitIoT devices

q functionalities ofafull-fledged operatingsystem

• Advanced,consistentAPIsacross 32-bit,16-bit,8-bithardware• Full-featured,extensiblenetworkstacks

Page 15: Présentation du système d'exploitation RIOT-OS

• Why?• How?• What is RIOT?

• Solving IoT technical challenge1:constraineddevices• Solving IoT technical challenge2:interoperability

• Current stand,inanutshell

RIOTAgenda

Page 16: Présentation du système d'exploitation RIOT-OS

IoT Challenge1:ConstrainedDevices

ENERGYMilliwatt insteadofWatt

CPUMegahertzinsteadofGigahertz

MemoryKilobytesinsteadofGigabytes

Page 17: Présentation du système d'exploitation RIOT-OS

HowRIOT solves Challenge1

• Micro-kernel architecture(contrary toLinux)àminimalrequirements around 1kBRAM

• Tickless schedulerà energy efficiency

• Deterministic O(1)schedulerà real-time

• Low latency interrupt handlerà reactivity

Page 18: Présentation du système d'exploitation RIOT-OS

HowRIOTsolves Challenge1

• Consistent,powerful APIon8-bit,16-bit,32-bità preemptivemultithreading,IPC…

• Modular structure,adaptivetodiversehardwareà supportfor50+different IoT boards/devices andcounting

MCUs:ARMCortexM,TIMSP430,AVR… Radios:AT86RF233…

Page 19: Présentation du système d'exploitation RIOT-OS

Zoomonhardware-dependent code

Red:musthave

Green:musthavebutshared byallportswith samearchitecture

Grey:optional forinitialporting

Task Switching,StackHandling,Interrupt Handling:done forARMCortexM3,M4andM0is ontheway

(GPIO,UART,SPI,Timers:done forSTM,Atmel,NXP…)

• EfficientHAL:minimized hardware-dependent code

HowRIOTsolves Challenge1

Page 20: Présentation du système d'exploitation RIOT-OS

Well-known tools areusable!

• Compliancewith common systemstandardsü POSIXsockets,pthreadsü standard C,C++applicationcoding

à Muchshorter development life-cyclesü Run &debug asnativeprocess inLinuxü Useofwellknowndebugtoolsenabled

Page 21: Présentation du système d'exploitation RIOT-OS

• Why?• How?• What is RIOT?

• Solving IoT technical challenge1:constraineddevices• Solving IoT technical challenge2:interoperability

• Current stand,inanutshell

RIOTAgenda

Page 22: Présentation du système d'exploitation RIOT-OS

IoT Challenge2:Interoperability

• System-level interoperability– Hardware-independent IoT software– Usability ofthird-party,well-known tools

• Networklevel interoperability– End-to-endconnectivity perdefault– Device-to-device connectivity

Page 23: Présentation du système d'exploitation RIOT-OS

IoT Interoperability Challenge:TheIoT today looksmostly like this

Page 24: Présentation du système d'exploitation RIOT-OS

IoT Interoperability Challenge:TheIoT we want looksmorelike that

Page 25: Présentation du système d'exploitation RIOT-OS

TheIoT we want is…theInternet!

Page 26: Présentation du système d'exploitation RIOT-OS

InternetInteroperability:Based onOpenStandards

BLE

OSPF

LoRa

DHCP

SLAACOLSR

Page 27: Présentation du système d'exploitation RIOT-OS

InternetInteroperability:Accelerated with OpenSource

Page 28: Présentation du système d'exploitation RIOT-OS

Usual solutionsforInteroperability:Challenged byIoT…

…because ofresource constrains onIoT devices§ Memory,CPU,energy

…because oflow-powercommunicationcharacteristics§ Lossy /duty cycles§ Super-small frames§ Spontaneouswirelessarchitecture

à AdaptedstandardIoT protocolsneeded

Page 29: Présentation du système d'exploitation RIOT-OS

StandardIoT protocols? Ontheway!Work inprogress atIETF,IEEE,W3C,OMA…

Radio Transmission

COAP

RPL

6LoWPAN

ICMP

UDP

IEEE 802.15.4 MAC

IPv6

Newspecs forlink layertechnologies– Low-powerradios,PLC,BACnet– IEEE802.15.4,Z-Wave,BLE,LoRa (andIEEE802.11)– Moretocome…

Newspecs fornetworklayerprotocols– Fitting IoT requirements andinteroperablewith IP– 6TiSCH,6LoWPAN,RPL,OLSRv2,AODVv2– Moretocome…

Newspecs forapplicationlayerprotocols– Fitting IoT requirements andinteroperablewith web– CoAP,LwM2M,CBOR– Moretocome…

Newnetworkparadigms– Content-centricnetworkingforIoT– Moretocome…

Page 30: Présentation du système d'exploitation RIOT-OS

à Networkstack ultra-flexibility andmodularity

HowRIOTsolves Challenge2

Traditional stack RIOTstack (GNRC)

Page 31: Présentation du système d'exploitation RIOT-OS

HowRIOTsolves Challenge2

ü 6LoWPANstack,supporting IoT wireless tech.ü StandardIPv6stackü BSD-like portsforthird-partymodules/stacks:

§ OpenWSN,CCN-lite,Emb6,lwIP,tinyDTLS…

Page 32: Présentation du système d'exploitation RIOT-OS

RIOTAgenda

• Why?• How?• What is RIOT?

• Solving IoT technical challenge1:constraineddevices• Solving IoT technical challenge2:interoperability

• Current stand,inanutshell

Page 33: Présentation du système d'exploitation RIOT-OS

RIOTinanutshell

Peripherals (including network interfaces)

Lowpower MCU + radio or wired communications

Other network stacks

Closed- & Open-source IoT Applications

CoAP, LWM2M...RPL, UDP …

IPv6, 6LoWPAN …

Closed-Source DriversOpen-Source Drivers

RIOT offers a platform functionally equivalent to Linux, based on:

open-source,open-access protocol specs,community-driven dev.

IETF

Free,open-sourceplaftorm forportableIoT software

Third-party softwareHardware

MicroKernel

Page 34: Présentation du système d'exploitation RIOT-OS

RIOTcan domore,so RIOTcan doless

• Arduino scriptscan run as-is ontopofRIOT• mbed applicationscould run ontopofRIOT• Contiki can run inasingleRIOTthread

Page 35: Présentation du système d'exploitation RIOT-OS

RIOTRoots &Evolution

• 2008 – 2012Ancestors ofRIOTkernel developed inresearch projects (FireKernel,uKleos).

• 2013 – 2016BrandingofRIOTstarted,sourcecodemoved toGithub,majordevelopmentofthenetworkstack &theOSassuch.

• Speed-evolutionofthecode-base.110+ contributors.

Foundinginstitutions

Page 36: Présentation du système d'exploitation RIOT-OS

Some supporters/users

…anddozensofindependentdevelopers aroundtheworld!

Page 37: Présentation du système d'exploitation RIOT-OS

ü bringing together RIOTers,beginners &expertsü gathering peopleinterested intheIoT ingeneralü plenary talks,hands-ontutorials & demos

Callforcontributions&sponsorshttp://summit.riot-os.org/category/calls/

http://summit.riot.org

IETFInconjunction with IETF96inBerlin

Page 38: Présentation du système d'exploitation RIOT-OS

Thanksfor yourinterest!

News:https://twitter.com/RIOT_OSForcooperationquestions:[email protected]

Fordeveloperquestions:[email protected]

Support&discussionsonIRC:irc.freenode.org#riot-os

Page 39: Présentation du système d'exploitation RIOT-OS

Hands-onwith RIOT

ü Setup:get RIOTcodegit clone https://github.com/RIOT-OS/RIOT.git

Caveat:Youmayhavetoinstallgit andtoolchain (things likegcc ...)See https://github.com/RIOT-OS/RIOT/wiki/Introduction

ü Hands-on:compile,flash,run RIOTDemo: RIOT shell on a Libelium WaspMote (8bit AVR)

ü Hands-on:communicationwith RIOT(IPv6,6LoWPAN)Demo: PING with 2 Atmel SAMR21 boards (32bit ARM M0)