RIOT and the evolution of operating systems for IoT devices (Emmanuel Baccelli, INRIA)

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

Transcript of RIOT and the evolution of operating systems for IoT devices (Emmanuel Baccelli, INRIA)

Page 1: RIOT and the evolution of operating systems for IoT devices (Emmanuel Baccelli, INRIA)

www.riot-os.orgEmmanuel Baccelli

on behalf of the RIOT Community

Page 2: RIOT and the evolution of operating systems for IoT devices (Emmanuel Baccelli, INRIA)

RIOTAgenda

• Why?• How?• What is RIOT?

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

• Current stand,inanutshell

Page 3: RIOT and the evolution of operating systems for IoT devices (Emmanuel Baccelli, INRIA)

RIOTAgenda

• Why?• How?• What is RIOT?

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

• Current stand,inanutshell

Page 4: RIOT and the evolution of operating systems for IoT devices (Emmanuel Baccelli, INRIA)

SoftwarePlatforms AreCrucial

• Recent callsforOSanddata’’sovereignty’’

Snowdenpolitical scandalà strategic&privacyincentives

Androidgeneratesbillionsofdollarsà businessincentives

Page 5: RIOT and the evolution of operating systems for IoT devices (Emmanuel Baccelli, INRIA)

Advantage: extremely big business

Drawback:extreme challengeforprivacy

SoftwareplatformsareevenmorecrucialinIoT

IoT = FutureInternet’s extremity

Page 6: RIOT and the evolution of operating systems for IoT devices (Emmanuel Baccelli, INRIA)

e.g.like Arduino(butnotlikeRasberry Pi)

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

SoftwarePlatforms forIoT?

LinuxAndroid

Moore’s law

Page 7: RIOT and the evolution of operating systems for IoT devices (Emmanuel Baccelli, INRIA)

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: RIOT and the evolution of operating systems for IoT devices (Emmanuel Baccelli, INRIA)

RIOTAgenda

• Why?• How?• What is RIOT?

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

• Current stand,inanutshell

Page 9: RIOT and the evolution of operating systems for IoT devices (Emmanuel Baccelli, INRIA)

Howcan we achieve our goals?

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

§ opensource§ free§ driven byagrassroots community

Page 10: RIOT and the evolution of operating systems for IoT devices (Emmanuel Baccelli, INRIA)

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

• Large-scale distributed sourcecodemanagement

Geopolitical neutrality

RIOTPrinciples

Page 11: RIOT and the evolution of operating systems for IoT devices (Emmanuel Baccelli, INRIA)

RIOTPrinciples

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

(aimsforlessforks=morecoherentcode+community)

Indirectbusinessmodels(likebusinesswithLinux)

Page 12: RIOT and the evolution of operating systems for IoT devices (Emmanuel Baccelli, INRIA)

RIOTAgenda

• Why?• How?• What is RIOT?

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

• Current stand,inanutshell

Page 13: RIOT and the evolution of operating systems for IoT devices (Emmanuel Baccelli, INRIA)

RIOT : anOSthat fits IoT devices

IoT

Memory~16kB

Memory~100kBMemory~8kB

Page 14: RIOT and the evolution of operating systems for IoT devices (Emmanuel Baccelli, INRIA)

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: RIOT and the evolution of operating systems for IoT devices (Emmanuel Baccelli, INRIA)

• Why?• How?• What is RIOT?

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

• Current stand,inanutshell

RIOTAgenda

Page 16: RIOT and the evolution of operating systems for IoT devices (Emmanuel Baccelli, INRIA)

IoT Challenge1:ConstrainedDevices

ENERGYMilliwatt insteadofWatt

CPUMegahertzinsteadofGigahertz

MemoryKilobytesinsteadofGigabytes

Page 17: RIOT and the evolution of operating systems for IoT devices (Emmanuel Baccelli, INRIA)

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: RIOT and the evolution of operating systems for IoT devices (Emmanuel Baccelli, INRIA)

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: RIOT and the evolution of operating systems for IoT devices (Emmanuel Baccelli, INRIA)

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: RIOT and the evolution of operating systems for IoT devices (Emmanuel Baccelli, INRIA)

Well-known tools areusable!

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

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

Page 21: RIOT and the evolution of operating systems for IoT devices (Emmanuel Baccelli, INRIA)

• Why?• How?• What is RIOT?

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

• Current stand,inanutshell

RIOTAgenda

Page 22: RIOT and the evolution of operating systems for IoT devices (Emmanuel Baccelli, INRIA)

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: RIOT and the evolution of operating systems for IoT devices (Emmanuel Baccelli, INRIA)

IoT Interoperability Challenge:TheIoT today looksmostly like this

Page 24: RIOT and the evolution of operating systems for IoT devices (Emmanuel Baccelli, INRIA)

IoT Interoperability Challenge:TheIoT we want looksmorelike that

Page 25: RIOT and the evolution of operating systems for IoT devices (Emmanuel Baccelli, INRIA)

TheIoT we want is…theInternet!

Page 26: RIOT and the evolution of operating systems for IoT devices (Emmanuel Baccelli, INRIA)

InternetInteroperability:Based onOpenStandards

BLE

OSPF

LoRa

DHCP

SLAACOLSR

Page 27: RIOT and the evolution of operating systems for IoT devices (Emmanuel Baccelli, INRIA)

InternetInteroperability:Accelerated with OpenSource

Page 28: RIOT and the evolution of operating systems for IoT devices (Emmanuel Baccelli, INRIA)

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: RIOT and the evolution of operating systems for IoT devices (Emmanuel Baccelli, INRIA)

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: RIOT and the evolution of operating systems for IoT devices (Emmanuel Baccelli, INRIA)

à Networkstack ultra-flexibility andmodularity

HowRIOTsolves Challenge2

Traditional stack RIOTstack (GNRC)

Page 31: RIOT and the evolution of operating systems for IoT devices (Emmanuel Baccelli, INRIA)

HowRIOTsolves Challenge2

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

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

Page 32: RIOT and the evolution of operating systems for IoT devices (Emmanuel Baccelli, INRIA)

RIOTAgenda

• Why?• How?• What is RIOT?

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

• Current stand,inanutshell

Page 33: RIOT and the evolution of operating systems for IoT devices (Emmanuel Baccelli, INRIA)

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: RIOT and the evolution of operating systems for IoT devices (Emmanuel Baccelli, INRIA)

RIOTcan domore,so RIOTcan doless

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

Page 35: RIOT and the evolution of operating systems for IoT devices (Emmanuel Baccelli, INRIA)

RIOTRoots &Evolution

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

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

• Speed-evolutionofthecode-base.110+ contributors.

Foundinginstitutions

Page 36: RIOT and the evolution of operating systems for IoT devices (Emmanuel Baccelli, INRIA)

Some supporters/users

…anddozensofindependentdevelopers aroundtheworld!

Page 37: RIOT and the evolution of operating systems for IoT devices (Emmanuel Baccelli, INRIA)

ü 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: RIOT and the evolution of operating systems for IoT devices (Emmanuel Baccelli, INRIA)

Thanksfor yourinterest!

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

Fordeveloperquestions:[email protected]

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