Zephyr Project Overview

Slides:



Advertisements
Similar presentations
Threads, SMP, and Microkernels
Advertisements

Real-Time Library: RTX
Low-Power Interoperability for the IPv6 Internet of Things Presenter - Bob Kinicki Low-Power Interoperability for the IPv6 Internet of Things Adam Dunkels,
Real-time Systems Lab, Computer Science and Engineering, ASU Please Standby Galileo Tech Talk at ASU Will Begin Shortly.
Chorus and other Microkernels Presented by: Jonathan Tanner and Brian Doyle Articles By: Jon Udell Peter D. Varhol Dick Pountain.
Threads, SMP, and Microkernels Chapter 4. Process Resource ownership - process is allocated a virtual address space to hold the process image Scheduling/execution-
Chapter 13 Embedded Systems
Chapter 13 Embedded Systems Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design Principles,
Contiki A Lightweight and Flexible Operating System for Tiny Networked Sensors Presented by: Jeremy Schiff.
INTRODUCTION OS/2 was initially designed to extend the capabilities of DOS by IBM and Microsoft Corporations. To create a single industry-standard operating.
1 Hannes Tschofenig. 2 The Internet of Things Today Enormous potential  “Tens of billions of new devices”  … but market growing slower than expected.
The Design of Robust and Efficient Microkernel ManRiX, The Design of Robust and Efficient Microkernel Presented by: Manish Regmi
Programming mobile devices Part II Programming Symbian devices with Symbian C++
Chapter 8 Windows Outline Programming Windows 2000 System structure Processes and threads in Windows 2000 Memory management The Windows 2000 file.
Renesas Electronics America Inc. © 2012 Renesas Electronics America Inc. All rights reserved. Class ID: Introduction to RoweBots’ Ultra Tiny Linux RTOS.
RTEMS overview W. Eric Norum Introduction RTEMS is a tool designed specifically for real-time embedded systems The RTEMS product is an executive.
A Comparative Study of the Linux and Windows Device Driver Architectures with a focus on IEEE1394 (high speed serial bus) drivers Melekam Tsegaye
OPERATING SYSTEM SUPPORT DISTRIBUTED SYSTEMS CHAPTER 6 Lawrence Heyman July 8, 2002.
System Components ● There are three main protected modules of the System  The Hardware Abstraction Layer ● A virtual machine to configure all devices.
Challenges in Porting & Abstraction. Getting Locked-In Applications are developed with a particular platform in mind The software is locked to the current.
Slides created by: Professor Ian G. Harris Operating Systems  Allow the processor to perform several tasks at virtually the same time Ex. Web Controlled.
Operating Systems Unit 2: – Process Context switch Interrupt Interprocess communication – Thread Thread models Operating Systems.
CSCI/CMPE 4334 Operating Systems Review: Exam 1 1.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
Software Architecture of Sensors. Hardware - Sensor Nodes Sensing: sensor --a transducer that converts a physical, chemical, or biological parameter into.
Introduction to Operating Systems Concepts
Computer System Structures
Computer System Structures
Zephyr™ Project Security
The Post Windows Operating System
Introduction to mbed OS
Software 12/1/2008.
Developing IoT endpoints with mbed Client
LAS16-203: Platform Security Architecture for embedded devices
REAL-TIME OPERATING SYSTEMS
Processes and threads.
Introduction to ChibiOS/RT A free embedded RTOS
Current Generation Hypervisor Type 1 Type 2.
Hands On SoC FPGA Design
CS 6560: Operating Systems Design
ANDROID AN OPEN HANDSET ALLIANCE PROJECT
Topics Covered What is Real Time Operating System (RTOS)
IzoT™ Device Stacks March 2014.
Processes and Threads Processes and their scheduling
Chapter 2 Processes and Threads Today 2.1 Processes 2.2 Threads
Operating Systems: A Modern Perspective, Chapter 6
Wireless Instant Messaging Using J2ME
KERNEL ARCHITECTURE.
Chapter 3: Windows7 Part 1.
Chapter 2: Operating-System Structures
Chapter 3: Windows7 Part 2.
Threads, SMP, and Microkernels
Chapter 2: System Structures
Chapter 3: Windows7 Part 2.
CS703 - Advanced Operating Systems
Mid Term review CSC345.
Lecture Topics: 11/1 General Operating System Concepts Processes
Lecture 4- Threads, SMP, and Microkernels
Integrated Zephyr Connectivity
Outline Chapter 2 (cont) OS Design OS structure
LPC2148 ARM7 myKernel Details
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
Implementing Processes, Threads, and Resources
Cross-OS Development Platform Contents Application Common Operating Environment (AppCOE): An eclipse based IDE for development of C/C++ applications.
Outline Operating System Organization Operating System Examples
Implementing Processes, Threads, and Resources
Overview of System Development for Windows CE.NET
Zephyr 真正的开源软件(Linux Foundation),宽松自由的许可证(Apache 2.0)
The Contiki Operating System Allan Blanchard, INRIA
Chapter 13: I/O Systems “The two main jobs of a computer are I/O and [CPU] processing. In many cases, the main job is I/O, and the [CPU] processing is.
Presentation transcript:

Zephyr Project Overview Anas Nashif

Agenda Zephyr Project Overview Architecture Overview The Zephyr Kernel Getting Involved

What is Zephyr? Microcontroller operating system Very small memory footprint (will run in 8k) Open Source under Apache* 2.0 license, hosted by Linux* Foundation Supports multiple architectures

Small OS & RTOS Market Analysis Saturated RTOS/ Fragmentation Adoption growth in IoT development Roll Your Own/No OS Compromised Devices Opportunity to build a leading IoT OS

Permissively Licensed Why Zephyr Project? Strategic Investment Best-of-Breed RTOS True Open Source Secure Permissively Licensed Established Code Base

Zephyr Project Features Security Modularity Architecture Community Developed Connectivity

Agenda Zephyr Project Overview Architecture Overview The Zephyr Kernel Getting Involved

Top 10 IoT Technologies for 2017/2018 (Gartner) IoT Security IoT Analytics IoT Device Management Low-Power, Short-Range Networks Low-Power, Wide-Area Networks IoT Processors IoT Operating Systems Event Stream Processing IoT Platform IoT Standards and Ecosystem Source: http://www.gartner.com/newsroom/id/3221818

Top 10 IoT Technologies for 2017/2018 (Gartner) IoT Security IoT Analytics IoT Device Management Low-Power, Short-Range Networks Low-Power, Wide-Area Networks IoT Processors IoT Operating Systems Event Stream Processing IoT Platform IoT Standards and Ecosystem Source: http://www.gartner.com/newsroom/id/3221818

Zephyr Overview Applications 3rd Party Libraries Provide an OS that runs best on MCUs for wearable and IoT devices, where the cost of the silicon is minimal Highly Configurable, Highly Modular Kernel mode only Two Modes: Nanokernel: Limited functionality targeting small footprint (below 10k) Microkernel (superset of nanokernel): with additional functionality and features No user-space and no dynamic runtimes Memory and Resources are typically statically allocated Cross architecture (IA32, ARM*, ARC, others under discussion) C APIs CoAP, MQTT*, HTTP*, LWM2M* DTLS, TLS, .. IPv4*, IPv6 6LowPAN Device Management Device Drivers Power Management Microkernel Nanokernel Nanokernel Platform UART SPI GPIO I2C Radios * planned

Supporting Driver Frameworks & HALs Applications 3rd Party Libraries C APIs CoAP, MQTT*, HTTP*, LWM2M* DTLS, TLS, .. Zephyr Native Drivers IPv4*, IPv6 6LowPAN Device Management Intel® Quark™ Microcontroller Software Interface (QMSI) Device Drivers Power Management ARM* Cortex* Microcontroller Software Interface Standard (CMSIS) Microkernel Nanokernel Synopsys Open Software Platform (embARC) Nanokernel .... Hardware Platform UART SPI GPIO I2C Radios * planned

IOT Technologies: Connectivity Application Application Application Application LWM2M MQTT ZigBee* SEP 2.0 CoAP HTTP TCP/UDP Thread TCP Transport IPv6 RPL 3GPP Network 6LoWPAN IEEE 802.15.4 Bluetooth® 4.0 Low Energy Wi-Fi* NFC Data Link PHY

Zephyr Connectivity: Current Status CoAP DTLS UDP IPv6 6LoWPAN Bluetooth® Smart API 802.15.4 MAC (cc2520) 802.3 (Intel® Galileo 2 Ethernet transceiver) Intel® Curie™ Module Bluetooth Driver HCI host stack 3-wire UART HCI driver 5-wire UART HCI driver When we speak about Connectivity for Zephyr, we are talking specifically about  the support for remote communication, both wired and wireless that is built into Zephyr kernel and supplied with the OS. When we started the project, our goal was to add Bluetooth and IEEE 802.15.4 (low rate wireless personal area networks) / 6LoWPAN support . We chosen to implement HCI Bluetooth from scratch. We took 15.4, 6LoWPAN and IP from Contiki After developing Bluetooth APIs we decided to provide implementation for nRF51 controller which is part of Curie We decided to start with nanokernel support so that our stacks can be used in the most resource constrained/nanokernel configurations On the roadmap: Bluetooth Classic HCI stack, key enablers Persistent storage Broader support for Curie IP stack: TCP MAC driver abstraction More MAC drivers 6LoWPAN IPSP router

Integrated Security Stack Protection Secure Boot, TEE** HW Crypto Engine Device Management: LWM2M DTLS CoAP, MQTT, HTTP Cloud Services Crypto Libraries and Services Device Security Communication Security IPv4 IPv6/6LoWPAN Standardized building block and robust communication stacks Cryptographic library based on TinyCrypt2 Static and single binary applications, Single address space, No loadable modules Planned security features: Device Management and Updates APIs to support vendor specific Crypto implementations (software/hardware) Secure Key Storage

Agenda Zephyr Project Overview Architecture Overview The Zephyr Kernel Getting Involved

Zephyr Technical Overview (Video)

Zephyr Kernel – Key Features Multi-threading services, including both priority-based, non-preemptive fibers and priority-based, preemptive tasks (with optional round robin time-slicing). Interrupt services, including both compile-time and run-time registration of interrupt handlers, which can be written in C or assembly language. Inter-thread synchronization services, including binary semaphores, counting semaphores, and mutex semaphores. Inter-thread data passing services, including basic message queues, enhanced message queues, and byte streams. Memory allocation services, including dynamic allocation and freeing of fixed-size or variable-size memory blocks.

Zephyr Kernel – Key Features Power management services, including tick-less idle and an advanced idling infrastructure. Highly configurable, allowing an application to incorporate only the capabilities it needs, and to specify their quantity and size. Zephyr requires all system resources to be defined at compile-time to reduce code size and increase performance. Provides minimal run-time error checking to reduce code size and increase performance. An optional error checking infrastructure is provided that can assist in debugging during application development Library based RTOS ("kernel-less")

Library-Based RTOS (“kernel-less”) One single executable which is executed in one single address space No loader is required to dynamically load applications at run-time Minimizing the operating system code System calls are implemented as function calls No context switches are required when calling an operating system call Lack of security through hardware memory separation Application and operating system calls are implemented as thread in the same address space Bugs in one part of the system can affect the whole system Often more efficient and less time consuming as a full context switch with address space changes. On small microcontrollers on which only one application is executed this disadvantage is acceptable.

Zephyr Nanokernel Overview A high-performance, multi-threaded execution environment with a basic set of kernel features Ideal for systems with sparse memory (the kernel itself requires as little as 2 KB!) or only simple multi-threading requirements (such as a set of interrupt handlers and a single background task) Examples of such systems include: embedded sensor hubs environmental sensors simple LED wearables store inventory tags

Nanokernel Scheduling and Objects Background Task Kernel Services Server Fiber Fiber FIFO LIFO Stack Mutex Timer Semaphore ISR ISR ISR

Nanokernel Scheduling and Objects Cooperatively scheduled Run until they yield or call a blocking API Marked as not runnable Next highest priority fiber is then run Typically used for device drivers and performance-critical work Background Task Server Fiber Fiber ISR ISR ISR

Zephyr Microkernel Overview Supplements the capabilities of the nanokernel to provide a richer set of kernel features Suitable for systems with heftier memory (50 to 900 KB) multiple communication devices (like Wi-Fi and Bluetooth® Low Energy) and multiple data processing tasks Examples of such systems include: Fitness wearables Smart watches IoT wireless gateways

Microkernel Scheduling and Objects Kernel Services Task Background Task Task Task Mutex Timer Semaphore LIFO FIFO Stack Event Pipe Mailbox Memory Pools Memory Maps Server Fiber Fiber ISR ISR ISR

Microkernel Scheduling and Objects A task is scheduled when no fibers are runnable Tasks are preemptible Highest priority task runs first Round-robin time-slicing between tasks of equal priority Used for data processing Background Task Task Task Task Server Fiber Fiber ISR ISR ISR

Agenda Zephyr Project Overview Architecture Overview The Zephyr Kernel Getting Involved

Best-of-Breed Tools Kbuild - The build system of the Linux kernel Kconfig - The configuration system of the Linux kernel Rich and Powerful SDK developed specifically for Zephyr and powered by the Yocto project: 5 different cross-compilers for all supported architectures and platforms Support for baremetal c library, based on newlib Host tools needed for debugging and downloading images (flashing) into target platforms Builds natively on Linux*, MacOS* and Microsoft* Windows Building on all various operating systems using Docker containers

► More platforms and boards to follow ◀ Supported Platforms Arduino* 101 Intel® Quark™ D2000 CRB 2nd Generation Intel® Galileo FRDM-K64F Arduino Due ARC EM Starter Kit ST Nucleo F103RB ► More platforms and boards to follow ◀

Summary and Next Steps Established code-base with strong community and industry support Focused and committed to support industry standards Innovative and forward looking by design Open to all A true open-source project, ready for your ideas, feedback and contributions

Examine the code and join! Participate! Impact architecture Direction Marketing / Advocacy Decision making Examine the code and join!

Zephyr™ Project Demos from our member companies Visit Us! Booth #108 Zephyr™ Project Demos from our member companies www.zephyrproject.org Other Zephyr™ Project Sessions @ ELC/OpenIoT Zephyr™ Project Security Monday, April 4, 2016 Harbor Ballroom E Zephyr™ Project Overview Tuesday, April 5, 2016 Power Management in Zephyr™ RTOS Wednesday, April 6, 2016