h=p://mynewt.apache.org/ · 2017-12-14 · V0.8 April 2016 V0.9 May 2016 V0.10 June 2016 V0.11 July...
Transcript of h=p://mynewt.apache.org/ · 2017-12-14 · V0.8 April 2016 V0.9 May 2016 V0.10 June 2016 V0.11 July...
11April2016
AnIncubatorProjectintheApacheSo8wareFounda<on
h=p://mynewt.apache.org/
OpenSourceOSforConstrainedIoT– MCU/Hardwareindependent– ARMCortex-M*,AVR,MIPS,more
h=p://mynewt.apache.org/
ApacheMynewt
• CTO/Co-Founder,Run<me– h=p://www.run<me.io/
• 20+YearsExperienceinOpenSource
• 10+YearsExperienceinEmbedded&WirelessNetworking– Designed,developed,deployedIndustrialIoTmeshnetworks– Morethan20M+connecteddevices
AboutMe:SterlingHughes
FirstreleaseofasuccessfulIoTproduct…
…nowmakethatrepeatable,please.
ProblemandContext
• Community-drivenOpenSource
• BuildandPackageManagementintegraltoOS
• Directandobvioussolu<onforaproblem
• ScalabilitydrivenbysimplicitySecureBootloader,FFS
Kernel/RTOS HAL
Stats+Logging
Console+Shell
Config+Upgrade
BLEThreadWi-Fi
NewtMgr HTTP CoAP
Security
AnEmbeddedOSforMCUs
Moore’sLawHitMicrocontrollers
IPProviders
MCUVendors
CloudProviders
End-Users
• LiberalApache2.0license• Individuals,notCorpora<ons• Meritocracy• StronglicensingandIPpolicies• Longhistoryofworkingwithlarge
organiza<ons:IBM,Oracle,Pivotal/EMC
• Manyyearsexperiencemanaginglarge,complexprojects:ApacheWebServer,Hadoop,Cassandra,Kaba,Subversion,etc.
WhytheASF?
ACommunityEffort
Community-drivenOpenSource:BestWaytoMaintainHealthyUserEcosystem
(today)• Bluetoothconnectedproducts
• Medical:everything• Consumer/Enterprise:locks,lights• Industrial
• Makers• Home• HardwareLabs• Clothing
(tomorrow)• IndustrialWirelessSensorNetworks• Wi-FiProducts• WhoKnows?
• PowerOp<miza<on
• Meshnetworking
• Security• SensorAlgorithms
• ControlSystems
ScaleMakesProblemsInteres<ng
ApacheMynewtUsers
#commits
• 280,000linesofcode
• Ini<alsupportforSimulator,NordicNRF51/52,STM32F3/4andArduino
• Ac<vecontributors,WeWantYou!ü h=p://mynewt.apache.org/
ProjectSta<s<cs
Makeiteasytofind,install3rdpartylibraries
Maintainandre-usepackagesacrossmul<ple
products
Managedebugandproduc<onbuildsetups
Goals
Efficiency:useonlywhatyouneed
• Everythingisapackage.Eachpackagedescribesitsdependenciestotherestoftheworld
• Acollec<onofpackagesiscalledanapplica<on
• Thereareafewspecialpackages:BSPandProject.Projectcontainsmain()andBSPdefineslinkerscriptandhardwarelayout
• TargetsareusedtocombineprojectsandBSP
• Packagescanbedistributed,upgradedandinstalledremotely
Descrip<on
BuildandPackageManagement
Composeacrossmul<plerepos
apache-mynewt-coreOSHALBSP
ProjectStructure(comingsoon)“core”brokenintoappropriatesub-projects
apache-mynewt-ble apache-mynewt-nffs apache-mynewt-sys
ASFInfrastructure:Governance,LicensingRigor
github-sensor-apigithub-bsp1
github-bsp2
github-hal-implgithub-app1
github-network-impl
Github
• ASFgovernancestructure(PMCs)correspondswithsub-packagestructure• ASFrepositoriesclean,Apache2.0license• Userscanassembleprojectssourcedfrommul<plerepos
Composabilityacrossmul<plereposprovidesflexibility
3rdPartyRepo(s)
github-app2
ProvidequalitydriversformajorMCUplarorms
Designforcross-plarorm:well-definedAPIsforHAL,BSPand
drivers
Goals
Makeiteasytoaddboardspecificdefini<ons
• BSPdefini<onisprovidedin<app>/hw/bsp
• HALdefini<onsareinhw/halandcontainuniform,cross-plarormAPIs
• MCUdefini<onsareinhw/mcuandprovideimplementa<onsforvariousMCUs• Hierarchyallowscode-reusewithin
MCUfamilies
• BSPsforcommondevkitsareavailableaspackages(e.g.,NordicnRF51/2DK)
• BSPsdependonMCUs• BSP+MCUprovidesimplementa<onforHAL
APIs
Descrip<on
BSPandHAL
ChipVendors:WeWantYou!
• Pre-emp<ve,mul<-taskingRTOS• Strict,priority-basedscheduling• Upto253differentprioritylevels
• Ticklesskernel
• Powermanagement• Resourceu<liza<ontracking
• Built-intasks:• Idle• Sanity
Kernel
• EventQueuesprovideamechanismfor“mostlysleeping”asynchronoustasks
• Wake-upon:• Messagefromanothertask• Timer• I/Ostatechange• Incomingpacket• Watchdog
• Performopera<ons:• Sendanalert• Respondtoarequest• Scheduleawakeup
• Gobacktosleep
EnergyEfficientEventModel
Bootloader BootVars
Image2
Image1
NFFS(User)
CB(User)
• BootloadercanbelocatedinROMorFlash• Op<onsforinternalandexternalflashes
• Performsintegritycheckandswapsimages• ImagescontainSHA-256hashandRSAsignature• NFFSop<onal
• Providesalog-structuredflashfilesystemdesignedforsmallflashes• CB(CircularBuffer)op<onal
• Providesimplementa<onofflashcircularbuffer
EnergyEfficientEventModel
WhatWe’reProtecHng HowWeProtectIt
Bootloader • FirststagebootloadercanoperatefromROMandverifysignatureofsecondstagebootloader
Images • AllimageshaveSHA-256ofimagecontents• ImagessupportsigningwithECCorRSA2048bit
signatures• Secondstagebootloadercanverifyimagesignature
NetworkInterfaces • FullsupportforBLE4.2securityat1.0release,includinglink-layerandapp-layer
SystemSecurity
• Inaddi<ontovariousMCUports:OS,HAL,FSandthemajorityofpackagescanrunonMac,Linux
• Developyourcodeonthehostandthenporttotherealhardware
• Unittestframeworkisincorporatedtoallofthepackages:abilitytorununittestsonsimulatedenvironmentandrealhardware
• OSandlibrariesarefullyregressiontestedtoensureAPIcompa<bilitybetweenreleases
SimulatorandTestFramework
V0.8
April2016
V0.9
May2016
V0.10
June2016
V0.11
July2016
V1.0-b1
Aug2016
V1.0-GA
Oct2016
Highlights
v0.8: Firstrelease,BLE4.2,FFS,Kernel,Console,Shell,SecureBootv0.9: ExpandedHWsupportandHALv0.10: Wi-Fi&IPsupportv0.11: FullBluetoothSupport/Qualifica<onv1.0(GA)APIcompa<bility,FullRegressionTes<ng
ApacheMynewtRoadmap