SlideShare a Scribd company logo
The end of embedded Linux
(as we know it)
Chris Simmonds
2net Ltd.
21st February 2013
Chris Simmonds
• Has been using Linux as an embedded operating system
since 1999
• Has been training others how to do the same since 2002
• Blog at http://embedded-linux.co.uk/
• Company web site: http://2net.co.uk/
Overview
• How embedded hardware has changed over the last 10
years
• The traditional approach to embedded Linux
• What do we really want from embedded Linux?
• Some options for the future
• Mainstream distribution
• Embedded distribution
• Android
• Are they up to the job?
Evolution of embedded hardware
10 years ago: Embedded Planet RPX Lite
• MPC823 @ 80 MHz
• 16 MiB RAM, 8 MiB NOR flash
• $500
Today: Pandaboard ES
• TI OMAP 4460 ARM Cortex A-9 dual core @ 1.2 GHz
• 1 GiB RAM, 4+ GiB on SD Card
• $160
Changes
Hardware capabilities have increased many fold:
• Clock speed: 15 times
• RAM size: 64 times
• Storage: 512 times
• Cost: 0.32 times
What happened to cost?
The Beagleboard effect
A small board appearing in one place can cause huge
disruption in other places
Embedded Linux - past
Embedded Linux evolved to cope with
• Non-PC architectures
• Board support packages for custom hardware
• Low RAM
• Small amount of storage
• Low clock speed
• Flash memory
• Robustness - must not fail
• Either headless, or
• User input from keypad or touch screen
• No embedded device has keyboard or mouse
Embedded Linux - past
Engineers responded with
• Cross compilers (Crosstool(ng), etc)
• Busybox
• uClibc
• MTD, cramfs/squashfs, jffs(2), yaffs(2), ubifs
• Simplified startup scripts
• Stripped-down root file systems
• Read-only root file system (reduces wear on flash
memory)
• Many, many custom BSPs and device drivers
Embedded Linux - past
The typical approach to a project used to be
• Find a toolchain
• Create a custom U-Boot
• Find a kernel for your SoC/board & build it
• Build a minimal root fs
• Cross compile libraries and applications as needed
• Tinker with it until it worked
• Buildroot or OpenEmbedded helped a lot
Every project was different, always starting from scratch
Embedded Linux now and future?
• Clock speed (processor power), RAM and storage no
longer an issue
• Reduced need for Busybox, uClibc
• Reduced need for custom rootfs, custom start-up scripts
• Storage moving from raw flash to eMMC and SD
• Reduced need for mtd and flash filesystems jffs2
• Increased need for SSD friendly software
Chance to re-think what constitutes "embedded Linux"
New problems
• Complexity
• people want more from devices
• User interface
• if it has a touchscreen it has to work like a smartphone
• Maintainability
• all that software has bug fixes that need pushing to the
field
• Skill level
• doing things the old way requires a high level of skill
• there are too many devices and not enough engineers
• ergo, embedding Linux has to get easier
My ideal embedded Linux OS (1)
• Completely open source
• Architecture support: at least ARM, MIPS, PPC, x86
• Availability of board support packages for standard
hardware
• Ability to create new BSPs for new and custom hardware
• Flexible
• Minimal base install (not all devices have 4 GiB to spare)
• Reduced system writes to preserve flash memory
• No swap
• Volatile /tmp, /run and parts of /var
• Read-only root fs
My ideal embedded Linux OS (2)
• Proper system logging - that also reduces flash wear
• In-field remote update
• Fall-back boot if main boot fails (recovery mode)
• Debug and trace tools that can be used remotely
• Touchscreen support, including OSK (on screen
keyboard) and fat fingered navigation
• Long term support
What are the options?
• Use a mainstream distro (e.g. Debian, Ubuntu, Fedora)?
• Use an embedded distro (e.g. Open Embedded, Yocto)?
• What about Android?
In the next few slides I will look at the pros and cons and give
marks out of 10 for MS (Mainstream Distro), ED (Embedded
Distro) and AN (Android)
Completely open source
• None require closed source components to build or run
• Although, silicon vendors cause problems with closed
source drivers (especially GPU)
MS 10 ED 10 AD 10
Architecture support
Points awarded for architecture dependant repositories and
cross tool chains
• Mainstream distros
• All support x86 and most support ARM v7
• Some (e.g Debian) also support older ARM, PPC and
MIPS
• Embedded distros
• All the main archs
• Android
• ARM v5te and v7, x86, MIPS
MS 7 ED 10 AD 8
Board support packages
• Mainstream distros
• Most have binary images for standard hardware (e.g
Beagleboard)
• Only Linaro has a tool for creating a BSP:
• linaro-media-create joins a generic binary with hardware
pack
• But of course, Linaro is not a distro
• Embedded distros
• Yes, of course
• Android
• "lunch combo" does the job
MS 2 ED 10 AD 10
Flexibility
• Mainstream distros
• Very flexible: many 1000’s of packages to choose from
• Embedded distros
• Quite flexible
• Android
• 100,000’s of apps, but that it not relevant here
• Base OS very inflexible
MS 10 ED 7 AD 0
Minimal base install
• Mainstream distros
• Most have a minimal configuration of a few 100’s MiB
• Examples: Emdebian Grip, Ubuntu Core
• Embedded distros
• Minimal rootfs about 16 MiB
• Android
• A default build of AOSP: 160 MiB
• Note this is the whole stack but since Android is
monolithic you can’t have anything less
MS 7 ED 10 AD 8
Reduced writes/flash friendly
Points awarded for
• No swap
• Volatile /tmp, /run and parts of /var
• Read-only root fs
• Mainstream distros
• Disable sway - easy
• Volatile /tmp - quite easy
• Read-only root - hard or very hard
• Embedded distros
• All have no swap and volatile /tmp
• Little support for read-only root
• Android
• Yes, has all of these features
MS 2 ED 7 AN 10
Proper system logging
Minimal requirement - avoid many small writes to /var/log
• Mainstream distros
• Have Busybox syslogd as an optional package
• Embedded distros
• Use Busybox syslogd -C by default
• Android
• has logcat: multiple ring buffers for various sub systems
MS 3 ED 5 AD 5
Logging in Linux is a mess
Remote update and fall-back boot
The problem
• In-field update of kernel and packages is a must
• Problems occur at the boundary between BSP and distro
• BSP includes kernel, modules and user space config files
• Introduces dependencies that are difficult to resolve
separately
• Mainstream distros
• In my experience, they don’t handle updates well
• Embedded distros
• More flexible definition of arch-dependant feeds
• Android
• With a custom build, it’s up to you to build and
distribute updates
• Does have a well-defined recovery mode though
MS 0 ED 5 AD 5
User interaction
Points here for touch screen navigation:
• OSK - on screen keyboard that pops up when needed
(and goes away after)
• simplified navigation for fat fingers
• full-screen apps
• ideally, multitouch gestures
• Mainstream distros
• Unity, Gnome-shell, KDE Plasma Active are all headed in
that direction
• Embedded distros
• Not that I am aware of...
• Android
• Yes, its mostly what Android is about
MS 5 ED 0 AD 10
Debug and trace tools
• Mainstream and embedded distros
• All the standard packages
• gbdserver, perf, oprofile, LTTng
• Android
• gdbserver
• Eclipse ADT plugin
• adb is very handy
• But lacks trace tools such as perf and LTTng
MS 9 ED 9 AD 9
Long term support
• Mainstream distros
• Up to 5 years support for bug fixes and updates
• Embedded distros
• No clear statement of update policy
• Bug fixes rather slow to come through
• Android
• No clear statement of update policy
• Bug fixes rather slow to come through
MS 10 ED 5 AD 5
Final scores
• Points out of 110
MS 64 ED 78 AD 80
Note: this is totally unscientific, I admit that
Android is the winner?
• Kudos to the Android developers for creating a really
good embedded OS
• But...
• It is monolithic - hard to take apart and re-purpose
• It is inflexible - hard to add bits on (e.g. normal FLOSS
packages)
• It is not a community project - doesn’t have a life beyond
Google
• Android is only good for devices that look like a
smartphone or tablet
What then?
• Each can learn from the others, especially
• Mainstream distros
• Better tools to create custom BSPs
• Support flash memory properly!
• Embedded distros
• Reduce complexity
• Support in-field updates better
• All - create a logging solution that actually works
Conclusion
• This is not the end of embedded Linux, but ...
• ... it is the end of embedded Linux as a cottage industry
• Future devices will take more from mainstream distros
(and be better for it)
• But, there is work to be done
• Hopefully the community (and industry) will fill in the
gaps
• Or, there is Android for some classes of device

More Related Content

What's hot

Userspace drivers-2016
Userspace drivers-2016Userspace drivers-2016
Userspace drivers-2016Chris Simmonds
 
Linux field-update-2015
Linux field-update-2015Linux field-update-2015
Linux field-update-2015Chris Simmonds
 
Software update for IoT Embedded World 2017
Software update for IoT Embedded World 2017Software update for IoT Embedded World 2017
Software update for IoT Embedded World 2017Chris Simmonds
 
Linux power management: are you doing it right?
Linux power management: are you doing it right?Linux power management: are you doing it right?
Linux power management: are you doing it right?Chris Simmonds
 
Debugging embedded devices using GDB
Debugging embedded devices using GDBDebugging embedded devices using GDB
Debugging embedded devices using GDBChris Simmonds
 
Tuning Android for low RAM
Tuning Android for low RAMTuning Android for low RAM
Tuning Android for low RAMChris Simmonds
 
10 ways hardware engineers can make software integration easier
10 ways hardware engineers can make software integration easier10 ways hardware engineers can make software integration easier
10 ways hardware engineers can make software integration easierChris Simmonds
 
Software update for IoT: the current state of play
Software update for IoT: the current state of playSoftware update for IoT: the current state of play
Software update for IoT: the current state of playChris Simmonds
 
Quick and Easy Device Drivers for Embedded Linux Using UIO
Quick and Easy Device Drivers for Embedded Linux Using UIOQuick and Easy Device Drivers for Embedded Linux Using UIO
Quick and Easy Device Drivers for Embedded Linux Using UIOChris Simmonds
 
Software update for embedded systems - elce2014
Software update for embedded systems - elce2014Software update for embedded systems - elce2014
Software update for embedded systems - elce2014Stefano Babic
 
A timeline for embedded Linux
A timeline for embedded LinuxA timeline for embedded Linux
A timeline for embedded LinuxChris Simmonds
 
Running Android on the Raspberry Pi: Android Pie meets Raspberry Pi
Running Android on the Raspberry Pi: Android Pie meets Raspberry PiRunning Android on the Raspberry Pi: Android Pie meets Raspberry Pi
Running Android on the Raspberry Pi: Android Pie meets Raspberry PiChris Simmonds
 
Qi -- Lightweight Boot Loader Applied in Mobile and Embedded Devices
Qi -- Lightweight Boot Loader Applied in Mobile and Embedded DevicesQi -- Lightweight Boot Loader Applied in Mobile and Embedded Devices
Qi -- Lightweight Boot Loader Applied in Mobile and Embedded DevicesNational Cheng Kung University
 
Build your own embedded linux distributions by yocto project
Build your own embedded linux distributions by yocto projectBuild your own embedded linux distributions by yocto project
Build your own embedded linux distributions by yocto projectYen-Chin Lee
 
Kernel Recipes 2013 - Easy rootfs using Buildroot
Kernel Recipes 2013 - Easy rootfs using BuildrootKernel Recipes 2013 - Easy rootfs using Buildroot
Kernel Recipes 2013 - Easy rootfs using BuildrootAnne Nicolas
 
Marco Cavallini @ LinuxLab 2018 : Workshop Yocto Project, an automatic genera...
Marco Cavallini @ LinuxLab 2018 : Workshop Yocto Project, an automatic genera...Marco Cavallini @ LinuxLab 2018 : Workshop Yocto Project, an automatic genera...
Marco Cavallini @ LinuxLab 2018 : Workshop Yocto Project, an automatic genera...Marco Cavallini
 
Distro Recipes 2013: What’s new in gcc 4.8?
Distro Recipes 2013: What’s new in gcc 4.8?Distro Recipes 2013: What’s new in gcc 4.8?
Distro Recipes 2013: What’s new in gcc 4.8?Anne Nicolas
 
Autobuilder2 Yocto Project Summit Lyon 2019
Autobuilder2 Yocto Project Summit Lyon 2019Autobuilder2 Yocto Project Summit Lyon 2019
Autobuilder2 Yocto Project Summit Lyon 2019Marco Cavallini
 
Introduction to OpenBricks: an Embedded Linux Framework
Introduction to OpenBricks: an Embedded Linux FrameworkIntroduction to OpenBricks: an Embedded Linux Framework
Introduction to OpenBricks: an Embedded Linux FrameworkBenjamin Zores
 

What's hot (20)

Userspace drivers-2016
Userspace drivers-2016Userspace drivers-2016
Userspace drivers-2016
 
Linux field-update-2015
Linux field-update-2015Linux field-update-2015
Linux field-update-2015
 
Software update for IoT Embedded World 2017
Software update for IoT Embedded World 2017Software update for IoT Embedded World 2017
Software update for IoT Embedded World 2017
 
Linux power management: are you doing it right?
Linux power management: are you doing it right?Linux power management: are you doing it right?
Linux power management: are you doing it right?
 
Debugging embedded devices using GDB
Debugging embedded devices using GDBDebugging embedded devices using GDB
Debugging embedded devices using GDB
 
Tuning Android for low RAM
Tuning Android for low RAMTuning Android for low RAM
Tuning Android for low RAM
 
10 ways hardware engineers can make software integration easier
10 ways hardware engineers can make software integration easier10 ways hardware engineers can make software integration easier
10 ways hardware engineers can make software integration easier
 
Software update for IoT: the current state of play
Software update for IoT: the current state of playSoftware update for IoT: the current state of play
Software update for IoT: the current state of play
 
Quick and Easy Device Drivers for Embedded Linux Using UIO
Quick and Easy Device Drivers for Embedded Linux Using UIOQuick and Easy Device Drivers for Embedded Linux Using UIO
Quick and Easy Device Drivers for Embedded Linux Using UIO
 
Software update for embedded systems - elce2014
Software update for embedded systems - elce2014Software update for embedded systems - elce2014
Software update for embedded systems - elce2014
 
A timeline for embedded Linux
A timeline for embedded LinuxA timeline for embedded Linux
A timeline for embedded Linux
 
Running Android on the Raspberry Pi: Android Pie meets Raspberry Pi
Running Android on the Raspberry Pi: Android Pie meets Raspberry PiRunning Android on the Raspberry Pi: Android Pie meets Raspberry Pi
Running Android on the Raspberry Pi: Android Pie meets Raspberry Pi
 
Qi -- Lightweight Boot Loader Applied in Mobile and Embedded Devices
Qi -- Lightweight Boot Loader Applied in Mobile and Embedded DevicesQi -- Lightweight Boot Loader Applied in Mobile and Embedded Devices
Qi -- Lightweight Boot Loader Applied in Mobile and Embedded Devices
 
Build your own embedded linux distributions by yocto project
Build your own embedded linux distributions by yocto projectBuild your own embedded linux distributions by yocto project
Build your own embedded linux distributions by yocto project
 
Kernel Recipes 2013 - Easy rootfs using Buildroot
Kernel Recipes 2013 - Easy rootfs using BuildrootKernel Recipes 2013 - Easy rootfs using Buildroot
Kernel Recipes 2013 - Easy rootfs using Buildroot
 
Marco Cavallini @ LinuxLab 2018 : Workshop Yocto Project, an automatic genera...
Marco Cavallini @ LinuxLab 2018 : Workshop Yocto Project, an automatic genera...Marco Cavallini @ LinuxLab 2018 : Workshop Yocto Project, an automatic genera...
Marco Cavallini @ LinuxLab 2018 : Workshop Yocto Project, an automatic genera...
 
Android Custom Kernel/ROM design
Android Custom Kernel/ROM designAndroid Custom Kernel/ROM design
Android Custom Kernel/ROM design
 
Distro Recipes 2013: What’s new in gcc 4.8?
Distro Recipes 2013: What’s new in gcc 4.8?Distro Recipes 2013: What’s new in gcc 4.8?
Distro Recipes 2013: What’s new in gcc 4.8?
 
Autobuilder2 Yocto Project Summit Lyon 2019
Autobuilder2 Yocto Project Summit Lyon 2019Autobuilder2 Yocto Project Summit Lyon 2019
Autobuilder2 Yocto Project Summit Lyon 2019
 
Introduction to OpenBricks: an Embedded Linux Framework
Introduction to OpenBricks: an Embedded Linux FrameworkIntroduction to OpenBricks: an Embedded Linux Framework
Introduction to OpenBricks: an Embedded Linux Framework
 

Viewers also liked

Safe and Reliable Embedded Linux Programming: How to Get There
Safe and Reliable Embedded Linux Programming: How to Get ThereSafe and Reliable Embedded Linux Programming: How to Get There
Safe and Reliable Embedded Linux Programming: How to Get ThereAdaCore
 
Using IO Visor to Secure Microservices Running on CloudFoundry [OpenStack Sum...
Using IO Visor to Secure Microservices Running on CloudFoundry [OpenStack Sum...Using IO Visor to Secure Microservices Running on CloudFoundry [OpenStack Sum...
Using IO Visor to Secure Microservices Running on CloudFoundry [OpenStack Sum...IO Visor Project
 
Portland Science Hack Day: Open Source Hardware
Portland Science Hack Day: Open Source HardwarePortland Science Hack Day: Open Source Hardware
Portland Science Hack Day: Open Source HardwareDrew Fustini
 
Linux on Open Source Hardware
Linux on Open Source HardwareLinux on Open Source Hardware
Linux on Open Source HardwareDrew Fustini
 
Germany in wwii
Germany in wwiiGermany in wwii
Germany in wwiimrbruns
 
Software Defined Radio (SDR)
Software Defined Radio (SDR)Software Defined Radio (SDR)
Software Defined Radio (SDR)Drew Fustini
 
bcc/BPF tools - Strategy, current tools, future challenges
bcc/BPF tools - Strategy, current tools, future challengesbcc/BPF tools - Strategy, current tools, future challenges
bcc/BPF tools - Strategy, current tools, future challengesIO Visor Project
 
Adapt or Die: A Microservices Story at Google
Adapt or Die: A Microservices Story at GoogleAdapt or Die: A Microservices Story at Google
Adapt or Die: A Microservices Story at GoogleApigee | Google Cloud
 
Embedded Linux from Scratch to Yocto
Embedded Linux from Scratch to YoctoEmbedded Linux from Scratch to Yocto
Embedded Linux from Scratch to YoctoSherif Mousa
 
What's Better than Microservices? Serverless Microservices.
What's Better than Microservices? Serverless Microservices.What's Better than Microservices? Serverless Microservices.
What's Better than Microservices? Serverless Microservices.Apigee | Google Cloud
 
Adapt or Die: Serverless Microservices
Adapt or Die: Serverless MicroservicesAdapt or Die: Serverless Microservices
Adapt or Die: Serverless MicroservicesApigee | Google Cloud
 
Llilum 161108 at MVP Global Summit 2016
Llilum 161108 at MVP Global Summit 2016Llilum 161108 at MVP Global Summit 2016
Llilum 161108 at MVP Global Summit 2016Atomu Hidaka
 
Complete Guide for Linux shell programming
Complete Guide for Linux shell programmingComplete Guide for Linux shell programming
Complete Guide for Linux shell programmingsudhir singh yadav
 
Managing Sensitive Information in an API and Microservices World
Managing Sensitive Information in an API and Microservices WorldManaging Sensitive Information in an API and Microservices World
Managing Sensitive Information in an API and Microservices WorldApigee | Google Cloud
 
Booting Android: bootloaders, fastboot and boot images
Booting Android: bootloaders, fastboot and boot imagesBooting Android: bootloaders, fastboot and boot images
Booting Android: bootloaders, fastboot and boot imagesChris Simmonds
 
Building Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARMBuilding Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARMSherif Mousa
 

Viewers also liked (18)

Safe and Reliable Embedded Linux Programming: How to Get There
Safe and Reliable Embedded Linux Programming: How to Get ThereSafe and Reliable Embedded Linux Programming: How to Get There
Safe and Reliable Embedded Linux Programming: How to Get There
 
In out system
In out systemIn out system
In out system
 
Using IO Visor to Secure Microservices Running on CloudFoundry [OpenStack Sum...
Using IO Visor to Secure Microservices Running on CloudFoundry [OpenStack Sum...Using IO Visor to Secure Microservices Running on CloudFoundry [OpenStack Sum...
Using IO Visor to Secure Microservices Running on CloudFoundry [OpenStack Sum...
 
Portland Science Hack Day: Open Source Hardware
Portland Science Hack Day: Open Source HardwarePortland Science Hack Day: Open Source Hardware
Portland Science Hack Day: Open Source Hardware
 
Linux on Open Source Hardware
Linux on Open Source HardwareLinux on Open Source Hardware
Linux on Open Source Hardware
 
Germany in wwii
Germany in wwiiGermany in wwii
Germany in wwii
 
Software Defined Radio (SDR)
Software Defined Radio (SDR)Software Defined Radio (SDR)
Software Defined Radio (SDR)
 
bcc/BPF tools - Strategy, current tools, future challenges
bcc/BPF tools - Strategy, current tools, future challengesbcc/BPF tools - Strategy, current tools, future challenges
bcc/BPF tools - Strategy, current tools, future challenges
 
Adapt or Die: A Microservices Story at Google
Adapt or Die: A Microservices Story at GoogleAdapt or Die: A Microservices Story at Google
Adapt or Die: A Microservices Story at Google
 
Embedded Linux from Scratch to Yocto
Embedded Linux from Scratch to YoctoEmbedded Linux from Scratch to Yocto
Embedded Linux from Scratch to Yocto
 
What's Better than Microservices? Serverless Microservices.
What's Better than Microservices? Serverless Microservices.What's Better than Microservices? Serverless Microservices.
What's Better than Microservices? Serverless Microservices.
 
Adapt or Die: Serverless Microservices
Adapt or Die: Serverless MicroservicesAdapt or Die: Serverless Microservices
Adapt or Die: Serverless Microservices
 
Llilum 161108 at MVP Global Summit 2016
Llilum 161108 at MVP Global Summit 2016Llilum 161108 at MVP Global Summit 2016
Llilum 161108 at MVP Global Summit 2016
 
API Management and Kubernetes
API Management and KubernetesAPI Management and Kubernetes
API Management and Kubernetes
 
Complete Guide for Linux shell programming
Complete Guide for Linux shell programmingComplete Guide for Linux shell programming
Complete Guide for Linux shell programming
 
Managing Sensitive Information in an API and Microservices World
Managing Sensitive Information in an API and Microservices WorldManaging Sensitive Information in an API and Microservices World
Managing Sensitive Information in an API and Microservices World
 
Booting Android: bootloaders, fastboot and boot images
Booting Android: bootloaders, fastboot and boot imagesBooting Android: bootloaders, fastboot and boot images
Booting Android: bootloaders, fastboot and boot images
 
Building Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARMBuilding Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARM
 

Similar to The end of embedded Linux (as we know it)

The Ultimate IBM and Lotus on Linux Workshop for Windows Admins
The Ultimate IBM and Lotus on Linux Workshop for Windows AdminsThe Ultimate IBM and Lotus on Linux Workshop for Windows Admins
The Ultimate IBM and Lotus on Linux Workshop for Windows AdminsBill Malchisky Jr.
 
Opening last bits of the infrastructure
Opening last bits of the infrastructureOpening last bits of the infrastructure
Opening last bits of the infrastructureErwan Velu
 
Gentoo Linux, or Why in the World You Should Compile Everything
Gentoo Linux, or Why in the World You Should Compile EverythingGentoo Linux, or Why in the World You Should Compile Everything
Gentoo Linux, or Why in the World You Should Compile EverythingDonnie Berkholz
 
Embedded Linux primer
Embedded Linux primerEmbedded Linux primer
Embedded Linux primerDrew Fustini
 
Fedora history 3441-3408-3437-3423
Fedora history 3441-3408-3437-3423Fedora history 3441-3408-3437-3423
Fedora history 3441-3408-3437-3423Muhammad Saad Hassan
 
Linux Distribution Collaboration …on a Mainframe!
Linux Distribution Collaboration …on a Mainframe!Linux Distribution Collaboration …on a Mainframe!
Linux Distribution Collaboration …on a Mainframe!All Things Open
 
Deployment Strategies (Mongo Austin)
Deployment Strategies (Mongo Austin)Deployment Strategies (Mongo Austin)
Deployment Strategies (Mongo Austin)MongoDB
 
December 2020 CIALUG: Local Kubernetes for Dummies-So you want to move on fro...
December 2020 CIALUG: Local Kubernetes for Dummies-So you want to move on fro...December 2020 CIALUG: Local Kubernetes for Dummies-So you want to move on fro...
December 2020 CIALUG: Local Kubernetes for Dummies-So you want to move on fro...Andrew Denner
 
High-Performance Computing with C++
High-Performance Computing with C++High-Performance Computing with C++
High-Performance Computing with C++JetBrains
 
Chapter 1 - Introduction to Operating System.pptx
Chapter 1 - Introduction to Operating System.pptxChapter 1 - Introduction to Operating System.pptx
Chapter 1 - Introduction to Operating System.pptxgowthamiv26
 
SFO15-BFO2: Reducing the arm linux kernel size without losing your mind
SFO15-BFO2: Reducing the arm linux kernel size without losing your mindSFO15-BFO2: Reducing the arm linux kernel size without losing your mind
SFO15-BFO2: Reducing the arm linux kernel size without losing your mindLinaro
 
12 Lessons Learnt in Boot Time Reduction
12 Lessons Learnt in Boot Time Reduction12 Lessons Learnt in Boot Time Reduction
12 Lessons Learnt in Boot Time Reductionandrewmurraympc
 
Android Variants, Hacks, Tricks and Resources presented at AnDevConII
Android Variants, Hacks, Tricks and Resources presented at AnDevConIIAndroid Variants, Hacks, Tricks and Resources presented at AnDevConII
Android Variants, Hacks, Tricks and Resources presented at AnDevConIIOpersys inc.
 
Intro To Gentoo Embedded Cclug
Intro To Gentoo Embedded CclugIntro To Gentoo Embedded Cclug
Intro To Gentoo Embedded CclugSteve Arnold
 
engage 2019 - 15 Domino v10 Admin features we LOVE
engage 2019 - 15 Domino v10 Admin features we LOVEengage 2019 - 15 Domino v10 Admin features we LOVE
engage 2019 - 15 Domino v10 Admin features we LOVEChristoph Adler
 

Similar to The end of embedded Linux (as we know it) (20)

The Ultimate IBM and Lotus on Linux Workshop for Windows Admins
The Ultimate IBM and Lotus on Linux Workshop for Windows AdminsThe Ultimate IBM and Lotus on Linux Workshop for Windows Admins
The Ultimate IBM and Lotus on Linux Workshop for Windows Admins
 
Opening last bits of the infrastructure
Opening last bits of the infrastructureOpening last bits of the infrastructure
Opening last bits of the infrastructure
 
Gentoo Linux, or Why in the World You Should Compile Everything
Gentoo Linux, or Why in the World You Should Compile EverythingGentoo Linux, or Why in the World You Should Compile Everything
Gentoo Linux, or Why in the World You Should Compile Everything
 
Embedded Linux primer
Embedded Linux primerEmbedded Linux primer
Embedded Linux primer
 
Embedded Linux on ARM
Embedded Linux on ARMEmbedded Linux on ARM
Embedded Linux on ARM
 
Fedora history 3441-3408-3437-3423
Fedora history 3441-3408-3437-3423Fedora history 3441-3408-3437-3423
Fedora history 3441-3408-3437-3423
 
Pulsar
PulsarPulsar
Pulsar
 
Linux Distribution Collaboration …on a Mainframe!
Linux Distribution Collaboration …on a Mainframe!Linux Distribution Collaboration …on a Mainframe!
Linux Distribution Collaboration …on a Mainframe!
 
Deployment Strategies (Mongo Austin)
Deployment Strategies (Mongo Austin)Deployment Strategies (Mongo Austin)
Deployment Strategies (Mongo Austin)
 
December 2020 CIALUG: Local Kubernetes for Dummies-So you want to move on fro...
December 2020 CIALUG: Local Kubernetes for Dummies-So you want to move on fro...December 2020 CIALUG: Local Kubernetes for Dummies-So you want to move on fro...
December 2020 CIALUG: Local Kubernetes for Dummies-So you want to move on fro...
 
High-Performance Computing with C++
High-Performance Computing with C++High-Performance Computing with C++
High-Performance Computing with C++
 
Ubuntu for all
Ubuntu for allUbuntu for all
Ubuntu for all
 
Buntu 1
Buntu 1Buntu 1
Buntu 1
 
Chapter 1 - Introduction to Operating System.pptx
Chapter 1 - Introduction to Operating System.pptxChapter 1 - Introduction to Operating System.pptx
Chapter 1 - Introduction to Operating System.pptx
 
SFO15-BFO2: Reducing the arm linux kernel size without losing your mind
SFO15-BFO2: Reducing the arm linux kernel size without losing your mindSFO15-BFO2: Reducing the arm linux kernel size without losing your mind
SFO15-BFO2: Reducing the arm linux kernel size without losing your mind
 
12 Lessons Learnt in Boot Time Reduction
12 Lessons Learnt in Boot Time Reduction12 Lessons Learnt in Boot Time Reduction
12 Lessons Learnt in Boot Time Reduction
 
Android Variants, Hacks, Tricks and Resources presented at AnDevConII
Android Variants, Hacks, Tricks and Resources presented at AnDevConIIAndroid Variants, Hacks, Tricks and Resources presented at AnDevConII
Android Variants, Hacks, Tricks and Resources presented at AnDevConII
 
Buntu
BuntuBuntu
Buntu
 
Intro To Gentoo Embedded Cclug
Intro To Gentoo Embedded CclugIntro To Gentoo Embedded Cclug
Intro To Gentoo Embedded Cclug
 
engage 2019 - 15 Domino v10 Admin features we LOVE
engage 2019 - 15 Domino v10 Admin features we LOVEengage 2019 - 15 Domino v10 Admin features we LOVE
engage 2019 - 15 Domino v10 Admin features we LOVE
 

Recently uploaded

AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...Product School
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Product School
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupCatarinaPereira64715
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityScyllaDB
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Product School
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesThousandEyes
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...Product School
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...CzechDreamin
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Thierry Lestable
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaRTTS
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1DianaGray10
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...Product School
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCzechDreamin
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxAbida Shariff
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Julian Hyde
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIES VE
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxDavid Michel
 

Recently uploaded (20)

AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and Planning
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
 

The end of embedded Linux (as we know it)

  • 1. The end of embedded Linux (as we know it) Chris Simmonds 2net Ltd. 21st February 2013
  • 2. Chris Simmonds • Has been using Linux as an embedded operating system since 1999 • Has been training others how to do the same since 2002 • Blog at http://embedded-linux.co.uk/ • Company web site: http://2net.co.uk/
  • 3. Overview • How embedded hardware has changed over the last 10 years • The traditional approach to embedded Linux • What do we really want from embedded Linux? • Some options for the future • Mainstream distribution • Embedded distribution • Android • Are they up to the job?
  • 4. Evolution of embedded hardware 10 years ago: Embedded Planet RPX Lite • MPC823 @ 80 MHz • 16 MiB RAM, 8 MiB NOR flash • $500 Today: Pandaboard ES • TI OMAP 4460 ARM Cortex A-9 dual core @ 1.2 GHz • 1 GiB RAM, 4+ GiB on SD Card • $160
  • 5. Changes Hardware capabilities have increased many fold: • Clock speed: 15 times • RAM size: 64 times • Storage: 512 times • Cost: 0.32 times
  • 6. What happened to cost? The Beagleboard effect A small board appearing in one place can cause huge disruption in other places
  • 7. Embedded Linux - past Embedded Linux evolved to cope with • Non-PC architectures • Board support packages for custom hardware • Low RAM • Small amount of storage • Low clock speed • Flash memory • Robustness - must not fail • Either headless, or • User input from keypad or touch screen • No embedded device has keyboard or mouse
  • 8. Embedded Linux - past Engineers responded with • Cross compilers (Crosstool(ng), etc) • Busybox • uClibc • MTD, cramfs/squashfs, jffs(2), yaffs(2), ubifs • Simplified startup scripts • Stripped-down root file systems • Read-only root file system (reduces wear on flash memory) • Many, many custom BSPs and device drivers
  • 9. Embedded Linux - past The typical approach to a project used to be • Find a toolchain • Create a custom U-Boot • Find a kernel for your SoC/board & build it • Build a minimal root fs • Cross compile libraries and applications as needed • Tinker with it until it worked • Buildroot or OpenEmbedded helped a lot Every project was different, always starting from scratch
  • 10. Embedded Linux now and future? • Clock speed (processor power), RAM and storage no longer an issue • Reduced need for Busybox, uClibc • Reduced need for custom rootfs, custom start-up scripts • Storage moving from raw flash to eMMC and SD • Reduced need for mtd and flash filesystems jffs2 • Increased need for SSD friendly software Chance to re-think what constitutes "embedded Linux"
  • 11. New problems • Complexity • people want more from devices • User interface • if it has a touchscreen it has to work like a smartphone • Maintainability • all that software has bug fixes that need pushing to the field • Skill level • doing things the old way requires a high level of skill • there are too many devices and not enough engineers • ergo, embedding Linux has to get easier
  • 12. My ideal embedded Linux OS (1) • Completely open source • Architecture support: at least ARM, MIPS, PPC, x86 • Availability of board support packages for standard hardware • Ability to create new BSPs for new and custom hardware • Flexible • Minimal base install (not all devices have 4 GiB to spare) • Reduced system writes to preserve flash memory • No swap • Volatile /tmp, /run and parts of /var • Read-only root fs
  • 13. My ideal embedded Linux OS (2) • Proper system logging - that also reduces flash wear • In-field remote update • Fall-back boot if main boot fails (recovery mode) • Debug and trace tools that can be used remotely • Touchscreen support, including OSK (on screen keyboard) and fat fingered navigation • Long term support
  • 14. What are the options? • Use a mainstream distro (e.g. Debian, Ubuntu, Fedora)? • Use an embedded distro (e.g. Open Embedded, Yocto)? • What about Android? In the next few slides I will look at the pros and cons and give marks out of 10 for MS (Mainstream Distro), ED (Embedded Distro) and AN (Android)
  • 15. Completely open source • None require closed source components to build or run • Although, silicon vendors cause problems with closed source drivers (especially GPU) MS 10 ED 10 AD 10
  • 16. Architecture support Points awarded for architecture dependant repositories and cross tool chains • Mainstream distros • All support x86 and most support ARM v7 • Some (e.g Debian) also support older ARM, PPC and MIPS • Embedded distros • All the main archs • Android • ARM v5te and v7, x86, MIPS MS 7 ED 10 AD 8
  • 17. Board support packages • Mainstream distros • Most have binary images for standard hardware (e.g Beagleboard) • Only Linaro has a tool for creating a BSP: • linaro-media-create joins a generic binary with hardware pack • But of course, Linaro is not a distro • Embedded distros • Yes, of course • Android • "lunch combo" does the job MS 2 ED 10 AD 10
  • 18. Flexibility • Mainstream distros • Very flexible: many 1000’s of packages to choose from • Embedded distros • Quite flexible • Android • 100,000’s of apps, but that it not relevant here • Base OS very inflexible MS 10 ED 7 AD 0
  • 19. Minimal base install • Mainstream distros • Most have a minimal configuration of a few 100’s MiB • Examples: Emdebian Grip, Ubuntu Core • Embedded distros • Minimal rootfs about 16 MiB • Android • A default build of AOSP: 160 MiB • Note this is the whole stack but since Android is monolithic you can’t have anything less MS 7 ED 10 AD 8
  • 20. Reduced writes/flash friendly Points awarded for • No swap • Volatile /tmp, /run and parts of /var • Read-only root fs • Mainstream distros • Disable sway - easy • Volatile /tmp - quite easy • Read-only root - hard or very hard • Embedded distros • All have no swap and volatile /tmp • Little support for read-only root • Android • Yes, has all of these features MS 2 ED 7 AN 10
  • 21. Proper system logging Minimal requirement - avoid many small writes to /var/log • Mainstream distros • Have Busybox syslogd as an optional package • Embedded distros • Use Busybox syslogd -C by default • Android • has logcat: multiple ring buffers for various sub systems MS 3 ED 5 AD 5 Logging in Linux is a mess
  • 22. Remote update and fall-back boot The problem • In-field update of kernel and packages is a must • Problems occur at the boundary between BSP and distro • BSP includes kernel, modules and user space config files • Introduces dependencies that are difficult to resolve separately • Mainstream distros • In my experience, they don’t handle updates well • Embedded distros • More flexible definition of arch-dependant feeds • Android • With a custom build, it’s up to you to build and distribute updates • Does have a well-defined recovery mode though MS 0 ED 5 AD 5
  • 23. User interaction Points here for touch screen navigation: • OSK - on screen keyboard that pops up when needed (and goes away after) • simplified navigation for fat fingers • full-screen apps • ideally, multitouch gestures • Mainstream distros • Unity, Gnome-shell, KDE Plasma Active are all headed in that direction • Embedded distros • Not that I am aware of... • Android • Yes, its mostly what Android is about MS 5 ED 0 AD 10
  • 24. Debug and trace tools • Mainstream and embedded distros • All the standard packages • gbdserver, perf, oprofile, LTTng • Android • gdbserver • Eclipse ADT plugin • adb is very handy • But lacks trace tools such as perf and LTTng MS 9 ED 9 AD 9
  • 25. Long term support • Mainstream distros • Up to 5 years support for bug fixes and updates • Embedded distros • No clear statement of update policy • Bug fixes rather slow to come through • Android • No clear statement of update policy • Bug fixes rather slow to come through MS 10 ED 5 AD 5
  • 26. Final scores • Points out of 110 MS 64 ED 78 AD 80 Note: this is totally unscientific, I admit that
  • 27. Android is the winner? • Kudos to the Android developers for creating a really good embedded OS • But... • It is monolithic - hard to take apart and re-purpose • It is inflexible - hard to add bits on (e.g. normal FLOSS packages) • It is not a community project - doesn’t have a life beyond Google • Android is only good for devices that look like a smartphone or tablet
  • 28. What then? • Each can learn from the others, especially • Mainstream distros • Better tools to create custom BSPs • Support flash memory properly! • Embedded distros • Reduce complexity • Support in-field updates better • All - create a logging solution that actually works
  • 29. Conclusion • This is not the end of embedded Linux, but ... • ... it is the end of embedded Linux as a cottage industry • Future devices will take more from mainstream distros (and be better for it) • But, there is work to be done • Hopefully the community (and industry) will fill in the gaps • Or, there is Android for some classes of device