2
Most read
4
Most read
6
Most read
Immutable Image-Based
Operating Systems
Presented by
Drew Moseley
Technical Solutions Architect
Toradex
WHAT WE’LL
COVER TODAY…
• Definitions
• Architecture
• Benefits
• Desktop Distro
• Embedded OS Architecture
• Demo(?)
AGENDA
WHAT WE DO
RELIABLEAND EASY-TO-USE EMBEDDED
SOLUTIONS FOR YOU
Arm® System on Modules
Reliable
Long-Term Maintenance
Scalable
From Stock
Production-Ready Software
Yocto-Based Linux
Windows Embedded Compact
Development Tools
Long-Term Maintenance
Ease-of-Use
Support
Ecosystem
Definitions
• Immutable1: not capable of or susceptibleto change
› Critical portions of the system are "read-only"
› Updates are performed with only well-defined mechanisms
› User data stored separately
› Applications generally use a different mechanism
1
https://www.merriam-webster.com/dictionary/immutable
2
https://www.merriam-webster.com/dictionary/image
• Image2: exact likeness
› Updating the entire "Operating System"
› Updating individual packages or applications "not supported"
3
https://www.merriam-webster.com/dictionary/atomic
• Atomic3: of, relating to, or concerned with atoms
› Incapable of being subdivided
› No chance of partially installed updates
Other names: Layered OS, Reprovisionable, Anti-hysteresis
Sidebar: Pets vs Cattle
• Coined by Randy Bias1
› Originally from Enterprise Computing
Space
• Desktop/Server:
› Pets - Individual laptops
› Cattle - Servers managed as code
• In Embedded:
› Pets - Weekend projects,
home automation
› Cattle - Large fleets of identical devices.
1 http://cloudscaling.com/blog/cloud-computing/the-history-of-pets-vs-cattle/
Conceptual Architecture
System
Operating System
(Image v1)
Bootloader
Kernel/DTB/Initramfs
"OS" Packages
User Data
User Applications
Conceptual Architecture
System
Operating System
(Image v2)
Bootloader
Kernel/DTB/Initramfs
"OS" Packages
User Data
User Applications
Operating System
(Image v2)
Bootloader
Kernel/DTB/Initramfs
"OS" Packages
Benefits
• Atomic versioning and updates of critical system components
› No more `apt --fix-missing --install` or related commands
• User components separately managed
› Better isolation of dependencies (ie containers)
› Fewer conflicts based on OS installed package versions
• Reproducibility
› The OS image is deterministic
› No configuration drift
• Better testing
› Exactly matching software on test and productiondevices
• Rollback capability
• More secure? Arguable
Drawbacks
• New/unfamiliar workflows
• Less flexible than traditional distros
• Do all your applications run in the
sandbox?
• Reboot required for any updates
› Mitigated by the app packaging system
• Is it really appropriate for desktop/laptop
use?
Technologies and Concepts
• libostree (https://ostreedev.github.io/ostree/)
› "Git for filesystems"
› Content-addressable objectstorage + hard links
• Multiple partitions
› Usually mounted read-only
› Symlinks for mutable config files
• Btrfs snapshots
• Declarative configuration
• Layering: https://coreos.github.io/rpm-ostree/
WHAT IS libostree?
"libostree is both a shared library and suite of command line tools
that combines a “git-like” model for committing and downloading
bootable filesystem trees, along with a layer for deploying them and
managing the bootloader configuration." 1
"git-like"
model
bootable
filesystem
trees
Bootloader
configuratio
n
1 https://github.com/ostreedev/ostree#libostree
OSTree BASICS
• File-based (!)
• Relies on non-root mount/“bind-mount”
- Normally the root of a file system is mounted as “the root”
- Linux allows to bind mount a subdirectory
• Initramfs mounts OSTree
- Pivot into bind mount/sub-directory
• Hardlinks are used to speed-up deployment and
minimize space usage
Source: https://medium.com/@1154_75881/what-is-the-difference-between-a-hard-link-and-a-symbolic-link-14db61df7707
Libostree filesystem layout
(Simplified)
"File system based on the copy-on-write principle
using B-trees, developed at Oracle since 2007"1
• Declared stable in Linux in 2013
• Subvolumes
• Atomically writable snapshots
• Cloning (multiple inodes pointing to the same
disk blocks)
BTRFS Snapshots
1
https://en.wikipedia.org/wiki/Btrfs
Applications
Containers: https://www.docker.com/ or https://podman.io/
Flatpak: https://www.flatpak.org/
Appimage: https://appimage.org/
Snaps: https://snapcraft.io/
Bundled with dependencies
"Distro-independent" Linux packages
Sandboxed from the host OS and other packages
Immutable Image-Based Operating Systems - EW2024.pdf
Torizon Demo
Universal Blue
Based on Fedora Silverblue
"Cloud Native Linux Desktop Model"
• Base images generated by OCI containers
o RPM-OSTree
o BTRFS (snapshots?)
o Applications normally use Flatpak
Distrobox (https://distrobox.it/)
Linuxbrew (https://docs.brew.sh/Homebrew-on-Linux)
Many variants:
• Bluefin: GNOME Desktop
• Bluefin-DX: Bluefin + Cloud developer tools
• Built-in GPU drivers
Universal Blue Demo
NixOS
Reproducible
Declarative
Reliable
Package Manager
or
Full blown OS
VanillaOS
• Ubuntu Desktop based
• Dual A-B partitions
Survey of available systems
Desktop/Server
• Debian: Endless OS
• Ubuntu: VanillaOS
• Fedora: Silverblue
• Universal Blue
• NixOS
• GNU Guix
• Clear Linux
• Fedora CoreOS
• openSUSE Aeon (Gnome)
• openSUSE Kalpa (KDE)
• Flatcar Linux
• Bottlerocket OS
• Talos Linux (k8s)
• ChromeOS
Embedded
• Torizon
• Ubuntu Core
• Linux microPlatform
• BalenaOS
• SteamOS
References
• https://github.com/castrojo/awesome-immutable
• https://discord.gg/N4mswFw6ds
• https://blog.verbum.org/2020/08/22/immutable-%E2%86%92-reprovisionable-anti-hysteresis/
• https://www.torizon.io/
• https://www.torizon.io/open-source-community
• https://universal-blue.org/
THANK YOU
FOR YOUR INTEREST
www.toradex.com | www.torizon.io | developer.toradex.com
community.toradex.com | labs.toradex.com

More Related Content

PDF
Full system roll-back and systemd in SUSE Linux Enterprise 12
PDF
LinuxCon_2013_NA_Eckermann_Filesystems_btrfs.pdf
PDF
Btrfs: Design, Implementation and the Current Status
PDF
Why btrfs is the Bread and Butter of Filesystems
PDF
Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...
 
PDF
Yocto and IoT - a retrospective
PDF
A Journey to Boot Linux on Raspberry Pi
PDF
Embedded linux build systems
Full system roll-back and systemd in SUSE Linux Enterprise 12
LinuxCon_2013_NA_Eckermann_Filesystems_btrfs.pdf
Btrfs: Design, Implementation and the Current Status
Why btrfs is the Bread and Butter of Filesystems
Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...
 
Yocto and IoT - a retrospective
A Journey to Boot Linux on Raspberry Pi
Embedded linux build systems

Similar to Immutable Image-Based Operating Systems - EW2024.pdf (20)

PDF
unix-rosetta
PDF
Exploring Open Source Dual A/B Update Solutions for Embedded Linux
PDF
The ultimate guide to software updates on embedded linux devices
PDF
Read-only rootfs: theory and practice
PPTX
How to install gentoo distributed
PDF
Btrfs by Chris Mason
ODP
Case study of BtrFS: A fault tolerant File system
PDF
Using open source software to build an industrial grade embedded linux platfo...
PDF
Orchestrated Android-Style System Upgrades for Embedded Linux
PDF
Orchestrated Android-Style System Upgrades for Embedded Linux
PDF
PDF
Bsp customization and porting of linux on arm cortex based i.mx6 processor wi...
PDF
Btrfs and Snapper - The Next Steps from Pure Filesystem Features to Integrati...
PDF
Embedded Linux Build Systems - Texas Linux Fest 2018
PDF
Intro To Gentoo Embedded Cclug
PPTX
Introduction to Operating Systems.pptx
PDF
Strategies for developing and deploying your embedded applications and images
PDF
Side by Side Comparison of Dual A/B Update Solutions with the Yocto Project
PDF
Root file system for embedded systems
PDF
Stateless Hypervisors at Scale
unix-rosetta
Exploring Open Source Dual A/B Update Solutions for Embedded Linux
The ultimate guide to software updates on embedded linux devices
Read-only rootfs: theory and practice
How to install gentoo distributed
Btrfs by Chris Mason
Case study of BtrFS: A fault tolerant File system
Using open source software to build an industrial grade embedded linux platfo...
Orchestrated Android-Style System Upgrades for Embedded Linux
Orchestrated Android-Style System Upgrades for Embedded Linux
Bsp customization and porting of linux on arm cortex based i.mx6 processor wi...
Btrfs and Snapper - The Next Steps from Pure Filesystem Features to Integrati...
Embedded Linux Build Systems - Texas Linux Fest 2018
Intro To Gentoo Embedded Cclug
Introduction to Operating Systems.pptx
Strategies for developing and deploying your embedded applications and images
Side by Side Comparison of Dual A/B Update Solutions with the Yocto Project
Root file system for embedded systems
Stateless Hypervisors at Scale
Ad

Recently uploaded (20)

PDF
distributed database system" (DDBS) is often used to refer to both the distri...
PPTX
CN_Unite_1 AI&DS ENGGERING SPPU PUNE UNIVERSITY
PPTX
Building constraction Conveyance of water.pptx
PDF
Design Guidelines and solutions for Plastics parts
PDF
LOW POWER CLASS AB SI POWER AMPLIFIER FOR WIRELESS MEDICAL SENSOR NETWORK
PDF
Artificial Superintelligence (ASI) Alliance Vision Paper.pdf
PPTX
mechattonicsand iotwith sensor and actuator
PDF
Abrasive, erosive and cavitation wear.pdf
PDF
Applications of Equal_Area_Criterion.pdf
PPTX
ai_satellite_crop_management_20250815030350.pptx
PPTX
Chapter 2 -Technology and Enginerring Materials + Composites.pptx
PPTX
tack Data Structure with Array and Linked List Implementation, Push and Pop O...
PPTX
A Brief Introduction to IoT- Smart Objects: The "Things" in IoT
PDF
MLpara ingenieira CIVIL, meca Y AMBIENTAL
PPTX
Management Information system : MIS-e-Business Systems.pptx
PPTX
Feature types and data preprocessing steps
PPTX
Software Engineering and software moduleing
PDF
Java Basics-Introduction and program control
PDF
Unit1 - AIML Chapter 1 concept and ethics
PPTX
Chemical Technological Processes, Feasibility Study and Chemical Process Indu...
distributed database system" (DDBS) is often used to refer to both the distri...
CN_Unite_1 AI&DS ENGGERING SPPU PUNE UNIVERSITY
Building constraction Conveyance of water.pptx
Design Guidelines and solutions for Plastics parts
LOW POWER CLASS AB SI POWER AMPLIFIER FOR WIRELESS MEDICAL SENSOR NETWORK
Artificial Superintelligence (ASI) Alliance Vision Paper.pdf
mechattonicsand iotwith sensor and actuator
Abrasive, erosive and cavitation wear.pdf
Applications of Equal_Area_Criterion.pdf
ai_satellite_crop_management_20250815030350.pptx
Chapter 2 -Technology and Enginerring Materials + Composites.pptx
tack Data Structure with Array and Linked List Implementation, Push and Pop O...
A Brief Introduction to IoT- Smart Objects: The "Things" in IoT
MLpara ingenieira CIVIL, meca Y AMBIENTAL
Management Information system : MIS-e-Business Systems.pptx
Feature types and data preprocessing steps
Software Engineering and software moduleing
Java Basics-Introduction and program control
Unit1 - AIML Chapter 1 concept and ethics
Chemical Technological Processes, Feasibility Study and Chemical Process Indu...
Ad

Immutable Image-Based Operating Systems - EW2024.pdf

  • 1. Immutable Image-Based Operating Systems Presented by Drew Moseley Technical Solutions Architect Toradex
  • 2. WHAT WE’LL COVER TODAY… • Definitions • Architecture • Benefits • Desktop Distro • Embedded OS Architecture • Demo(?) AGENDA
  • 3. WHAT WE DO RELIABLEAND EASY-TO-USE EMBEDDED SOLUTIONS FOR YOU Arm® System on Modules Reliable Long-Term Maintenance Scalable From Stock Production-Ready Software Yocto-Based Linux Windows Embedded Compact Development Tools Long-Term Maintenance Ease-of-Use Support Ecosystem
  • 4. Definitions • Immutable1: not capable of or susceptibleto change › Critical portions of the system are "read-only" › Updates are performed with only well-defined mechanisms › User data stored separately › Applications generally use a different mechanism 1 https://www.merriam-webster.com/dictionary/immutable 2 https://www.merriam-webster.com/dictionary/image • Image2: exact likeness › Updating the entire "Operating System" › Updating individual packages or applications "not supported" 3 https://www.merriam-webster.com/dictionary/atomic • Atomic3: of, relating to, or concerned with atoms › Incapable of being subdivided › No chance of partially installed updates Other names: Layered OS, Reprovisionable, Anti-hysteresis
  • 5. Sidebar: Pets vs Cattle • Coined by Randy Bias1 › Originally from Enterprise Computing Space • Desktop/Server: › Pets - Individual laptops › Cattle - Servers managed as code • In Embedded: › Pets - Weekend projects, home automation › Cattle - Large fleets of identical devices. 1 http://cloudscaling.com/blog/cloud-computing/the-history-of-pets-vs-cattle/
  • 6. Conceptual Architecture System Operating System (Image v1) Bootloader Kernel/DTB/Initramfs "OS" Packages User Data User Applications
  • 7. Conceptual Architecture System Operating System (Image v2) Bootloader Kernel/DTB/Initramfs "OS" Packages User Data User Applications Operating System (Image v2) Bootloader Kernel/DTB/Initramfs "OS" Packages
  • 8. Benefits • Atomic versioning and updates of critical system components › No more `apt --fix-missing --install` or related commands • User components separately managed › Better isolation of dependencies (ie containers) › Fewer conflicts based on OS installed package versions • Reproducibility › The OS image is deterministic › No configuration drift • Better testing › Exactly matching software on test and productiondevices • Rollback capability • More secure? Arguable
  • 9. Drawbacks • New/unfamiliar workflows • Less flexible than traditional distros • Do all your applications run in the sandbox? • Reboot required for any updates › Mitigated by the app packaging system • Is it really appropriate for desktop/laptop use?
  • 10. Technologies and Concepts • libostree (https://ostreedev.github.io/ostree/) › "Git for filesystems" › Content-addressable objectstorage + hard links • Multiple partitions › Usually mounted read-only › Symlinks for mutable config files • Btrfs snapshots • Declarative configuration • Layering: https://coreos.github.io/rpm-ostree/
  • 11. WHAT IS libostree? "libostree is both a shared library and suite of command line tools that combines a “git-like” model for committing and downloading bootable filesystem trees, along with a layer for deploying them and managing the bootloader configuration." 1 "git-like" model bootable filesystem trees Bootloader configuratio n 1 https://github.com/ostreedev/ostree#libostree
  • 12. OSTree BASICS • File-based (!) • Relies on non-root mount/“bind-mount” - Normally the root of a file system is mounted as “the root” - Linux allows to bind mount a subdirectory • Initramfs mounts OSTree - Pivot into bind mount/sub-directory • Hardlinks are used to speed-up deployment and minimize space usage Source: https://medium.com/@1154_75881/what-is-the-difference-between-a-hard-link-and-a-symbolic-link-14db61df7707
  • 14. "File system based on the copy-on-write principle using B-trees, developed at Oracle since 2007"1 • Declared stable in Linux in 2013 • Subvolumes • Atomically writable snapshots • Cloning (multiple inodes pointing to the same disk blocks) BTRFS Snapshots 1 https://en.wikipedia.org/wiki/Btrfs
  • 15. Applications Containers: https://www.docker.com/ or https://podman.io/ Flatpak: https://www.flatpak.org/ Appimage: https://appimage.org/ Snaps: https://snapcraft.io/ Bundled with dependencies "Distro-independent" Linux packages Sandboxed from the host OS and other packages
  • 18. Universal Blue Based on Fedora Silverblue "Cloud Native Linux Desktop Model" • Base images generated by OCI containers o RPM-OSTree o BTRFS (snapshots?) o Applications normally use Flatpak Distrobox (https://distrobox.it/) Linuxbrew (https://docs.brew.sh/Homebrew-on-Linux) Many variants: • Bluefin: GNOME Desktop • Bluefin-DX: Bluefin + Cloud developer tools • Built-in GPU drivers
  • 21. VanillaOS • Ubuntu Desktop based • Dual A-B partitions
  • 22. Survey of available systems Desktop/Server • Debian: Endless OS • Ubuntu: VanillaOS • Fedora: Silverblue • Universal Blue • NixOS • GNU Guix • Clear Linux • Fedora CoreOS • openSUSE Aeon (Gnome) • openSUSE Kalpa (KDE) • Flatcar Linux • Bottlerocket OS • Talos Linux (k8s) • ChromeOS Embedded • Torizon • Ubuntu Core • Linux microPlatform • BalenaOS • SteamOS
  • 23. References • https://github.com/castrojo/awesome-immutable • https://discord.gg/N4mswFw6ds • https://blog.verbum.org/2020/08/22/immutable-%E2%86%92-reprovisionable-anti-hysteresis/ • https://www.torizon.io/ • https://www.torizon.io/open-source-community • https://universal-blue.org/
  • 24. THANK YOU FOR YOUR INTEREST www.toradex.com | www.torizon.io | developer.toradex.com community.toradex.com | labs.toradex.com