+ All Categories
Home > Documents > The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes:...

The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes:...

Date post: 03-Jul-2020
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
45
Corporate Technology The Internet of Things and Life beyond Linux Embedded Linux Conference Europe 2016 Prof. Dr. Wolfgang Mauerer Siemens AG, Corporate Research and Technologies Smart Embedded Systems Corporate Competence Centre Embedded Linux Copyright c 2016, Siemens AG. All rights reserved. Page 1 13. Oct. 2016 W. Mauerer Siemens Corporate Technology
Transcript
Page 1: The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes: Properties 4 Development with RTEMS Application Style Building RTEMS systems Example:

Corporate Technology

The Internet of Things and Lifebeyond Linux

Embedded Linux Conference Europe 2016

Prof. Dr. Wolfgang MauererSiemens AG, Corporate Research and TechnologiesSmart Embedded SystemsCorporate Competence Centre Embedded Linux

Copyright c© 2016, Siemens AG. All rights reserved.

Page 1 13. Oct. 2016 W. Mauerer Siemens Corporate Technology

Page 2: The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes: Properties 4 Development with RTEMS Application Style Building RTEMS systems Example:

Overview

1 Introduction

2 IoT vs. Linux: Conceptual Differences

3 IoT OSes: Properties

4 Development with RTEMSApplication StyleBuilding RTEMS systemsExample: Networked Appliance with Dynamic Language

Page 2 13. Oct. 2016 W. Mauerer Siemens Corporate Technology

Page 3: The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes: Properties 4 Development with RTEMS Application Style Building RTEMS systems Example:

Outline

1 Introduction

2 IoT vs. Linux: Conceptual Differences

3 IoT OSes: Properties

4 Development with RTEMSApplication StyleBuilding RTEMS systemsExample: Networked Appliance with Dynamic Language

Page 3 13. Oct. 2016 W. Mauerer Siemens Corporate Technology

Page 4: The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes: Properties 4 Development with RTEMS Application Style Building RTEMS systems Example:

Introduction

Target Audience

Linux is your standard development targetYour embedded boards come with Linux/AndroidOpen Source is default choice“Standard embedded engineer”

TA Check

Linux application development?Embedded Linux system development?Deeply embedded systems development?

Page 4 13. Oct. 2016 W. Mauerer Siemens Corporate Technology

Page 5: The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes: Properties 4 Development with RTEMS Application Style Building RTEMS systems Example:

Introduction

Target Audience

Linux is your standard development targetYour embedded boards come with Linux/AndroidOpen Source is default choice“Standard embedded engineer”

TA Check

Linux application development?Embedded Linux system development?Deeply embedded systems development?

Page 4 13. Oct. 2016 W. Mauerer Siemens Corporate Technology

Page 6: The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes: Properties 4 Development with RTEMS Application Style Building RTEMS systems Example:

Introduction

Target Audience

Linux is your standard development targetYour embedded boards come with Linux/AndroidOpen Source is default choice“Standard embedded engineer”

TA Check

Linux application development?Embedded Linux system development?Deeply embedded systems development?

Page 4 13. Oct. 2016 W. Mauerer Siemens Corporate Technology

Page 7: The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes: Properties 4 Development with RTEMS Application Style Building RTEMS systems Example:

Introduction

Target Audience

Linux is your standard development targetYour embedded boards come with Linux/AndroidOpen Source is default choice“Standard embedded engineer”

TA Check

Linux application development?Embedded Linux system development?Deeply embedded systems development?

Page 4 13. Oct. 2016 W. Mauerer Siemens Corporate Technology

Page 8: The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes: Properties 4 Development with RTEMS Application Style Building RTEMS systems Example:

Internet of Things: What is it about?

Internet of Things

Wireless sensor networks, home controlUbiquitous connectivity

Novel communication approaches (non-IP mesh networks)Not covered in this presentation

2020: 25-30 billion devicesHardware costs extremely important

Page 5 13. Oct. 2016 W. Mauerer Siemens Corporate Technology

Page 9: The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes: Properties 4 Development with RTEMS Application Style Building RTEMS systems Example:

Hardware for IoT I

Infinite Ressources

Supermarket class smartphone: 2GiB RAM, 2-4 coresRaspberry Pi: 1GiB RAM, 4 cores

Deeply Embedded: Cortex-M class

NXP: ≈ 200 devices, TI: ≈ 400 devicesOn-Board memory, 100s of KiBToo large for bare metal programming, too small for LinuxAvailable during the last 20 yearsLikely not going away any time soon

Page 6 13. Oct. 2016 W. Mauerer Siemens Corporate Technology

Page 10: The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes: Properties 4 Development with RTEMS Application Style Building RTEMS systems Example:

Hardware for IoT II

ARM M0/M0+/M3/M4

32-bit, <500 MHz 32-bit, <1 GHz 32/64-bit, <2 GHz 64-bit, >2 GHz

MiBs GiBs GiBs TiBs

< 8 MiB < 1 GiB < 4 GiB > 4 GiB

Arduino class board RPI class board SoC-FPGA (Zync,…) Industrial PC

ARM M4/7,A9,R4/5/7

Networked Node Embedded Server Embedded Comp. Embedded Cntrl.

special purpose & server based controllers control systems

multi-purpose controllers PLC, IoT node gateways

Sensor, field device

Architecture, clock

non-volatile storage

HW ref. platform

ARM offerings

RAM

application examples

Intel offerings

M0/M0+/M3/M4 M4/7,A9,R4/5/7 ARM A9/A35,R7 ARM A53/A72

ARM M0/M0+/M3/M4 ARM M4/7,A9,R4/5/7 7,Intel Atom /A72,Core,Xeon Quark MCU Quark SoC Atom Core, Xeon

Page 7 13. Oct. 2016 W. Mauerer Siemens Corporate Technology

Page 11: The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes: Properties 4 Development with RTEMS Application Style Building RTEMS systems Example:

Shrinking Linux?

Network maintainer’s point of view

What parts would you remove to get the foot print down for a 2MBsingle purpose machine?I wouldn’t use Linux, end of story.Maybe two decades ago, but not now, those days are over.

(Response to net diet patch series)

Page 8 13. Oct. 2016 W. Mauerer Siemens Corporate Technology

Page 12: The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes: Properties 4 Development with RTEMS Application Style Building RTEMS systems Example:

Alternatives

Linux Weltanschauung

“Linux has a lot more longevity and generality than most embeddedOSes. Most such OSes are proprietary. All of them lack the range ofcapabilities, drivers, and general level of code quality and reviewfound in Linux. Most have far smaller communities (or nocommunities at all).”

tiny.wiki.kernel.org/faq

Page 9 13. Oct. 2016 W. Mauerer Siemens Corporate Technology

Page 13: The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes: Properties 4 Development with RTEMS Application Style Building RTEMS systems Example:

Weltanschauung and Veracity

Many parts of Linux: Very high qualityTremendous complexity. Necessary?“Corner Cases” like real-time: Community?

Page 10 13. Oct. 2016 W. Mauerer Siemens Corporate Technology

Page 14: The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes: Properties 4 Development with RTEMS Application Style Building RTEMS systems Example:

Consequences I

Perception

“A growing kernel makes it hard for the people who are trying to buildtiny systems, forcing them to go to a proprietary real-time operatingsystem instead.” lwn.net

Alternative RTOSes

RTEMS, eCos, Contiki, RIOT, mbed, FreeRTOS, uclinux,threadX. . .〈Favourite proprietary OS〉

Page 11 13. Oct. 2016 W. Mauerer Siemens Corporate Technology

Page 15: The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes: Properties 4 Development with RTEMS Application Style Building RTEMS systems Example:

Consequences II

No communities at all?

0

10

20

30

40

Jan 2014 Apr 2014 Jul 2014 Oct 2014 Jan 2015Date

Post

ings

(wee

kly

med

ian)

Operating System Preempt RT RTEMS Riot

Biased, naturally: Specific feature vs. complete OSCommunity and Quality: No argument against non-Linux OSEsp. Documentation sometimes substantially better

Page 12 13. Oct. 2016 W. Mauerer Siemens Corporate Technology

Page 16: The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes: Properties 4 Development with RTEMS Application Style Building RTEMS systems Example:

Outline

1 Introduction

2 IoT vs. Linux: Conceptual Differences

3 IoT OSes: Properties

4 Development with RTEMSApplication StyleBuilding RTEMS systemsExample: Networked Appliance with Dynamic Language

Page 13 13. Oct. 2016 W. Mauerer Siemens Corporate Technology

Page 17: The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes: Properties 4 Development with RTEMS Application Style Building RTEMS systems Example:

∆(IoT, Linux): Address Spaces & Execution

Kernel+User//Syscalls//Threads vs. processes//Stacks

Page 14 13. Oct. 2016 W. Mauerer Siemens Corporate Technology

Page 18: The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes: Properties 4 Development with RTEMS Application Style Building RTEMS systems Example:

∆(IoT, Linux): Scheduling

RT scheduling//determinism//scheduling choices//pre-computed schedules//time vs. event based

Page 15 13. Oct. 2016 W. Mauerer Siemens Corporate Technology

Page 19: The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes: Properties 4 Development with RTEMS Application Style Building RTEMS systems Example:

∆(IoT, Linux): Building Appliances

App packaging//highly configurable kernels

Page 16 13. Oct. 2016 W. Mauerer Siemens Corporate Technology

Page 20: The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes: Properties 4 Development with RTEMS Application Style Building RTEMS systems Example:

IoT vs. Linux: Legal Caveats

IoT vs. Linux: Legal Caveats

Linux: Transition Kernel⇔ Userland: license barrierIoT: Kernel + “Userland” in single address spaceCode (statically) linked togetherSome licenses: Implications on payload code, up to inheritingOS license!

Page 17 13. Oct. 2016 W. Mauerer Siemens Corporate Technology

Page 21: The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes: Properties 4 Development with RTEMS Application Style Building RTEMS systems Example:

IoT vs. Linux: Commonalities

IoT and Linux: Commonalities

Toolchain (Cross Building), Build System, Version ControlDebugging MechanismsStandard C/C++ programming techniquesNon-system libraries: Custom API

POSIX is overrated!IoT system libraries: Yet another library. . .

Page 18 13. Oct. 2016 W. Mauerer Siemens Corporate Technology

Page 22: The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes: Properties 4 Development with RTEMS Application Style Building RTEMS systems Example:

Outline

1 Introduction

2 IoT vs. Linux: Conceptual Differences

3 IoT OSes: Properties

4 Development with RTEMSApplication StyleBuilding RTEMS systemsExample: Networked Appliance with Dynamic Language

Page 19 13. Oct. 2016 W. Mauerer Siemens Corporate Technology

Page 23: The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes: Properties 4 Development with RTEMS Application Style Building RTEMS systems Example:

High-Level Comparison

System POSIX Maturity VM Archs Drivers Ressources Docs

FreeRTOS 7 high 3 high high low good

RTEMS 3 very high 7 high very high avg very good

µclinux 3 avg 7 avg high avg poor

mbed 7 high 7 low low avg very good

Zephyr 7 high 7 low avg low avg

Page 20 13. Oct. 2016 W. Mauerer Siemens Corporate Technology

Page 24: The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes: Properties 4 Development with RTEMS Application Style Building RTEMS systems Example:

RTEMS

RTEMS – Real-Time Executive forMultiprocessor Systems

Extensive support for CPU architecturesComprehensive board supportCommercial Vendors involved indevelopmentPOSIX/Berkeley sockets supportFreeBSD and LWIP networking stacksMPU, but no MMU support

www.rtems.org

≈ 250KiB

Page 21 13. Oct. 2016 W. Mauerer Siemens Corporate Technology

Page 25: The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes: Properties 4 Development with RTEMS Application Style Building RTEMS systems Example:

FreeRTOS

FreeRTOS

Virtual address space supportDynamic task creationVery small communityMultiple TCP/IP stacks; Berkeley socketsAPI

www.freertos.org

A few KiBonwards

Page 22 13. Oct. 2016 W. Mauerer Siemens Corporate Technology

Page 26: The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes: Properties 4 Development with RTEMS Application Style Building RTEMS systems Example:

mbed

mbed

Restricted to ARM targets (Cortex-M)Ease of use for (first-time) developers:Web-based dev environmentVery easy deployment of applications (w/suitable HW)

Upload binary to mass storage deviceHW target support required (mbed HDK)

High level C++ SDK

www.mbed.org

≈ 512 KiB

Page 23 13. Oct. 2016 W. Mauerer Siemens Corporate Technology

Page 27: The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes: Properties 4 Development with RTEMS Application Style Building RTEMS systems Example:

Zephyr

Zephyr

Linux Foundation Community ProjectBuild system and programming style verysimilar to Linux kernelNano- and Microkernel with differentAPIs/capabilities

Nanokernel: Single task + ISR + fibres(non-preemptive; cooperativemultitasking)Microkernel: Multiple tasks (+ ISR +fibres); preemptive multitasking

www.zephyrproject.org

A few KiBonwards

Page 24 13. Oct. 2016 W. Mauerer Siemens Corporate Technology

Page 28: The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes: Properties 4 Development with RTEMS Application Style Building RTEMS systems Example:

Outline

1 Introduction

2 IoT vs. Linux: Conceptual Differences

3 IoT OSes: Properties

4 Development with RTEMSApplication StyleBuilding RTEMS systemsExample: Networked Appliance with Dynamic Language

Page 25 13. Oct. 2016 W. Mauerer Siemens Corporate Technology

Page 29: The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes: Properties 4 Development with RTEMS Application Style Building RTEMS systems Example:

RTEMS example application I

#include <s t d i o . h>#include <s t d l i b . h>

void ∗POSIX In i t (void ∗argument

){

p r i n t ( ” Hel lo , wor ld ” ) ;e x i t ( 0 ) ;

}

/∗ c o n f i g u r a t i o n i n fo rma t i on ∗/

#include <bsp . h>

#define CONFIGURE APPLICATION NEEDS CONSOLE DRIVER

#define CONFIGURE POSIX INIT THREAD TABLE#define CONFIGURE MAXIMUM POSIX THREADS 1

#define CONFIGURE INIT#include <rtems / confdefs . h>

Page 26 13. Oct. 2016 W. Mauerer Siemens Corporate Technology

Page 30: The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes: Properties 4 Development with RTEMS Application Style Building RTEMS systems Example:

Building RTEMS systems

Building a complete system

1 Download sources (links: see published slides)2 Define target environment3 Define build environment details

Technical Detailswget http://url/of/component.tar.bz2

Page 27 13. Oct. 2016 W. Mauerer Siemens Corporate Technology

Page 31: The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes: Properties 4 Development with RTEMS Application Style Building RTEMS systems Example:

Building RTEMS systems

Building a complete system

1 Download sources (links: see published slides)2 Define target environment3 Define build environment details

Technical Details

export ARCH=armexport BSP=raspberrypi

Page 27 13. Oct. 2016 W. Mauerer Siemens Corporate Technology

Page 32: The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes: Properties 4 Development with RTEMS Application Style Building RTEMS systems Example:

Building RTEMS systems

Building a complete system

1 Download sources (links: see published slides)2 Define target environment3 Define build environment details

Technical Details

export ARCH=armexport BSP=stm32f4

Page 27 13. Oct. 2016 W. Mauerer Siemens Corporate Technology

Page 33: The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes: Properties 4 Development with RTEMS Application Style Building RTEMS systems Example:

Building RTEMS systems

Building a complete system

1 Download sources (links: see published slides)2 Define target environment3 Define build environment details

Technical Details

export ARCH=i386export BSP=pc386

Page 27 13. Oct. 2016 W. Mauerer Siemens Corporate Technology

Page 34: The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes: Properties 4 Development with RTEMS Application Style Building RTEMS systems Example:

Building RTEMS systems

Building a complete system

1 Download sources (links: see published slides)2 Define target environment3 Define build environment details

Technical Details

export TARGET=${ARCH}-rtems4.11export TOOLDIR=${HOME}/rtems-binexport JOBS=8export PATH=${TOOLDIR}/bin:${PATH}export RTEMS MAKEFILE PATH=\

${TOOLDIR}/rtems/bsps/4.11/${ARCH}-rtems4.11/${BSP}export RTEMS ROOT=${TOOLDIR}/rtems/bsps/4.11/share/rtems4.11/

Page 27 13. Oct. 2016 W. Mauerer Siemens Corporate Technology

Page 35: The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes: Properties 4 Development with RTEMS Application Style Building RTEMS systems Example:

Building RTEMS systems

Building a complete system

1 Build binutils2 Build the initial C compiler/standard C library/final C compiler3 Build the RTEMS kernel

Technical Details

mkdir binutils-build; cd binutils-build../binutils-version/configure --target=${TARGET} \

--prefix=${TOOLDIR}make -j${JOBS} && make install

Page 27 13. Oct. 2016 W. Mauerer Siemens Corporate Technology

Page 36: The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes: Properties 4 Development with RTEMS Application Style Building RTEMS systems Example:

Building RTEMS systems

Building a complete system

1 Build binutils2 Build the initial C compiler/standard C library/final C compiler3 Build the RTEMS kernel

Technical Details

mkdir gcc-build; cd gcc-build../gcc-4.9.1/configure --target=${TARGET} --without-headers \

--with-gnu-as --with-newlib \--enable-threads --prefix=${TOOLDIR} \--enable-languages="c,c++"

make all-gcc -j${JOBS} && make install-gcc

Page 27 13. Oct. 2016 W. Mauerer Siemens Corporate Technology

Page 37: The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes: Properties 4 Development with RTEMS Application Style Building RTEMS systems Example:

Building RTEMS systems

Building a complete system

1 Build binutils2 Build the initial C compiler/standard C library/final C compiler3 Build the RTEMS kernel

Technical Details

mkdir newlib-build; cd newlib-build../newlib/configure --target=${TARGET} --prefix=${TOOLDIR}make -j${JOBS} && make install

Page 27 13. Oct. 2016 W. Mauerer Siemens Corporate Technology

Page 38: The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes: Properties 4 Development with RTEMS Application Style Building RTEMS systems Example:

Building RTEMS systems

Building a complete system

1 Build binutils2 Build the initial C compiler/standard C library/final C compiler3 Build the RTEMS kernel

Technical Details

cd gccbuild../gcc-4.9.1/configure --target=${TARGET} --with-gnu-as \

--with-newlib --enable-threads \--enable-languages="c,c++" \--prefix=${TOOLDIR}

make -j${JOBS} && make install

Page 27 13. Oct. 2016 W. Mauerer Siemens Corporate Technology

Page 39: The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes: Properties 4 Development with RTEMS Application Style Building RTEMS systems Example:

Building RTEMS systems

Building a complete system

1 Build binutils2 Build the initial C compiler/standard C library/final C compiler3 Build the RTEMS kernel

Technical Details

cd rtems; ./bootstrapcd ..; mkdir rtems-build; cd rtems-build../rtems/configure --target=${ARCH}-rtems4.11 \

--enable-rtemsbsp=${BSP} \--enable-networking --enable-posix \--prefix=${TOOLDIR}/rtems/bsps/4.11

make && make install

Page 27 13. Oct. 2016 W. Mauerer Siemens Corporate Technology

Page 40: The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes: Properties 4 Development with RTEMS Application Style Building RTEMS systems Example:

Building the payload application

Building the payload application

Collect application sources (libraries: separate build, of course)Makefile templates: rtems/make/TemplateBuild process delivers binaries in o-optimized/

file.exe: ELF executable. Symbol information, sections etc.file.ralf: RTEMS Application Loadable File. “Core dump” ofthe binary. (≈ objdump -O binary) – execute on raw hardware(debugger, flash tool, bootloader)

Page 28 13. Oct. 2016 W. Mauerer Siemens Corporate Technology

Page 41: The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes: Properties 4 Development with RTEMS Application Style Building RTEMS systems Example:

Running pc386 inside qemu

System in emulated machine

qemu-system-i386 -no-reboot -serial stdio -monitor null \-nographic -m 2 \-append "--console=com1" \-s -kernel file.exe

Page 29 13. Oct. 2016 W. Mauerer Siemens Corporate Technology

Page 42: The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes: Properties 4 Development with RTEMS Application Style Building RTEMS systems Example:

Running pc386 inside qemu

System in emulated machine + debugging

qemu-system-i386 -no-reboot -serial stdio -monitor null \-nographic -m 2 \-append "--console=com1" \-s -kernel file.exe

gdb file.elf

(gdb) target remote localhost:1234

. . . as easy as debugging a simple Linux userland application

Page 29 13. Oct. 2016 W. Mauerer Siemens Corporate Technology

Page 43: The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes: Properties 4 Development with RTEMS Application Style Building RTEMS systems Example:

Running pc386 inside qemu

System in emulated machine + debugging + networking

qemu-system-i386 -no-reboot -serial stdio -monitor null \-nographic -m 4 \-append "--console=com1 --ne2k-irq=9" \-device ne2k isa,netdev=usernet \-netdev user,id=usernet \-redir tcp:24742::24742 \-s -kernel file.exe

Page 29 13. Oct. 2016 W. Mauerer Siemens Corporate Technology

Page 44: The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes: Properties 4 Development with RTEMS Application Style Building RTEMS systems Example:

Networked appliance with dynamic language

Requirements

Payload: No deeply embedded experts requiredPort lua to device (essentially: adapt Makefile)Run standard C applications (RT etc.) in parallel

Standard networking (configuration option!)Linux-like interactive developmentWorks well with ≈ 0.5 MiB of RAMSee link in published slides

Page 30 13. Oct. 2016 W. Mauerer Siemens Corporate Technology

Page 45: The Internet of Things and Life beyond Linux...2 IoT vs. Linux: Conceptual Differences 3 IoT OSes: Properties 4 Development with RTEMS Application Style Building RTEMS systems Example:

Thanks for your interest!

Page 31 13. Oct. 2016 W. Mauerer Siemens Corporate Technology


Recommended