SlideShare a Scribd company logo
Ā© Copyright 2020 Xilinx
RunX
Stefano Stabellini
Bruce Ashfield
Wesley Skeffington
Brian Woods
LVC20
Ā© Copyright 2020 Xilinx
Introducing RunX
 A new OCI-compatible containers runtime to start containers as Xen VMs
 Written for Embedded
 Very simple
 Minimal overhead
 Real-Time support
 Accelerators support
 Secure by Default
 New project started under the Linux Foundation Edge (LF-Edge) umbrella
 Early collaborationwith Zededa
 Permissive license (Apache v2)
 Open to contributions from the start
 All developmentusing a public mailing list: https://lists.lfedge.org/g/eve-runx
Ā© Copyright 2020 Xilinx
RunX
Linux
Container
xl create
Container
1
2
Container Orchestration Framework
(e.g. Kubernetes)
Xen
ramdisk
kernel
VM
containerd
containerd ā€œshimā€
Introducing RunX
Ā© Copyright 2020 Xilinx
RunX: implementation choices
 Easy to Build: minimal build dependencies
 gcc,make, go
 Easy to Run: minimal runtime dependencies
 (in addition to Xen,) bash, jq, socat, daemonize
 No in-guest agents: minimal runtime overhead
 Provides a minimal Linux kernel and Busybox-based ramdiskfor booting regular containers as VMs
 Pristine container environment
 Tiny Micro-VMs optimized for embedded
 A minimal environment
 No device emulation
 No in-guest firmware or bootloaders
 OCI Runtime Spec compliant
 Developedtogetherwith ContainerD
 Should work with any container engines
Ā© Copyright 2020 Xilinx
RunX (Cross)Build
Cross-build requirements:
 cross-compilationtoolchain
 e.g. Linaro: https://releases.linaro.org/components/toolchain/binaries/latest-7/aarch64-linux-gnu
 golang compiler (soon to be removed)
 distro golang package expected to work
$ export ARCH=aarch64
$ export GOROOT=/usr/lib/go-1.10
$ export CROSS_COMPILE=/path/to/aarch64-linux-gnu-
$ ./build.sh
Ā© Copyright 2020 Xilinx
RunX Runtime
Copy runX and /usr/share/runX to target
Enable it in containerd’s config.toml
[plugins.linux]
runtime="/usr/sbin/runX"
Ā© Copyright 2020 Xilinx
Yocto + RunX
meta-virtualization provides the recipes for RunX, Xen and supporting
components (containerd, etc)
Why use Yocto / OE to build / deploy RunX ?
 Leverage the Yocto / OE core values
 Transition path from development to production
 Active community and integration with BSPs (e.g. meta-xilinx)
 Multiconfig builds
 Build host + guests + containers + firmware in a single platform
Note: development and build directly with upstream projects is always possible
Ā© Copyright 2020 Xilinx
Yocto + RunX: Simplified build
Use master branches (there are no stable/released variants yet)
$ git clone -b master http://git.yoctoproject.org/git/poky
$ git clone -b master http://git.openembedded.org/meta-openembedded
$ git clone -b master https://git.yoctoproject.org/git/meta-virtualization
$ git clone -b master https://github.com/Xilinx/meta-xilinx.git
$ . ./oe-init-build-env zcu102-zynqmp
$ bitbake-layers add-layer $(readlink -f $PWD/../meta-openembedded/meta-oe)
$ bitbake-layers add-layer $(readlink -f $PWD/../meta-openembedded/meta-filesystems)
$ bitbake-layers add-layer $(readlink -f $PWD/../meta-openembedded/meta-python)
$ bitbake-layers add-layer $(readlink -f $PWD/../meta-openembedded/meta-networking)
$ bitbake-layers add-layer $(readlink -f $PWD/../meta-virtualization)
$ bitbake-layers add-layer $(readlink -f $PWD/../meta-xilinx/meta-xilinx-bsp)
$ bitbake-layers add-layer $(readlink -f $PWD/../meta-xilinx/meta-xilinx-contrib)
$ bitbake-layers add-layer $(readlink -f $PWD/../meta-xilinx/meta-xilinx-standalone)
Ā© Copyright 2020 Xilinx
Yocto + RunX: Simplified setup
Local build setup (will eventually be in a xen distro config)
$ cat <<EOF >> conf/local.conf
MACHINE ??= "zcu102-zynqmp"
DISTRO = "poky"
BBMULTICONFIG ?= "pmu"
do_image[mcdepends] = "multiconfig::pmu:pmu-firmware:do_deploy"
IMAGE_FSTYPES += "tar.gz cpio.gz.u-boot jffs2"
DISTRO_FEATURES_append=" xen virtualization vmsep"
IMAGE_INSTALL_append = " busybox xen-tools zlib-dev runx"
IMAGE_INSTALL_append += " virtual/containerd virtual/runc"
ASSUME_PROVIDED += "iasl-native"
PACKAGECONFIG_remove_pn-xen += " sdl"
PREFERRED_PROVIDER_qemu-native = "xilinx-qemu-native"
PREFERRED_PROVIDER_nativesdk-qemu = "nativesdk-qemu-xilinx"
BUILDHISTORY_FEATURES ?= "image package sdk"
QB_DEFAULT_KERNEL="none"
QB_MEM = "-m 4096"
EOF
$ cat << EOF > conf/multiconfig/pmu.conf
MACHINE="microblaze-pmu"
DISTRO="xilinx-standalone"
TMPDIR="${TOPDIR}/pmutmp"
EOF
Ā© Copyright 2020 Xilinx
Yocto + RunX: build steps
Note: not all changes are merged upstream, but will be shortly
# download and extract pmu files (optional: only if not using multiconfig):
# Download: https://www.xilinx.com/member/forms/download/xef.html?filename=xilinx-zcu102-v2020.1-final.bsp&akdm=1
$ tar -O -xf xilinx-zcu102-v2020.1-final.bsp xilinx-zcu102-2020.1/pre-built/linux/images/pmu_rom_qemu_sha3.elf >
pmu-rom.elf
$ tar -O -xf xilinx-zcu102-v2020.1-final.bsp xilinx-zcu102-2020.1/pre-built/linux/images/pmufw.elf > pmufw.elf
$ tar -O -xf xilinx-zcu102-v2020.1-final.bsp xilinx-zcu102-2020.1/pre-built/linux/images/system.dtb > system.dtb
# copy files to deploy dir:
$ cp pmufw.elf build/tmp/deploy/images/zcu102-zynqmp/pmu-zcu102-zynqmp.bin
$ cp pmufw.elf build/tmp/deploy/images/zcu102-zynqmp/pmu-zcu102-zynqmp.elf
$ cp pmu-rom.elf $BUILDDIR/tmp/deploy/images/zcu102-zynqmp/pmu-rom.elf
$ cp system.dtb $BUILDDIR/tmp/deploy/images/zcu102-zynqmp/system.dtb
# build the image(s)
$ bitbake core-image-minimal
$ bitbake xen-image-minimal
Ā© Copyright 2020 Xilinx
Yocto + RunX: runtime steps
Note: some on target configuration may be required (and will be automated in
the future)
# core-image-minimal as a sanity test. Works out of deployed artifacts by default:
$ runqemu core-image-minimal slirp nographic
# xen-minimal: requires manual u-boot config, or boot.scr support from image builder
(https://gitlab.com/ViryaOS/imagebuilder)
$ runqemu xen-image-minimal nographic slirp
Ā© Copyright 2020 Xilinx
RunX
Linux
Container
xl create
Container
1
2
Container Orchestration Framework
(e.g. Kubernetes)
Xen
ramdisk
kernel
VM
containerd
containerd ā€œshimā€
RunX: Traditional Containers
Ā© Copyright 2020 Xilinx
RunX
Linux
Container
xl create
Tarball w/ kernel,
ramdisk, & rootfs
1
2
Container Orchestration Framework
(e.g. Kubernetes)
OCI Image Spec Extensions:
- KERNEL
- RAMDISK
Xen
Provided ramdisk
Provided kernel
VM
containerd
containerd ā€œshimā€
RunX: Containers with a Kernel
Ā© Copyright 2020 Xilinx
RunX
Linux
RTOS
xl create
RTOS packaged
as a container
1
2
Container Orchestration Framework
(e.g. Kubernetes)
Xen
VM
containerd
containerd ā€œshimā€
RunX: Baremetal and RTOS Containers
Ā© Copyright 2020 Xilinx
RunX: Containers with a Kernel
 Support containers that come with their own Kernel and/or Ramdisk
 a specific versionof the Linux kernel
 a specific kernel configuration
 LinuxRT
 Non-Linux OSes
 RTOSes
 Baremetal applications
 VxWorks
 Kernel and Ramdisk are advertised using new OCI Image flags
 TBD; currently Implemented using Environmental Variables
 RUNX_KERNEL
 RUNX_RAMDISK
 Workwith CNCF to standardize the new labels
Ā© Copyright 2020 Xilinx
containerd
RunX
+ extra args
Linux
Container
Tarball w/ kernel,
ramdisk, & rootfs
Container Orchestration Framework
(e.g. Kubernetes)
Xen
Provided ramdisk
Provided kernel
VM
Heterogeneous
HW Resource
containerd ā€œshimā€
xl create
2
1
RunX: Device Assignment
Ā© Copyright 2020 Xilinx
Device Assignment
 Device Assignment support via XLCONF
 Appends configurationoptions to the xl config file
 It can be used for anything from device assignmentto changing vcpus and memory configurations
 It can be used to set real-time configurations
 It is set by the user/admin (not by the container)
Ā© Copyright 2020 Xilinx
containerd
RunX
[extra args] or
config.json
Linux
Container
Tarball w/ kernel,
ramdisk, & rootfs
1
2
Container Orchestration Framework
(e.g. Kubernetes)
OCI Image Spec Extensions:
- RESOURCE = DEVICE_DATA
- KERNEL
- RAMDISK
Xen
Provided ramdisk
Provided kernel
VM
Device Config
Heterogeneous
HW Resource
containerd ā€œshimā€
Vision: Accelerators & FPGAs
Ā© Copyright 2020 Xilinx
Vision: Accelerators & FPGAs
1. Containers come with their own accelerator's binaries and data
 FPGAbitstreams
 Co-ProcessorKernels
 AIE Kernels
2. ContainerD calls to a service to program the accelerators
3. RunX assigns the accelerator's resources to the VM
Ā© Copyright 2020 Xilinx
Demo
Ā© Copyright 2020 Xilinx
containerd
RunX
+ extra args
Linux
Baremetal
Xen
VM
TTC Timer
containerd ā€œshimā€
xl create
2
1
RunX RTOS and Device Assignment Demo
Baremetal Container with access to the physical TTC timer
Ā© Copyright 2020 Xilinx
Thank You

More Related Content

What's hot (20)

PDF
Introduction to eBPF and XDP
lcplcp1
Ā 
PDF
Kernel Features for Reducing Power Consumption on Embedded Devices
Ryo Jin
Ā 
PDF
Docker Meetup at Docker HQ: Docker Cloud
Docker, Inc.
Ā 
PDF
C++恋悉WebRTC (DataChannel)ć‚’åˆ©ē”Øć™ć‚‹
ē„åø ä¼Šč—¤
Ā 
PPTX
eBPF Basics
Michael Kehoe
Ā 
PDF
Quick and Easy Device Drivers for Embedded Linux Using UIO
Chris Simmonds
Ā 
PDF
Embedded Android : System Development - Part IV
Emertxe Information Technologies Pvt Ltd
Ā 
PPTX
DRIVE CHARTć®č£å“ 怜 AI ā˜“ IoT ā˜“ ćƒ“ćƒƒć‚°ćƒ‡ćƒ¼ć‚æć‚’ ę”Æćˆć‚‹ć‚¢ćƒ¼ć‚­ćƒ†ć‚Æćƒćƒ£ 怜
DeNA
Ā 
PDF
XPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, Xilinx
The Linux Foundation
Ā 
PDF
Topology Manager恫恤恄恦 / Kubernetes Meetup Tokyo 50
Preferred Networks
Ā 
PDF
Improve Android System Component Performance
National Cheng Kung University
Ā 
PDF
Project meeting: Android Graphics Architecture Overview
Yu-Hsin Hung
Ā 
PDF
AndroidとSELinux
android sola
Ā 
PDF
Android's HIDL: Treble in the HAL
Opersys inc.
Ā 
PDF
BPF / XDP 8ģ›” ģ„øėÆøė‚˜ KossLab
Taeung Song
Ā 
PDF
Design and Concepts of Android Graphics
National Cheng Kung University
Ā 
PDF
Booting Android: bootloaders, fastboot and boot images
Chris Simmonds
Ā 
PDF
OSSć‚’åˆ©ē”Øć—ćŸćƒ—ćƒ­ć‚øć‚§ć‚Æćƒˆē®”ē†
Tadashi Miyazato
Ā 
PPT
GPU Virtualization in Embedded Automotive Solutions
GlobalLogic Ukraine
Ā 
PDF
Virtualization with KVM (Kernel-based Virtual Machine)
Novell
Ā 
Introduction to eBPF and XDP
lcplcp1
Ā 
Kernel Features for Reducing Power Consumption on Embedded Devices
Ryo Jin
Ā 
Docker Meetup at Docker HQ: Docker Cloud
Docker, Inc.
Ā 
C++恋悉WebRTC (DataChannel)ć‚’åˆ©ē”Øć™ć‚‹
ē„åø ä¼Šč—¤
Ā 
eBPF Basics
Michael Kehoe
Ā 
Quick and Easy Device Drivers for Embedded Linux Using UIO
Chris Simmonds
Ā 
Embedded Android : System Development - Part IV
Emertxe Information Technologies Pvt Ltd
Ā 
DRIVE CHARTć®č£å“ 怜 AI ā˜“ IoT ā˜“ ćƒ“ćƒƒć‚°ćƒ‡ćƒ¼ć‚æć‚’ ę”Æćˆć‚‹ć‚¢ćƒ¼ć‚­ćƒ†ć‚Æćƒćƒ£ 怜
DeNA
Ā 
XPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, Xilinx
The Linux Foundation
Ā 
Topology Manager恫恤恄恦 / Kubernetes Meetup Tokyo 50
Preferred Networks
Ā 
Improve Android System Component Performance
National Cheng Kung University
Ā 
Project meeting: Android Graphics Architecture Overview
Yu-Hsin Hung
Ā 
AndroidとSELinux
android sola
Ā 
Android's HIDL: Treble in the HAL
Opersys inc.
Ā 
BPF / XDP 8ģ›” ģ„øėÆøė‚˜ KossLab
Taeung Song
Ā 
Design and Concepts of Android Graphics
National Cheng Kung University
Ā 
Booting Android: bootloaders, fastboot and boot images
Chris Simmonds
Ā 
OSSć‚’åˆ©ē”Øć—ćŸćƒ—ćƒ­ć‚øć‚§ć‚Æćƒˆē®”ē†
Tadashi Miyazato
Ā 
GPU Virtualization in Embedded Automotive Solutions
GlobalLogic Ukraine
Ā 
Virtualization with KVM (Kernel-based Virtual Machine)
Novell
Ā 

Similar to RunX: deploy real-time OSes as containers at the edge (20)

PDF
RunX ELCE 2020
Stefano Stabellini
Ā 
PDF
Xen on ARM for embedded and IoT: from secure containers to dom0less systems
Stefano Stabellini
Ā 
PDF
XDF18: Heterogeneous Real-Time SoC Software Architecture - Stefano Stabellini...
The Linux Foundation
Ā 
PDF
Yocto Project : Custom Embedded Linux Distribution
emertxemarketing
Ā 
PDF
iot_9Yocto Project getting started,,.pdf
arabnuradin
Ā 
PDF
Embedded linux build systems
Mender.io
Ā 
PPTX
Yocto Project introduction
Yi-Hsiu Hsu
Ā 
PDF
Embedded Linux primer
Drew Fustini
Ā 
PDF
yocto_scale_handout-with-notes
Steve Arnold
Ā 
PDF
XPDS14: Xen 4.5 Roadmap - Konrad Wilk, Oracle
The Linux Foundation
Ā 
PDF
Yocto Project Kernel Lab, Hands-On
Trevor Woerner
Ā 
PDF
XPDS16: The OpenXT Project in 2016 - Christopher Clark, BAE Systems
The Linux Foundation
Ā 
PPTX
Proxmox 4.2 usage in the Standards Interoperability PLM Project
Dr Nicolas Figay
Ā 
PDF
Build your own embedded linux distributions by yocto project
Yen-Chin Lee
Ā 
PDF
Linuxcon Barcelon 2012: LXC Best Practices
christophm
Ā 
PDF
Stefano Cordibella - An introduction to Yocto Project
linuxlab_conf
Ā 
PDF
Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...
ICS
Ā 
PDF
The Yocto Project
rossburton
Ā 
PPTX
Effective Linux Development Using PetaLinux Tools 2017.4
Zach Pfeffer
Ā 
PDF
Yocto Project Kernel Lab hands-on
Trevor Woerner
Ā 
RunX ELCE 2020
Stefano Stabellini
Ā 
Xen on ARM for embedded and IoT: from secure containers to dom0less systems
Stefano Stabellini
Ā 
XDF18: Heterogeneous Real-Time SoC Software Architecture - Stefano Stabellini...
The Linux Foundation
Ā 
Yocto Project : Custom Embedded Linux Distribution
emertxemarketing
Ā 
iot_9Yocto Project getting started,,.pdf
arabnuradin
Ā 
Embedded linux build systems
Mender.io
Ā 
Yocto Project introduction
Yi-Hsiu Hsu
Ā 
Embedded Linux primer
Drew Fustini
Ā 
yocto_scale_handout-with-notes
Steve Arnold
Ā 
XPDS14: Xen 4.5 Roadmap - Konrad Wilk, Oracle
The Linux Foundation
Ā 
Yocto Project Kernel Lab, Hands-On
Trevor Woerner
Ā 
XPDS16: The OpenXT Project in 2016 - Christopher Clark, BAE Systems
The Linux Foundation
Ā 
Proxmox 4.2 usage in the Standards Interoperability PLM Project
Dr Nicolas Figay
Ā 
Build your own embedded linux distributions by yocto project
Yen-Chin Lee
Ā 
Linuxcon Barcelon 2012: LXC Best Practices
christophm
Ā 
Stefano Cordibella - An introduction to Yocto Project
linuxlab_conf
Ā 
Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...
ICS
Ā 
The Yocto Project
rossburton
Ā 
Effective Linux Development Using PetaLinux Tools 2017.4
Zach Pfeffer
Ā 
Yocto Project Kernel Lab hands-on
Trevor Woerner
Ā 
Ad

More from Stefano Stabellini (14)

PDF
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Stefano Stabellini
Ā 
PDF
Safety-Certifying Open Source Software: The Case of the Xen Hypervisor
Stefano Stabellini
Ā 
PDF
Xen in Safety-Critical Systems - Critical Summit 2022
Stefano Stabellini
Ā 
PDF
System Device Tree and Lopper: Concrete Examples - ELC NA 2022
Stefano Stabellini
Ā 
PDF
ELC21: VM-to-VM Communication Mechanisms for Embedded
Stefano Stabellini
Ā 
PDF
System Device Tree update: Bus Firewalls and Lopper
Stefano Stabellini
Ā 
PDF
Cache coloring Xen Summit 2020
Stefano Stabellini
Ā 
PDF
Xen Cache Coloring: Interference-Free Real-Time System
Stefano Stabellini
Ā 
PDF
Dom0less - Xen Developer Summit 2019
Stefano Stabellini
Ā 
PDF
Xen and the art of embedded virtualization (ELC 2017)
Stefano Stabellini
Ā 
PDF
Xen Project for ARM Servers
Stefano Stabellini
Ā 
PDF
Xen and OpenStack
Stefano Stabellini
Ā 
PDF
XDS15: Project Raisin
Stefano Stabellini
Ā 
PDF
OpenStack and Xen
Stefano Stabellini
Ā 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Stefano Stabellini
Ā 
Safety-Certifying Open Source Software: The Case of the Xen Hypervisor
Stefano Stabellini
Ā 
Xen in Safety-Critical Systems - Critical Summit 2022
Stefano Stabellini
Ā 
System Device Tree and Lopper: Concrete Examples - ELC NA 2022
Stefano Stabellini
Ā 
ELC21: VM-to-VM Communication Mechanisms for Embedded
Stefano Stabellini
Ā 
System Device Tree update: Bus Firewalls and Lopper
Stefano Stabellini
Ā 
Cache coloring Xen Summit 2020
Stefano Stabellini
Ā 
Xen Cache Coloring: Interference-Free Real-Time System
Stefano Stabellini
Ā 
Dom0less - Xen Developer Summit 2019
Stefano Stabellini
Ā 
Xen and the art of embedded virtualization (ELC 2017)
Stefano Stabellini
Ā 
Xen Project for ARM Servers
Stefano Stabellini
Ā 
Xen and OpenStack
Stefano Stabellini
Ā 
XDS15: Project Raisin
Stefano Stabellini
Ā 
OpenStack and Xen
Stefano Stabellini
Ā 
Ad

Recently uploaded (20)

PDF
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
Ā 
PPTX
MiniTool Power Data Recovery Full Crack Latest 2025
muhammadgurbazkhan
Ā 
PPTX
A Complete Guide to Salesforce SMS Integrations Build Scalable Messaging With...
360 SMS APP
Ā 
PDF
Revenue streams of the Wazirx clone script.pdf
aaronjeffray
Ā 
PDF
GetOnCRM Speeds Up Agentforce 3 Deployment for Enterprise AI Wins.pdf
GetOnCRM Solutions
Ā 
PPTX
How Apagen Empowered an EPC Company with Engineering ERP Software
SatishKumar2651
Ā 
PDF
Executive Business Intelligence Dashboards
vandeslie24
Ā 
PDF
Alarm in Android-Scheduling Timed Tasks Using AlarmManager in Android.pdf
Nabin Dhakal
Ā 
PPTX
Comprehensive Guide: Shoviv Exchange to Office 365 Migration Tool 2025
Shoviv Software
Ā 
PPTX
Writing Better Code - Helping Developers make Decisions.pptx
Lorraine Steyn
Ā 
PPTX
Feb 2021 Cohesity first pitch presentation.pptx
enginsayin1
Ā 
PDF
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pdf
Varsha Nayak
Ā 
PPTX
Migrating Millions of Users with Debezium, Apache Kafka, and an Acyclic Synch...
MD Sayem Ahmed
Ā 
PDF
Powering GIS with FME and VertiGIS - Peak of Data & AI 2025
Safe Software
Ā 
PDF
HiHelloHR – Simplify HR Operations for Modern Workplaces
HiHelloHR
Ā 
PPTX
The Role of a PHP Development Company in Modern Web Development
SEO Company for School in Delhi NCR
Ā 
PDF
Efficient, Automated Claims Processing Software for Insurers
Insurance Tech Services
Ā 
PDF
Salesforce CRM Services.VALiNTRY360
VALiNTRY360
Ā 
PPTX
Tally software_Introduction_Presentation
AditiBansal54083
Ā 
PDF
Streamline Contractor Lifecycle- TECH EHS Solution
TECH EHS Solution
Ā 
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
Ā 
MiniTool Power Data Recovery Full Crack Latest 2025
muhammadgurbazkhan
Ā 
A Complete Guide to Salesforce SMS Integrations Build Scalable Messaging With...
360 SMS APP
Ā 
Revenue streams of the Wazirx clone script.pdf
aaronjeffray
Ā 
GetOnCRM Speeds Up Agentforce 3 Deployment for Enterprise AI Wins.pdf
GetOnCRM Solutions
Ā 
How Apagen Empowered an EPC Company with Engineering ERP Software
SatishKumar2651
Ā 
Executive Business Intelligence Dashboards
vandeslie24
Ā 
Alarm in Android-Scheduling Timed Tasks Using AlarmManager in Android.pdf
Nabin Dhakal
Ā 
Comprehensive Guide: Shoviv Exchange to Office 365 Migration Tool 2025
Shoviv Software
Ā 
Writing Better Code - Helping Developers make Decisions.pptx
Lorraine Steyn
Ā 
Feb 2021 Cohesity first pitch presentation.pptx
enginsayin1
Ā 
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pdf
Varsha Nayak
Ā 
Migrating Millions of Users with Debezium, Apache Kafka, and an Acyclic Synch...
MD Sayem Ahmed
Ā 
Powering GIS with FME and VertiGIS - Peak of Data & AI 2025
Safe Software
Ā 
HiHelloHR – Simplify HR Operations for Modern Workplaces
HiHelloHR
Ā 
The Role of a PHP Development Company in Modern Web Development
SEO Company for School in Delhi NCR
Ā 
Efficient, Automated Claims Processing Software for Insurers
Insurance Tech Services
Ā 
Salesforce CRM Services.VALiNTRY360
VALiNTRY360
Ā 
Tally software_Introduction_Presentation
AditiBansal54083
Ā 
Streamline Contractor Lifecycle- TECH EHS Solution
TECH EHS Solution
Ā 

RunX: deploy real-time OSes as containers at the edge

  • 1. Ā© Copyright 2020 Xilinx RunX Stefano Stabellini Bruce Ashfield Wesley Skeffington Brian Woods LVC20
  • 2. Ā© Copyright 2020 Xilinx Introducing RunX  A new OCI-compatible containers runtime to start containers as Xen VMs  Written for Embedded  Very simple  Minimal overhead  Real-Time support  Accelerators support  Secure by Default  New project started under the Linux Foundation Edge (LF-Edge) umbrella  Early collaborationwith Zededa  Permissive license (Apache v2)  Open to contributions from the start  All developmentusing a public mailing list: https://lists.lfedge.org/g/eve-runx
  • 3. Ā© Copyright 2020 Xilinx RunX Linux Container xl create Container 1 2 Container Orchestration Framework (e.g. Kubernetes) Xen ramdisk kernel VM containerd containerd ā€œshimā€ Introducing RunX
  • 4. Ā© Copyright 2020 Xilinx RunX: implementation choices  Easy to Build: minimal build dependencies  gcc,make, go  Easy to Run: minimal runtime dependencies  (in addition to Xen,) bash, jq, socat, daemonize  No in-guest agents: minimal runtime overhead  Provides a minimal Linux kernel and Busybox-based ramdiskfor booting regular containers as VMs  Pristine container environment  Tiny Micro-VMs optimized for embedded  A minimal environment  No device emulation  No in-guest firmware or bootloaders  OCI Runtime Spec compliant  Developedtogetherwith ContainerD  Should work with any container engines
  • 5. Ā© Copyright 2020 Xilinx RunX (Cross)Build Cross-build requirements:  cross-compilationtoolchain  e.g. Linaro: https://releases.linaro.org/components/toolchain/binaries/latest-7/aarch64-linux-gnu  golang compiler (soon to be removed)  distro golang package expected to work $ export ARCH=aarch64 $ export GOROOT=/usr/lib/go-1.10 $ export CROSS_COMPILE=/path/to/aarch64-linux-gnu- $ ./build.sh
  • 6. Ā© Copyright 2020 Xilinx RunX Runtime Copy runX and /usr/share/runX to target Enable it in containerd’s config.toml [plugins.linux] runtime="/usr/sbin/runX"
  • 7. Ā© Copyright 2020 Xilinx Yocto + RunX meta-virtualization provides the recipes for RunX, Xen and supporting components (containerd, etc) Why use Yocto / OE to build / deploy RunX ?  Leverage the Yocto / OE core values  Transition path from development to production  Active community and integration with BSPs (e.g. meta-xilinx)  Multiconfig builds  Build host + guests + containers + firmware in a single platform Note: development and build directly with upstream projects is always possible
  • 8. Ā© Copyright 2020 Xilinx Yocto + RunX: Simplified build Use master branches (there are no stable/released variants yet) $ git clone -b master http://git.yoctoproject.org/git/poky $ git clone -b master http://git.openembedded.org/meta-openembedded $ git clone -b master https://git.yoctoproject.org/git/meta-virtualization $ git clone -b master https://github.com/Xilinx/meta-xilinx.git $ . ./oe-init-build-env zcu102-zynqmp $ bitbake-layers add-layer $(readlink -f $PWD/../meta-openembedded/meta-oe) $ bitbake-layers add-layer $(readlink -f $PWD/../meta-openembedded/meta-filesystems) $ bitbake-layers add-layer $(readlink -f $PWD/../meta-openembedded/meta-python) $ bitbake-layers add-layer $(readlink -f $PWD/../meta-openembedded/meta-networking) $ bitbake-layers add-layer $(readlink -f $PWD/../meta-virtualization) $ bitbake-layers add-layer $(readlink -f $PWD/../meta-xilinx/meta-xilinx-bsp) $ bitbake-layers add-layer $(readlink -f $PWD/../meta-xilinx/meta-xilinx-contrib) $ bitbake-layers add-layer $(readlink -f $PWD/../meta-xilinx/meta-xilinx-standalone)
  • 9. Ā© Copyright 2020 Xilinx Yocto + RunX: Simplified setup Local build setup (will eventually be in a xen distro config) $ cat <<EOF >> conf/local.conf MACHINE ??= "zcu102-zynqmp" DISTRO = "poky" BBMULTICONFIG ?= "pmu" do_image[mcdepends] = "multiconfig::pmu:pmu-firmware:do_deploy" IMAGE_FSTYPES += "tar.gz cpio.gz.u-boot jffs2" DISTRO_FEATURES_append=" xen virtualization vmsep" IMAGE_INSTALL_append = " busybox xen-tools zlib-dev runx" IMAGE_INSTALL_append += " virtual/containerd virtual/runc" ASSUME_PROVIDED += "iasl-native" PACKAGECONFIG_remove_pn-xen += " sdl" PREFERRED_PROVIDER_qemu-native = "xilinx-qemu-native" PREFERRED_PROVIDER_nativesdk-qemu = "nativesdk-qemu-xilinx" BUILDHISTORY_FEATURES ?= "image package sdk" QB_DEFAULT_KERNEL="none" QB_MEM = "-m 4096" EOF $ cat << EOF > conf/multiconfig/pmu.conf MACHINE="microblaze-pmu" DISTRO="xilinx-standalone" TMPDIR="${TOPDIR}/pmutmp" EOF
  • 10. Ā© Copyright 2020 Xilinx Yocto + RunX: build steps Note: not all changes are merged upstream, but will be shortly # download and extract pmu files (optional: only if not using multiconfig): # Download: https://www.xilinx.com/member/forms/download/xef.html?filename=xilinx-zcu102-v2020.1-final.bsp&akdm=1 $ tar -O -xf xilinx-zcu102-v2020.1-final.bsp xilinx-zcu102-2020.1/pre-built/linux/images/pmu_rom_qemu_sha3.elf > pmu-rom.elf $ tar -O -xf xilinx-zcu102-v2020.1-final.bsp xilinx-zcu102-2020.1/pre-built/linux/images/pmufw.elf > pmufw.elf $ tar -O -xf xilinx-zcu102-v2020.1-final.bsp xilinx-zcu102-2020.1/pre-built/linux/images/system.dtb > system.dtb # copy files to deploy dir: $ cp pmufw.elf build/tmp/deploy/images/zcu102-zynqmp/pmu-zcu102-zynqmp.bin $ cp pmufw.elf build/tmp/deploy/images/zcu102-zynqmp/pmu-zcu102-zynqmp.elf $ cp pmu-rom.elf $BUILDDIR/tmp/deploy/images/zcu102-zynqmp/pmu-rom.elf $ cp system.dtb $BUILDDIR/tmp/deploy/images/zcu102-zynqmp/system.dtb # build the image(s) $ bitbake core-image-minimal $ bitbake xen-image-minimal
  • 11. Ā© Copyright 2020 Xilinx Yocto + RunX: runtime steps Note: some on target configuration may be required (and will be automated in the future) # core-image-minimal as a sanity test. Works out of deployed artifacts by default: $ runqemu core-image-minimal slirp nographic # xen-minimal: requires manual u-boot config, or boot.scr support from image builder (https://gitlab.com/ViryaOS/imagebuilder) $ runqemu xen-image-minimal nographic slirp
  • 12. Ā© Copyright 2020 Xilinx RunX Linux Container xl create Container 1 2 Container Orchestration Framework (e.g. Kubernetes) Xen ramdisk kernel VM containerd containerd ā€œshimā€ RunX: Traditional Containers
  • 13. Ā© Copyright 2020 Xilinx RunX Linux Container xl create Tarball w/ kernel, ramdisk, & rootfs 1 2 Container Orchestration Framework (e.g. Kubernetes) OCI Image Spec Extensions: - KERNEL - RAMDISK Xen Provided ramdisk Provided kernel VM containerd containerd ā€œshimā€ RunX: Containers with a Kernel
  • 14. Ā© Copyright 2020 Xilinx RunX Linux RTOS xl create RTOS packaged as a container 1 2 Container Orchestration Framework (e.g. Kubernetes) Xen VM containerd containerd ā€œshimā€ RunX: Baremetal and RTOS Containers
  • 15. Ā© Copyright 2020 Xilinx RunX: Containers with a Kernel  Support containers that come with their own Kernel and/or Ramdisk  a specific versionof the Linux kernel  a specific kernel configuration  LinuxRT  Non-Linux OSes  RTOSes  Baremetal applications  VxWorks  Kernel and Ramdisk are advertised using new OCI Image flags  TBD; currently Implemented using Environmental Variables  RUNX_KERNEL  RUNX_RAMDISK  Workwith CNCF to standardize the new labels
  • 16. Ā© Copyright 2020 Xilinx containerd RunX + extra args Linux Container Tarball w/ kernel, ramdisk, & rootfs Container Orchestration Framework (e.g. Kubernetes) Xen Provided ramdisk Provided kernel VM Heterogeneous HW Resource containerd ā€œshimā€ xl create 2 1 RunX: Device Assignment
  • 17. Ā© Copyright 2020 Xilinx Device Assignment  Device Assignment support via XLCONF  Appends configurationoptions to the xl config file  It can be used for anything from device assignmentto changing vcpus and memory configurations  It can be used to set real-time configurations  It is set by the user/admin (not by the container)
  • 18. Ā© Copyright 2020 Xilinx containerd RunX [extra args] or config.json Linux Container Tarball w/ kernel, ramdisk, & rootfs 1 2 Container Orchestration Framework (e.g. Kubernetes) OCI Image Spec Extensions: - RESOURCE = DEVICE_DATA - KERNEL - RAMDISK Xen Provided ramdisk Provided kernel VM Device Config Heterogeneous HW Resource containerd ā€œshimā€ Vision: Accelerators & FPGAs
  • 19. Ā© Copyright 2020 Xilinx Vision: Accelerators & FPGAs 1. Containers come with their own accelerator's binaries and data  FPGAbitstreams  Co-ProcessorKernels  AIE Kernels 2. ContainerD calls to a service to program the accelerators 3. RunX assigns the accelerator's resources to the VM
  • 20. Ā© Copyright 2020 Xilinx Demo
  • 21. Ā© Copyright 2020 Xilinx containerd RunX + extra args Linux Baremetal Xen VM TTC Timer containerd ā€œshimā€ xl create 2 1 RunX RTOS and Device Assignment Demo Baremetal Container with access to the physical TTC timer
  • 22. Ā© Copyright 2020 Xilinx Thank You