SlideShare ist ein Scribd-Unternehmen logo
1 von 44
Downloaden Sie, um offline zu lesen
1
About ICS
Delivering Smart Devices for a Connected World
● Founded in 1987
● Largest source of independent Qt expertise in North America
● Trusted Qt Service Partner since 2002
● Exclusive Open Enrollment Training Partner in North America
● Provides integrated custom software development and user experience (UX) design
● Embedded, touchscreen, mobile and desktop applications
● HQ in Waltham, MA with offices in California, Canada, Europe
Boston UX
● Part of the ICS family, focusing on UX design
● Designs intuitive touchscreen interfaces for high-impact embedded
and connected medical, industrial and consumer devices
2
About Konsulko
3
Presenters
Jeff Tranter
Qt Consulting Manager
ICS
4
Leon Anavi
Senior Software
Engineer
Konsulko Group
Software Update Mechanisms
● Many things to consider (disk space, network bandwidth, security, apps, etc)
● Build systems and board support packages (BSP)
● Integration of the update mechanisms
● Back-end for managing fleets of devices
5
Build Frameworks for Embedded Linux Distributions
Popular open source build systems for custom embedded Linux distributions:
Which one do you use?
6
The Yocto Project
● Open source collaborative project of the Linux foundation for creating custom
Linux-based systems for embedded devices using the OpenEmbedded Build
System
● OpenEmbedded Build System includes BitBake and OpenEmbedded Core
● Poky is a reference distribution of the Yocto Project provided as metadata,
without binary files, to bootstrap your own distribution for embedded devices
● Bi-annual release cycle
● Long term support (LTS) release covering two-year period
7
Common Embedded Linux Update Strategies
● A/B updates (dual redundant scheme)
● Delta updates
● Container-based updates
● Combined strategies
8
A/B Upgrades
● Dual A/B identical rootfs partitions
● Data partition for storing any persistent data which is left unchanged during
the update process
● Typically a client application runs on the embedded device and periodically
connects to a server to check for updates
● If a new software update is available, the client downloads and installs it on
the other partition
● Fallback in case of update failure
9
Delta Updates
● Only the binary delta between the difference is sent to the embedded device
● Works in a Git-like model for filesystem trees
● Saves storage space and connection bandwidth
● Rollback of the system to a previous state
10
A/B vs Delta Updates
11
Update strategy Storage space Update size Rollback to a
previous stage
Fallback to a
back-up image
on a separate
partition
A/B
Updates
Large Large Yes Yes
Delta
Updates
Small Small Yes No
Container-based Updates
● Container technology has changed the way application developers interact
with the cloud and some of the good practices are nowadays applied to the
development workflow for embedded Linux devices and Internet of Things
● Containers make applications faster to deploy, easier to update and more
secure through isolation
● Yocto/OE layer meta-virtualization provides support for building Xen, KVM,
Libvirt, docker and associated packages necessary for constructing OE-based
virtualized solutions
12
Combined Strategies
Multiple combinations exist for more complicated use cases, for example:
● A/B updates with delta updates
● Containers with A/B updates
● Containers with delta updates
● Containers with delta and A/B updates
● Other
13
Popular open source solutions
● Mender
● RAUC
● SWUpdate
● Swupd
● UpdateHub
● Balena
● Pantacor
● Eclipse Kanto
● Snap
14
● libostree (OSTree)
● Aktualizr
● Aktualizr-lite
● QtOTA
● Torizon
● FullMetalUpdate
● Rpm-ostree (used in Project Atomic)
Mender
● Available as a free open source or paid commercial/enterprise plans
● A/B update scheme for open source and all plans as well as delta updates for
professional and enterprise plans
● Back-end services (Hosted Mender)
● Written in Go, Python, JavaScript
● Yocto/OE integration through meta-mender and extra BSP layers:
https://github.com/mendersoftware/meta-mender
● Support for Raspberry Pi, BeagleBone, x86-64, Rockchip, Allwinner, NXP, etc.
● Source code in GitHub under Apache 2.0
15
How to do A/B Upgrade with Mender?
Steps to install Mender A/B update on an embedded device:
● Apply update
● Reboot
● On the first boot after a successful update, though the Mender client a
commit must be performed to accept the update (otherwise the system will
roll-back on next reboot)
16
Mender Client
Mender A/B updates supports two client modes:
● Managed (default) - client running as a daemon polls the server for updates
● Standalone - updates are triggered locally which is suitable for physical media
or any network update in pull mode
To use standalone client mode in Yocto/OpenEmbedded set:
SYSTEMD_AUTO_ENABLE_pn-mender = "disable"
17
Mender Data Partition
● Mender creates a /data partition to store persistent data, preserved during
Mender updates. Supports ext4, Btrfs and F2FS file systems.
● The Mender client on the embedded device uses /data/mender to preserve
data and state across updates
● Variable MENDER_DATA_PART_SIZE_MB configures the size of the /data
partition. By default it is 128MB. If enabled, mender feature
mender-growfs-data which relies on systemd-growfs tries to resize on first
boot with the remaining free space
● It is possible to create an image for the data partition in advance with bitbake:
IMAGE_FSTYPES:append = " dataimg"
18
RAUC
● A lightweight update client that runs on an Embedded Linux device and
reliably controls the procedure of A/B upgrading the device with a new
firmware revision
● Supports multiple update scenarios
● Provides tool for the build system to create, inspect and modify update
bundles
● Uses X.509 cryptography to sign update bundles
● Compatible with the Yocto Project, PTXdist and Buildroot
19
RAUC
● Select an appropriate bootloader
● Enable SquashFS in the Linux kernel configurations
● ext4 root file system (RAUC does not have an ext2 / ext3 file type)
● Create specific partitions that matches the RAUC slots
● Configure Bootloader environment and create a script to switch RAUC slots
● Create a certificate and a keyring to RAUC’s system.conf
20
meta-rauc-community
● Yocto/OE layer with examples how to integrate RAUC on various machines
● Started in 2020
● Moved to the RAUC organization in GitHub in 2021
● Currently supports x86-64, QEMU, Raspberry Pi through meta-raspberrypi,
Sunxi (Allwinner) devices through meta-sunxi, NVIDIA Jetson TX2 through
meta-tegra
● https://github.com/rauc/meta-rauc-community/
21
RAUC Data Partition
● Supports single and redundant data partitions
● For redundant data partitions the active rootfs slot has to mount the correct
data partition dynamically, for example with a udev rule
22
One more thing: Eclipse hawkBit
● Domain independent back-end framework for rolling out software updates to
constrained edge devices as well as more powerful controllers and gateways
connected to IP based networking infrastructure
● Written in Java
● Available in GitHub under EPL-1.0 License
● Compatible with RAUC and SWUpdate
● https://www.eclipse.org/hawkbit/
23
libostree
● Libostree (previously known as OSTree), is a shared library and tools for
distributing and deploying file system images as atomic upgrades of the
whole file system tree
● Provides a suite of command line tools that combines a “git-like” model for
committing, downloading and deploying bootable filesystem trees as well as
bootloader configuration
● Effective with respect to disk space and connection bandwidth
● Supports rollback of the system to a previous state
● Used in many embedded Linux solutions: Fedora IoT, Torizon, Aktualizr,
Aktualizr-lite and QtOTA
24
libostree
● libostree encourages systems to implement UsrMove
https://www.freedesktop.org/wiki/Software/systemd/TheCaseForTheUsrMerge/
● libostree comes with optional dracut+systemd integration:
https://ostreedev.github.io/ostree/adapting-existing/
● libostree only preserves /var across upgrades
● /var is empty by default and the operating system needs to dynamically
create the targets of these at boot, for example with systemd-tmpfiles (if
using systemd)
25
Combined Strategies with Containers
● Yocto/OE layer meta-virtualization provides support for building Xen, KVM,
Libvirt, docker and associated packages necessary for constructing OE-based
virtualized solutions. In Yocto/OE virtualization has to be added to the
DISTRO_FEATURES:
DISTRO_FEATURES:append = " virtualization"
● For example adding Docker to the embedded Linux distribution is easy:
IMAGE_INSTALL:append = " docker-ce"
● There are use cases on powerful embedded devices where containers are
combined with A/B updates of the base Linux distribution built with Yocto/OE,
for example with RAUC or Mender
26
Conclusions
● There are numerous things to consider when choosing an upgrade strategy
● There are many reliable open source solutions and not worth developing
another proprietary homegrown solution
● Combined update strategies such as A/B upgrades with containers for
applications are increasingly popular nowadays
● The update process implementation depends on the build system and the
bootloader
● Often real-world solutions require a persistent data partition which is left
unchanged during the update process
27
Leveraging Hardware Support
HSM: Hardware Security Module.
TPM: Trusted Platform Module (also known as ISO/IEC 11889).
CAAM: Cryptographic Accelerator and Assurance Module (NXP i.MX6 processor).
28
CAAM (Cryptographic Accelerator and Assurance Module)
CAAM on the Freescale i.MX platform supports the following:
● Secure memory feature with hardware-enforced access control
● Cryptographic authentication:
● Hashing algorithms: MD5, SHA-1, SHA-224, SHA-256
● Message authentication codes (MAC): HMAC with all hashing algorithms, AES-CMAC,
AES-XCBC-MAC
● Auto padding
● ICV checking
● Authenticated encryption algorithms:
● AES-CCM (counter with CBC-MAC)
29
CAAM (Cryptographic Accelerator and Assurance Module)
● Symmetric key block ciphers:
● AES (128-bit, 192-bit or 256-bit keys)
● DES (64-bit keys, including key parity)
● 3DES (128-bit or 192-bit keys, including key parity)
● Cipher modes: ECB, CBC, CFB, OFB for all block ciphers, CTR for AES
● Symmetric key stream ciphers:
● ArcFour (Alleged RC4 with 40 - 128 bit keys)
● Random-number generation:
● Entropy is generated via an independent free-running ring oscillator.
● For lower-power consumption, oscillator is off when not generating entropy.
● NIST-compliant, pseudo random-number generator seeded using hardware-generated entropy.
30
CAAM (Cryptographic Accelerator and Assurance Module)
31
CAAM (Cryptographic Accelerator and Assurance Module)
Advantages:
● Hardware acceleration reduces CPU time and power usage.
● Validated algorithms.
● Secure method of storing keys.
● Transparent to application-level software when supported by third-party libraries.
● Built into processor/SOM.
Disadvantages:
● Hardware dependent.
● Operating system dependent.
● More complex to use directly.
● Can add to hardware cost if not part of SOM (e.g. HSM/TPM).
32
Using Microsoft Azure IoT to Host Software Updates from the Cloud
● Hosting network updates needs server side support.
● Can roll your own, but makes sense to look at commercial solutions if you
need scalability, reliability, security, authentication, etc.
● Many possible solutions, but one option we have used is Microsoft Azure IOT.
● Provides libraries for clients that are cross-platform (scalable from MCUs to
desktops) and multi-language (C, C++, Python).
● Often use "digital twin" architecture.
● We have used it for hosting software updates as well as a larger IoT support
for managing devices like medical instruments to allow managing and
monitoring a large fleet of instruments geographically distributed.
33
Using Microsoft Azure IoT to Host Software Updates from the Cloud
ICS Approach:
● Wrote a C++ wrapper library around Microsoft's Azure IoT client APIs to
provide just the functions we need on the device.
● Makes it less dependent on Azure APIs, versions, etc.
● Avoids application developers needing to know details of Azure IoT.
● Also provides other features like authentication and key management.
● Have been able to use this wrapper library on two different projects so far.
34
Case Study - Software Updates for a Medical Instrument
Key Requirements:
● Ability to update application, operating system, and/or embedded firmware
(e.g. MCUs).
● Encrypted and authenticated/signed updates.
● Desire to use similar scheme for updates of language translations and
assays.
● Ability to rollback update on failure.
● Requirement to keep existing instrument data.
● Initially just support for updates from USB storage, but wanted to later extend
to network updates.
35
Case Study - Software Updates for a Medical Instrument
Features of the design:
● A/B update approach.
● Components installed on the system (including software updates) use a
manifest file which define the components of an update and have
cryptographic hashes of all files. Manifests are signed and portions are
encrypted. Overall updates are encrypted.
● Use certificates to generate and validate signing of updates.
● Data transferred between the instrument device and remote servers is
encrypted.
36
Case Study - Software Updates for a Medical Instrument
Features of the design (continued):
● TLS certificates verify the authenticity of the instrument that the servers
communicate with.
● TLS certificates verify the authenticity of the remote servers that the
instrument connects to.
● Leverage CAAM for encryption/decryption and key management.
● Data transferred over networking (internal and external to the device)
encrypted using TLS with AES256 encryption using CAAM to manage keys
and provide hardware acceleration of the encryption/decryption.
37
A/B Update Approach
38
A/B Update Approach
39
Signing and Verification
40
Secure Boot
41
Pros and Cons of a Roll Your Own Design
Pros:
● Fewer third-party components and dependencies.
● Custom solution addresses requirements of the particular project/device.
● No licensing costs or issues.
● Updates only contain the necessary components that need to be updated.
Cons:
● Was harder to expand system to support IoT than if it had been originally designed
in.
● CAAM features are specific to i.MX6 platform.
● Challenging to get CAAM working.
● Design did not support updating the boot loader (but was not a requirement).
42
Other Lessons Learned
● Learning curve for CAAM
● Performance
● Security versus convenience
43
Any questions?
44
www.ics.com
www.konsulko.com

Weitere ähnliche Inhalte

Was ist angesagt?

Introduction to Nexus Repository Manager.pdf
Introduction to Nexus Repository Manager.pdfIntroduction to Nexus Repository Manager.pdf
Introduction to Nexus Repository Manager.pdfKnoldus Inc.
 
Docker introduction (1)
Docker introduction (1)Docker introduction (1)
Docker introduction (1)Gourav Varma
 
Building a CICD Pipeline for deploying on Containers
Building a CICD Pipeline for deploying on ContainersBuilding a CICD Pipeline for deploying on Containers
Building a CICD Pipeline for deploying on ContainersAmazon Web Services
 
Docker and kubernetes
Docker and kubernetesDocker and kubernetes
Docker and kubernetesDongwon Kim
 
Introduction - vSphere 5 High Availability (HA)
Introduction - vSphere 5 High Availability (HA)Introduction - vSphere 5 High Availability (HA)
Introduction - vSphere 5 High Availability (HA)Eric Sloof
 
Read-only rootfs: theory and practice
Read-only rootfs: theory and practiceRead-only rootfs: theory and practice
Read-only rootfs: theory and practiceChris Simmonds
 
Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...
Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...
Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...Edureka!
 
What is Jenkins | Jenkins Tutorial for Beginners | Edureka
What is Jenkins | Jenkins Tutorial for Beginners | EdurekaWhat is Jenkins | Jenkins Tutorial for Beginners | Edureka
What is Jenkins | Jenkins Tutorial for Beginners | EdurekaEdureka!
 
Leveraging Nexus Repository Manager at the Heart of DevOps
Leveraging Nexus Repository Manager at the Heart of DevOpsLeveraging Nexus Repository Manager at the Heart of DevOps
Leveraging Nexus Repository Manager at the Heart of DevOpsSeniorStoryteller
 
Virtualization - Kernel Virtual Machine (KVM)
Virtualization - Kernel Virtual Machine (KVM)Virtualization - Kernel Virtual Machine (KVM)
Virtualization - Kernel Virtual Machine (KVM)Wan Leung Wong
 
OpenShift Virtualization- Technical Overview.pdf
OpenShift Virtualization- Technical Overview.pdfOpenShift Virtualization- Technical Overview.pdf
OpenShift Virtualization- Technical Overview.pdfssuser1490e8
 
Ansible Introduction
Ansible Introduction Ansible Introduction
Ansible Introduction Robert Reiz
 
Docker Networking Overview
Docker Networking OverviewDocker Networking Overview
Docker Networking OverviewSreenivas Makam
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentationSuresh Kumar
 
9 steps to awesome with kubernetes
9 steps to awesome with kubernetes9 steps to awesome with kubernetes
9 steps to awesome with kubernetesBaraniBuuny
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker IntroductionSparkbit
 
Docker 101 - Nov 2016
Docker 101 - Nov 2016Docker 101 - Nov 2016
Docker 101 - Nov 2016Docker, Inc.
 

Was ist angesagt? (20)

Introduction to Nexus Repository Manager.pdf
Introduction to Nexus Repository Manager.pdfIntroduction to Nexus Repository Manager.pdf
Introduction to Nexus Repository Manager.pdf
 
Docker introduction (1)
Docker introduction (1)Docker introduction (1)
Docker introduction (1)
 
Kubernetes 101
Kubernetes   101Kubernetes   101
Kubernetes 101
 
Building a CICD Pipeline for deploying on Containers
Building a CICD Pipeline for deploying on ContainersBuilding a CICD Pipeline for deploying on Containers
Building a CICD Pipeline for deploying on Containers
 
Docker and kubernetes
Docker and kubernetesDocker and kubernetes
Docker and kubernetes
 
Introduction - vSphere 5 High Availability (HA)
Introduction - vSphere 5 High Availability (HA)Introduction - vSphere 5 High Availability (HA)
Introduction - vSphere 5 High Availability (HA)
 
Read-only rootfs: theory and practice
Read-only rootfs: theory and practiceRead-only rootfs: theory and practice
Read-only rootfs: theory and practice
 
Docker
DockerDocker
Docker
 
Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...
Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...
Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...
 
What is Jenkins | Jenkins Tutorial for Beginners | Edureka
What is Jenkins | Jenkins Tutorial for Beginners | EdurekaWhat is Jenkins | Jenkins Tutorial for Beginners | Edureka
What is Jenkins | Jenkins Tutorial for Beginners | Edureka
 
Leveraging Nexus Repository Manager at the Heart of DevOps
Leveraging Nexus Repository Manager at the Heart of DevOpsLeveraging Nexus Repository Manager at the Heart of DevOps
Leveraging Nexus Repository Manager at the Heart of DevOps
 
Virtualization - Kernel Virtual Machine (KVM)
Virtualization - Kernel Virtual Machine (KVM)Virtualization - Kernel Virtual Machine (KVM)
Virtualization - Kernel Virtual Machine (KVM)
 
OpenShift Virtualization- Technical Overview.pdf
OpenShift Virtualization- Technical Overview.pdfOpenShift Virtualization- Technical Overview.pdf
OpenShift Virtualization- Technical Overview.pdf
 
Ansible Introduction
Ansible Introduction Ansible Introduction
Ansible Introduction
 
Docker Networking Overview
Docker Networking OverviewDocker Networking Overview
Docker Networking Overview
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentation
 
9 steps to awesome with kubernetes
9 steps to awesome with kubernetes9 steps to awesome with kubernetes
9 steps to awesome with kubernetes
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
Ubuntu
UbuntuUbuntu
Ubuntu
 
Docker 101 - Nov 2016
Docker 101 - Nov 2016Docker 101 - Nov 2016
Docker 101 - Nov 2016
 

Ähnlich wie Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linux Device

XPDS16: The OpenXT Project in 2016 - Christopher Clark, BAE Systems
XPDS16: The OpenXT Project in 2016 - Christopher Clark, BAE SystemsXPDS16: The OpenXT Project in 2016 - Christopher Clark, BAE Systems
XPDS16: The OpenXT Project in 2016 - Christopher Clark, BAE SystemsThe Linux Foundation
 
Embedded Linux Build Systems - Texas Linux Fest 2018
Embedded Linux Build Systems - Texas Linux Fest 2018Embedded Linux Build Systems - Texas Linux Fest 2018
Embedded Linux Build Systems - Texas Linux Fest 2018Mender.io
 
Mender: The open-source software update solution
Mender: The open-source software update solutionMender: The open-source software update solution
Mender: The open-source software update solutionMender.io
 
Why the yocto project for my io t project elc_edinburgh_2018
Why the yocto project for my io t project elc_edinburgh_2018Why the yocto project for my io t project elc_edinburgh_2018
Why the yocto project for my io t project elc_edinburgh_2018Mender.io
 
Linux field-update-2015
Linux field-update-2015Linux field-update-2015
Linux field-update-2015Chris Simmonds
 
Docker Meetup 08 03-2016
Docker Meetup 08 03-2016Docker Meetup 08 03-2016
Docker Meetup 08 03-2016Docker
 
Revolutionizing WSO2 PaaS with Kubernetes & App Factory
Revolutionizing WSO2 PaaS with Kubernetes & App FactoryRevolutionizing WSO2 PaaS with Kubernetes & App Factory
Revolutionizing WSO2 PaaS with Kubernetes & App FactoryImesh Gunaratne
 
IoT: Contrasting Yocto/Buildroot to binary OSes
IoT: Contrasting Yocto/Buildroot to binary OSesIoT: Contrasting Yocto/Buildroot to binary OSes
IoT: Contrasting Yocto/Buildroot to binary OSesMender.io
 
Speed & Agility of Innovation with Docker & Kubernetes
Speed & Agility of Innovation with Docker & KubernetesSpeed & Agility of Innovation with Docker & Kubernetes
Speed & Agility of Innovation with Docker & KubernetesICS
 
Embedded linux build systems
Embedded linux build systems  Embedded linux build systems
Embedded linux build systems Mender.io
 
Tim Hall and Ryan Betts [InfluxData] | InfluxDB Roadmap and Engineering Updat...
Tim Hall and Ryan Betts [InfluxData] | InfluxDB Roadmap and Engineering Updat...Tim Hall and Ryan Betts [InfluxData] | InfluxDB Roadmap and Engineering Updat...
Tim Hall and Ryan Betts [InfluxData] | InfluxDB Roadmap and Engineering Updat...InfluxData
 
Tips for Installing Cognos Analytics 11.2.1x
Tips for Installing Cognos Analytics 11.2.1xTips for Installing Cognos Analytics 11.2.1x
Tips for Installing Cognos Analytics 11.2.1xSenturus
 
Install .Net Core, SQL Server V-Next on Linux and deploy .Net core applicatio...
Install .Net Core, SQL Server V-Next on Linux and deploy .Net core applicatio...Install .Net Core, SQL Server V-Next on Linux and deploy .Net core applicatio...
Install .Net Core, SQL Server V-Next on Linux and deploy .Net core applicatio...Ajith Ramawickrama
 
Put the dev back in devops - Cloud-native at local speed! - RH Summit 19
Put the dev back in devops - Cloud-native at local speed! - RH Summit 19Put the dev back in devops - Cloud-native at local speed! - RH Summit 19
Put the dev back in devops - Cloud-native at local speed! - RH Summit 19Jorge Morales
 
Modern IoT and Embedded Linux Deployment - Berlin
Modern IoT and Embedded Linux Deployment - BerlinModern IoT and Embedded Linux Deployment - Berlin
Modern IoT and Embedded Linux Deployment - BerlinDjalal Harouni
 
The ultimate guide to software updates on embedded linux devices
The ultimate guide to software updates on embedded linux devicesThe ultimate guide to software updates on embedded linux devices
The ultimate guide to software updates on embedded linux devicesMender.io
 
It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.
It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.
It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.All Things Open
 

Ähnlich wie Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linux Device (20)

XPDS16: The OpenXT Project in 2016 - Christopher Clark, BAE Systems
XPDS16: The OpenXT Project in 2016 - Christopher Clark, BAE SystemsXPDS16: The OpenXT Project in 2016 - Christopher Clark, BAE Systems
XPDS16: The OpenXT Project in 2016 - Christopher Clark, BAE Systems
 
Embedded Linux Build Systems - Texas Linux Fest 2018
Embedded Linux Build Systems - Texas Linux Fest 2018Embedded Linux Build Systems - Texas Linux Fest 2018
Embedded Linux Build Systems - Texas Linux Fest 2018
 
Mender: The open-source software update solution
Mender: The open-source software update solutionMender: The open-source software update solution
Mender: The open-source software update solution
 
Why the yocto project for my io t project elc_edinburgh_2018
Why the yocto project for my io t project elc_edinburgh_2018Why the yocto project for my io t project elc_edinburgh_2018
Why the yocto project for my io t project elc_edinburgh_2018
 
Linux field-update-2015
Linux field-update-2015Linux field-update-2015
Linux field-update-2015
 
Docker Meetup 08 03-2016
Docker Meetup 08 03-2016Docker Meetup 08 03-2016
Docker Meetup 08 03-2016
 
EVA_Navigator_Presentation.ppt
EVA_Navigator_Presentation.pptEVA_Navigator_Presentation.ppt
EVA_Navigator_Presentation.ppt
 
Revolutionizing WSO2 PaaS with Kubernetes & App Factory
Revolutionizing WSO2 PaaS with Kubernetes & App FactoryRevolutionizing WSO2 PaaS with Kubernetes & App Factory
Revolutionizing WSO2 PaaS with Kubernetes & App Factory
 
IoT: Contrasting Yocto/Buildroot to binary OSes
IoT: Contrasting Yocto/Buildroot to binary OSesIoT: Contrasting Yocto/Buildroot to binary OSes
IoT: Contrasting Yocto/Buildroot to binary OSes
 
Speed & Agility of Innovation with Docker & Kubernetes
Speed & Agility of Innovation with Docker & KubernetesSpeed & Agility of Innovation with Docker & Kubernetes
Speed & Agility of Innovation with Docker & Kubernetes
 
Embedded linux build systems
Embedded linux build systems  Embedded linux build systems
Embedded linux build systems
 
Tim Hall and Ryan Betts [InfluxData] | InfluxDB Roadmap and Engineering Updat...
Tim Hall and Ryan Betts [InfluxData] | InfluxDB Roadmap and Engineering Updat...Tim Hall and Ryan Betts [InfluxData] | InfluxDB Roadmap and Engineering Updat...
Tim Hall and Ryan Betts [InfluxData] | InfluxDB Roadmap and Engineering Updat...
 
Cloud computing components
Cloud computing componentsCloud computing components
Cloud computing components
 
Tips for Installing Cognos Analytics 11.2.1x
Tips for Installing Cognos Analytics 11.2.1xTips for Installing Cognos Analytics 11.2.1x
Tips for Installing Cognos Analytics 11.2.1x
 
Install .Net Core, SQL Server V-Next on Linux and deploy .Net core applicatio...
Install .Net Core, SQL Server V-Next on Linux and deploy .Net core applicatio...Install .Net Core, SQL Server V-Next on Linux and deploy .Net core applicatio...
Install .Net Core, SQL Server V-Next on Linux and deploy .Net core applicatio...
 
Put the dev back in devops - Cloud-native at local speed! - RH Summit 19
Put the dev back in devops - Cloud-native at local speed! - RH Summit 19Put the dev back in devops - Cloud-native at local speed! - RH Summit 19
Put the dev back in devops - Cloud-native at local speed! - RH Summit 19
 
Explore asp.net core 3.0 features
Explore asp.net core 3.0 featuresExplore asp.net core 3.0 features
Explore asp.net core 3.0 features
 
Modern IoT and Embedded Linux Deployment - Berlin
Modern IoT and Embedded Linux Deployment - BerlinModern IoT and Embedded Linux Deployment - Berlin
Modern IoT and Embedded Linux Deployment - Berlin
 
The ultimate guide to software updates on embedded linux devices
The ultimate guide to software updates on embedded linux devicesThe ultimate guide to software updates on embedded linux devices
The ultimate guide to software updates on embedded linux devices
 
It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.
It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.
It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.
 

Mehr von ICS

The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Practical Advice for FDA’s 510(k) Requirements.pdf
Practical Advice for FDA’s 510(k) Requirements.pdfPractical Advice for FDA’s 510(k) Requirements.pdf
Practical Advice for FDA’s 510(k) Requirements.pdfICS
 
Accelerating Development of a Safety-Critical Cobot Welding System with Qt/QM...
Accelerating Development of a Safety-Critical Cobot Welding System with Qt/QM...Accelerating Development of a Safety-Critical Cobot Welding System with Qt/QM...
Accelerating Development of a Safety-Critical Cobot Welding System with Qt/QM...ICS
 
Overcoming CMake Configuration Issues Webinar
Overcoming CMake Configuration Issues WebinarOvercoming CMake Configuration Issues Webinar
Overcoming CMake Configuration Issues WebinarICS
 
Enhancing Quality and Test in Medical Device Design - Part 2.pdf
Enhancing Quality and Test in Medical Device Design - Part 2.pdfEnhancing Quality and Test in Medical Device Design - Part 2.pdf
Enhancing Quality and Test in Medical Device Design - Part 2.pdfICS
 
Designing and Managing IoT Devices for Rapid Deployment - Webinar.pdf
Designing and Managing IoT Devices for Rapid Deployment - Webinar.pdfDesigning and Managing IoT Devices for Rapid Deployment - Webinar.pdf
Designing and Managing IoT Devices for Rapid Deployment - Webinar.pdfICS
 
Quality and Test in Medical Device Design - Part 1.pdf
Quality and Test in Medical Device Design - Part 1.pdfQuality and Test in Medical Device Design - Part 1.pdf
Quality and Test in Medical Device Design - Part 1.pdfICS
 
Creating Digital Twins Using Rapid Development Techniques.pdf
Creating Digital Twins Using Rapid Development Techniques.pdfCreating Digital Twins Using Rapid Development Techniques.pdf
Creating Digital Twins Using Rapid Development Techniques.pdfICS
 
Secure Your Medical Devices From the Ground Up
Secure Your Medical Devices From the Ground Up Secure Your Medical Devices From the Ground Up
Secure Your Medical Devices From the Ground Up ICS
 
Cybersecurity and Software Updates in Medical Devices.pdf
Cybersecurity and Software Updates in Medical Devices.pdfCybersecurity and Software Updates in Medical Devices.pdf
Cybersecurity and Software Updates in Medical Devices.pdfICS
 
MDG Panel - Creating Expert Level GUIs for Complex Medical Devices
MDG Panel - Creating Expert Level GUIs for Complex Medical DevicesMDG Panel - Creating Expert Level GUIs for Complex Medical Devices
MDG Panel - Creating Expert Level GUIs for Complex Medical DevicesICS
 
How to Craft a Winning IOT Device Management Solution
How to Craft a Winning IOT Device Management SolutionHow to Craft a Winning IOT Device Management Solution
How to Craft a Winning IOT Device Management SolutionICS
 
Bridging the Gap Between Development and Regulatory Teams
Bridging the Gap Between Development and Regulatory TeamsBridging the Gap Between Development and Regulatory Teams
Bridging the Gap Between Development and Regulatory TeamsICS
 
IoT Device Fleet Management: Create a Robust Solution with Azure
IoT Device Fleet Management: Create a Robust Solution with AzureIoT Device Fleet Management: Create a Robust Solution with Azure
IoT Device Fleet Management: Create a Robust Solution with AzureICS
 
Basic Cmake for Qt Users
Basic Cmake for Qt UsersBasic Cmake for Qt Users
Basic Cmake for Qt UsersICS
 
Qt Installer Framework
Qt Installer FrameworkQt Installer Framework
Qt Installer FrameworkICS
 
Bridging the Gap Between Development and Regulatory Teams
Bridging the Gap Between Development and Regulatory TeamsBridging the Gap Between Development and Regulatory Teams
Bridging the Gap Between Development and Regulatory TeamsICS
 
Overcome Hardware And Software Challenges - Medical Device Case Study
Overcome Hardware And Software Challenges - Medical Device Case StudyOvercome Hardware And Software Challenges - Medical Device Case Study
Overcome Hardware And Software Challenges - Medical Device Case StudyICS
 
User Experience Design for IoT
User Experience Design for IoTUser Experience Design for IoT
User Experience Design for IoTICS
 
Software Bill of Materials - Accelerating Your Secure Embedded Development.pdf
Software Bill of Materials - Accelerating Your Secure Embedded Development.pdfSoftware Bill of Materials - Accelerating Your Secure Embedded Development.pdf
Software Bill of Materials - Accelerating Your Secure Embedded Development.pdfICS
 

Mehr von ICS (20)

The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Practical Advice for FDA’s 510(k) Requirements.pdf
Practical Advice for FDA’s 510(k) Requirements.pdfPractical Advice for FDA’s 510(k) Requirements.pdf
Practical Advice for FDA’s 510(k) Requirements.pdf
 
Accelerating Development of a Safety-Critical Cobot Welding System with Qt/QM...
Accelerating Development of a Safety-Critical Cobot Welding System with Qt/QM...Accelerating Development of a Safety-Critical Cobot Welding System with Qt/QM...
Accelerating Development of a Safety-Critical Cobot Welding System with Qt/QM...
 
Overcoming CMake Configuration Issues Webinar
Overcoming CMake Configuration Issues WebinarOvercoming CMake Configuration Issues Webinar
Overcoming CMake Configuration Issues Webinar
 
Enhancing Quality and Test in Medical Device Design - Part 2.pdf
Enhancing Quality and Test in Medical Device Design - Part 2.pdfEnhancing Quality and Test in Medical Device Design - Part 2.pdf
Enhancing Quality and Test in Medical Device Design - Part 2.pdf
 
Designing and Managing IoT Devices for Rapid Deployment - Webinar.pdf
Designing and Managing IoT Devices for Rapid Deployment - Webinar.pdfDesigning and Managing IoT Devices for Rapid Deployment - Webinar.pdf
Designing and Managing IoT Devices for Rapid Deployment - Webinar.pdf
 
Quality and Test in Medical Device Design - Part 1.pdf
Quality and Test in Medical Device Design - Part 1.pdfQuality and Test in Medical Device Design - Part 1.pdf
Quality and Test in Medical Device Design - Part 1.pdf
 
Creating Digital Twins Using Rapid Development Techniques.pdf
Creating Digital Twins Using Rapid Development Techniques.pdfCreating Digital Twins Using Rapid Development Techniques.pdf
Creating Digital Twins Using Rapid Development Techniques.pdf
 
Secure Your Medical Devices From the Ground Up
Secure Your Medical Devices From the Ground Up Secure Your Medical Devices From the Ground Up
Secure Your Medical Devices From the Ground Up
 
Cybersecurity and Software Updates in Medical Devices.pdf
Cybersecurity and Software Updates in Medical Devices.pdfCybersecurity and Software Updates in Medical Devices.pdf
Cybersecurity and Software Updates in Medical Devices.pdf
 
MDG Panel - Creating Expert Level GUIs for Complex Medical Devices
MDG Panel - Creating Expert Level GUIs for Complex Medical DevicesMDG Panel - Creating Expert Level GUIs for Complex Medical Devices
MDG Panel - Creating Expert Level GUIs for Complex Medical Devices
 
How to Craft a Winning IOT Device Management Solution
How to Craft a Winning IOT Device Management SolutionHow to Craft a Winning IOT Device Management Solution
How to Craft a Winning IOT Device Management Solution
 
Bridging the Gap Between Development and Regulatory Teams
Bridging the Gap Between Development and Regulatory TeamsBridging the Gap Between Development and Regulatory Teams
Bridging the Gap Between Development and Regulatory Teams
 
IoT Device Fleet Management: Create a Robust Solution with Azure
IoT Device Fleet Management: Create a Robust Solution with AzureIoT Device Fleet Management: Create a Robust Solution with Azure
IoT Device Fleet Management: Create a Robust Solution with Azure
 
Basic Cmake for Qt Users
Basic Cmake for Qt UsersBasic Cmake for Qt Users
Basic Cmake for Qt Users
 
Qt Installer Framework
Qt Installer FrameworkQt Installer Framework
Qt Installer Framework
 
Bridging the Gap Between Development and Regulatory Teams
Bridging the Gap Between Development and Regulatory TeamsBridging the Gap Between Development and Regulatory Teams
Bridging the Gap Between Development and Regulatory Teams
 
Overcome Hardware And Software Challenges - Medical Device Case Study
Overcome Hardware And Software Challenges - Medical Device Case StudyOvercome Hardware And Software Challenges - Medical Device Case Study
Overcome Hardware And Software Challenges - Medical Device Case Study
 
User Experience Design for IoT
User Experience Design for IoTUser Experience Design for IoT
User Experience Design for IoT
 
Software Bill of Materials - Accelerating Your Secure Embedded Development.pdf
Software Bill of Materials - Accelerating Your Secure Embedded Development.pdfSoftware Bill of Materials - Accelerating Your Secure Embedded Development.pdf
Software Bill of Materials - Accelerating Your Secure Embedded Development.pdf
 

Kürzlich hochgeladen

Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareJim McKeeth
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in sowetomasabamasaba
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
tonesoftg
tonesoftgtonesoftg
tonesoftglanshi9
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...masabamasaba
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Bert Jan Schrijver
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...Jittipong Loespradit
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...masabamasaba
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is insideshinachiaurasa2
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 

Kürzlich hochgeladen (20)

Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 

Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linux Device

  • 1. 1
  • 2. About ICS Delivering Smart Devices for a Connected World ● Founded in 1987 ● Largest source of independent Qt expertise in North America ● Trusted Qt Service Partner since 2002 ● Exclusive Open Enrollment Training Partner in North America ● Provides integrated custom software development and user experience (UX) design ● Embedded, touchscreen, mobile and desktop applications ● HQ in Waltham, MA with offices in California, Canada, Europe Boston UX ● Part of the ICS family, focusing on UX design ● Designs intuitive touchscreen interfaces for high-impact embedded and connected medical, industrial and consumer devices 2
  • 4. Presenters Jeff Tranter Qt Consulting Manager ICS 4 Leon Anavi Senior Software Engineer Konsulko Group
  • 5. Software Update Mechanisms ● Many things to consider (disk space, network bandwidth, security, apps, etc) ● Build systems and board support packages (BSP) ● Integration of the update mechanisms ● Back-end for managing fleets of devices 5
  • 6. Build Frameworks for Embedded Linux Distributions Popular open source build systems for custom embedded Linux distributions: Which one do you use? 6
  • 7. The Yocto Project ● Open source collaborative project of the Linux foundation for creating custom Linux-based systems for embedded devices using the OpenEmbedded Build System ● OpenEmbedded Build System includes BitBake and OpenEmbedded Core ● Poky is a reference distribution of the Yocto Project provided as metadata, without binary files, to bootstrap your own distribution for embedded devices ● Bi-annual release cycle ● Long term support (LTS) release covering two-year period 7
  • 8. Common Embedded Linux Update Strategies ● A/B updates (dual redundant scheme) ● Delta updates ● Container-based updates ● Combined strategies 8
  • 9. A/B Upgrades ● Dual A/B identical rootfs partitions ● Data partition for storing any persistent data which is left unchanged during the update process ● Typically a client application runs on the embedded device and periodically connects to a server to check for updates ● If a new software update is available, the client downloads and installs it on the other partition ● Fallback in case of update failure 9
  • 10. Delta Updates ● Only the binary delta between the difference is sent to the embedded device ● Works in a Git-like model for filesystem trees ● Saves storage space and connection bandwidth ● Rollback of the system to a previous state 10
  • 11. A/B vs Delta Updates 11 Update strategy Storage space Update size Rollback to a previous stage Fallback to a back-up image on a separate partition A/B Updates Large Large Yes Yes Delta Updates Small Small Yes No
  • 12. Container-based Updates ● Container technology has changed the way application developers interact with the cloud and some of the good practices are nowadays applied to the development workflow for embedded Linux devices and Internet of Things ● Containers make applications faster to deploy, easier to update and more secure through isolation ● Yocto/OE layer meta-virtualization provides support for building Xen, KVM, Libvirt, docker and associated packages necessary for constructing OE-based virtualized solutions 12
  • 13. Combined Strategies Multiple combinations exist for more complicated use cases, for example: ● A/B updates with delta updates ● Containers with A/B updates ● Containers with delta updates ● Containers with delta and A/B updates ● Other 13
  • 14. Popular open source solutions ● Mender ● RAUC ● SWUpdate ● Swupd ● UpdateHub ● Balena ● Pantacor ● Eclipse Kanto ● Snap 14 ● libostree (OSTree) ● Aktualizr ● Aktualizr-lite ● QtOTA ● Torizon ● FullMetalUpdate ● Rpm-ostree (used in Project Atomic)
  • 15. Mender ● Available as a free open source or paid commercial/enterprise plans ● A/B update scheme for open source and all plans as well as delta updates for professional and enterprise plans ● Back-end services (Hosted Mender) ● Written in Go, Python, JavaScript ● Yocto/OE integration through meta-mender and extra BSP layers: https://github.com/mendersoftware/meta-mender ● Support for Raspberry Pi, BeagleBone, x86-64, Rockchip, Allwinner, NXP, etc. ● Source code in GitHub under Apache 2.0 15
  • 16. How to do A/B Upgrade with Mender? Steps to install Mender A/B update on an embedded device: ● Apply update ● Reboot ● On the first boot after a successful update, though the Mender client a commit must be performed to accept the update (otherwise the system will roll-back on next reboot) 16
  • 17. Mender Client Mender A/B updates supports two client modes: ● Managed (default) - client running as a daemon polls the server for updates ● Standalone - updates are triggered locally which is suitable for physical media or any network update in pull mode To use standalone client mode in Yocto/OpenEmbedded set: SYSTEMD_AUTO_ENABLE_pn-mender = "disable" 17
  • 18. Mender Data Partition ● Mender creates a /data partition to store persistent data, preserved during Mender updates. Supports ext4, Btrfs and F2FS file systems. ● The Mender client on the embedded device uses /data/mender to preserve data and state across updates ● Variable MENDER_DATA_PART_SIZE_MB configures the size of the /data partition. By default it is 128MB. If enabled, mender feature mender-growfs-data which relies on systemd-growfs tries to resize on first boot with the remaining free space ● It is possible to create an image for the data partition in advance with bitbake: IMAGE_FSTYPES:append = " dataimg" 18
  • 19. RAUC ● A lightweight update client that runs on an Embedded Linux device and reliably controls the procedure of A/B upgrading the device with a new firmware revision ● Supports multiple update scenarios ● Provides tool for the build system to create, inspect and modify update bundles ● Uses X.509 cryptography to sign update bundles ● Compatible with the Yocto Project, PTXdist and Buildroot 19
  • 20. RAUC ● Select an appropriate bootloader ● Enable SquashFS in the Linux kernel configurations ● ext4 root file system (RAUC does not have an ext2 / ext3 file type) ● Create specific partitions that matches the RAUC slots ● Configure Bootloader environment and create a script to switch RAUC slots ● Create a certificate and a keyring to RAUC’s system.conf 20
  • 21. meta-rauc-community ● Yocto/OE layer with examples how to integrate RAUC on various machines ● Started in 2020 ● Moved to the RAUC organization in GitHub in 2021 ● Currently supports x86-64, QEMU, Raspberry Pi through meta-raspberrypi, Sunxi (Allwinner) devices through meta-sunxi, NVIDIA Jetson TX2 through meta-tegra ● https://github.com/rauc/meta-rauc-community/ 21
  • 22. RAUC Data Partition ● Supports single and redundant data partitions ● For redundant data partitions the active rootfs slot has to mount the correct data partition dynamically, for example with a udev rule 22
  • 23. One more thing: Eclipse hawkBit ● Domain independent back-end framework for rolling out software updates to constrained edge devices as well as more powerful controllers and gateways connected to IP based networking infrastructure ● Written in Java ● Available in GitHub under EPL-1.0 License ● Compatible with RAUC and SWUpdate ● https://www.eclipse.org/hawkbit/ 23
  • 24. libostree ● Libostree (previously known as OSTree), is a shared library and tools for distributing and deploying file system images as atomic upgrades of the whole file system tree ● Provides a suite of command line tools that combines a “git-like” model for committing, downloading and deploying bootable filesystem trees as well as bootloader configuration ● Effective with respect to disk space and connection bandwidth ● Supports rollback of the system to a previous state ● Used in many embedded Linux solutions: Fedora IoT, Torizon, Aktualizr, Aktualizr-lite and QtOTA 24
  • 25. libostree ● libostree encourages systems to implement UsrMove https://www.freedesktop.org/wiki/Software/systemd/TheCaseForTheUsrMerge/ ● libostree comes with optional dracut+systemd integration: https://ostreedev.github.io/ostree/adapting-existing/ ● libostree only preserves /var across upgrades ● /var is empty by default and the operating system needs to dynamically create the targets of these at boot, for example with systemd-tmpfiles (if using systemd) 25
  • 26. Combined Strategies with Containers ● Yocto/OE layer meta-virtualization provides support for building Xen, KVM, Libvirt, docker and associated packages necessary for constructing OE-based virtualized solutions. In Yocto/OE virtualization has to be added to the DISTRO_FEATURES: DISTRO_FEATURES:append = " virtualization" ● For example adding Docker to the embedded Linux distribution is easy: IMAGE_INSTALL:append = " docker-ce" ● There are use cases on powerful embedded devices where containers are combined with A/B updates of the base Linux distribution built with Yocto/OE, for example with RAUC or Mender 26
  • 27. Conclusions ● There are numerous things to consider when choosing an upgrade strategy ● There are many reliable open source solutions and not worth developing another proprietary homegrown solution ● Combined update strategies such as A/B upgrades with containers for applications are increasingly popular nowadays ● The update process implementation depends on the build system and the bootloader ● Often real-world solutions require a persistent data partition which is left unchanged during the update process 27
  • 28. Leveraging Hardware Support HSM: Hardware Security Module. TPM: Trusted Platform Module (also known as ISO/IEC 11889). CAAM: Cryptographic Accelerator and Assurance Module (NXP i.MX6 processor). 28
  • 29. CAAM (Cryptographic Accelerator and Assurance Module) CAAM on the Freescale i.MX platform supports the following: ● Secure memory feature with hardware-enforced access control ● Cryptographic authentication: ● Hashing algorithms: MD5, SHA-1, SHA-224, SHA-256 ● Message authentication codes (MAC): HMAC with all hashing algorithms, AES-CMAC, AES-XCBC-MAC ● Auto padding ● ICV checking ● Authenticated encryption algorithms: ● AES-CCM (counter with CBC-MAC) 29
  • 30. CAAM (Cryptographic Accelerator and Assurance Module) ● Symmetric key block ciphers: ● AES (128-bit, 192-bit or 256-bit keys) ● DES (64-bit keys, including key parity) ● 3DES (128-bit or 192-bit keys, including key parity) ● Cipher modes: ECB, CBC, CFB, OFB for all block ciphers, CTR for AES ● Symmetric key stream ciphers: ● ArcFour (Alleged RC4 with 40 - 128 bit keys) ● Random-number generation: ● Entropy is generated via an independent free-running ring oscillator. ● For lower-power consumption, oscillator is off when not generating entropy. ● NIST-compliant, pseudo random-number generator seeded using hardware-generated entropy. 30
  • 31. CAAM (Cryptographic Accelerator and Assurance Module) 31
  • 32. CAAM (Cryptographic Accelerator and Assurance Module) Advantages: ● Hardware acceleration reduces CPU time and power usage. ● Validated algorithms. ● Secure method of storing keys. ● Transparent to application-level software when supported by third-party libraries. ● Built into processor/SOM. Disadvantages: ● Hardware dependent. ● Operating system dependent. ● More complex to use directly. ● Can add to hardware cost if not part of SOM (e.g. HSM/TPM). 32
  • 33. Using Microsoft Azure IoT to Host Software Updates from the Cloud ● Hosting network updates needs server side support. ● Can roll your own, but makes sense to look at commercial solutions if you need scalability, reliability, security, authentication, etc. ● Many possible solutions, but one option we have used is Microsoft Azure IOT. ● Provides libraries for clients that are cross-platform (scalable from MCUs to desktops) and multi-language (C, C++, Python). ● Often use "digital twin" architecture. ● We have used it for hosting software updates as well as a larger IoT support for managing devices like medical instruments to allow managing and monitoring a large fleet of instruments geographically distributed. 33
  • 34. Using Microsoft Azure IoT to Host Software Updates from the Cloud ICS Approach: ● Wrote a C++ wrapper library around Microsoft's Azure IoT client APIs to provide just the functions we need on the device. ● Makes it less dependent on Azure APIs, versions, etc. ● Avoids application developers needing to know details of Azure IoT. ● Also provides other features like authentication and key management. ● Have been able to use this wrapper library on two different projects so far. 34
  • 35. Case Study - Software Updates for a Medical Instrument Key Requirements: ● Ability to update application, operating system, and/or embedded firmware (e.g. MCUs). ● Encrypted and authenticated/signed updates. ● Desire to use similar scheme for updates of language translations and assays. ● Ability to rollback update on failure. ● Requirement to keep existing instrument data. ● Initially just support for updates from USB storage, but wanted to later extend to network updates. 35
  • 36. Case Study - Software Updates for a Medical Instrument Features of the design: ● A/B update approach. ● Components installed on the system (including software updates) use a manifest file which define the components of an update and have cryptographic hashes of all files. Manifests are signed and portions are encrypted. Overall updates are encrypted. ● Use certificates to generate and validate signing of updates. ● Data transferred between the instrument device and remote servers is encrypted. 36
  • 37. Case Study - Software Updates for a Medical Instrument Features of the design (continued): ● TLS certificates verify the authenticity of the instrument that the servers communicate with. ● TLS certificates verify the authenticity of the remote servers that the instrument connects to. ● Leverage CAAM for encryption/decryption and key management. ● Data transferred over networking (internal and external to the device) encrypted using TLS with AES256 encryption using CAAM to manage keys and provide hardware acceleration of the encryption/decryption. 37
  • 42. Pros and Cons of a Roll Your Own Design Pros: ● Fewer third-party components and dependencies. ● Custom solution addresses requirements of the particular project/device. ● No licensing costs or issues. ● Updates only contain the necessary components that need to be updated. Cons: ● Was harder to expand system to support IoT than if it had been originally designed in. ● CAAM features are specific to i.MX6 platform. ● Challenging to get CAAM working. ● Design did not support updating the boot loader (but was not a requirement). 42
  • 43. Other Lessons Learned ● Learning curve for CAAM ● Performance ● Security versus convenience 43