Skip to main content

Your submission was sent successfully! Close

Thank you for signing up for our newsletter!
In these regular emails you will find the latest updates from Canonical and upcoming events where you can meet our team.Close

Thank you for contacting us. A member of our team will be in touch shortly. Close

  1. Blog
  2. Article

Galem KAYO
on 26 November 2020

Embedded Linux for teams


A Linux kernel for each developer team, which uses it to bring up target boards. Bespoke, built, issued, and maintained over years by the vendor. Teams that focus on building great apps, rather than figuring out hardware dependencies. Happy developers that bootstrap smart devices in no time.

This is what highly productive embedded systems development should look like. Let’s unpack that vision.

Productivity

Embedded systems developers can be as productive as web, desktop or mobile developers are. Most developers don’t have to worry about hardware dependencies like kernels, and BSPs, except for embedded software. 

Developers are in the business of building applications, not that of building and maintaining kernels and BSPs. building and maintaining hardware-dependent software artifacts is not the developers’ job to be done. Linux vendors should take care of that burden, so developers can focus on building great embedded applications.

As devices are becoming increasingly software-defined, new development experiences become possible. Build your embedded app, generate an OS image to deliver the app, burn and boot. Congratulations, you’ve built a smart appliance.

App focus

Developer-friendly embedded Linux should just deliver apps to devices. Satellite companies don’t build their own rockets. They focus on building satellites and lease a rocket to deliver it as a payload. Many developer teams also have to “build the rocket” to deliver embedded applications.

Developers would be more successful, if Linux vendors made it their job to provide and maintain the scaffold that teams need to deliver embedded apps. In such a world, teams would focus on creating apps.

The resulting app-centric development cycle could boil down to booting, building and deploying. Building on top of vendor-provided scaffolds, developers would create a bootable image for their target boards. Teams would then develop apps. After testing, they will build a system image that delivers all these apps. Then burn, deploy, done. 

App-centric embedded development cycle

Collaboration

Embedded software development practices pre-date the cloud-native and devops era. These practices come from a past when infinite compute capabilities of any architecture weren’t available on demand. They stem from a time when software was hosted locally, rather than on shared online repositories. They were made for a time when automated builds, and CI/CD were non-existent.

Building embedded software with modern CI/CD tools

Integrating embedded development toolchains with modern CI/CD tools unlocks devops-style collaboration. This means providing tools to mediate collaboration between security, product engineering, and operations focals. The security expert will push patches, product engineering will release features, and operations admins will manage device fleets. All in sync, using the same tools.

Ubuntu Core

Ubuntu Core puts developer teams first. Canonical engineers Ubuntu Core to unlock productive embedded software development workflows. Ubuntu Core comes with tools like Snapcraft, and infrastructure like IoT app stores. These capabilities enable developer teams to collaborate effectively around projects. We’ve made these things our job, delivering more than what embedded Linux vendors typically do. Our job is to free you up to do yours: inventing.

Related posts


Felicia Jia
29 February 2024

Join Canonical at 2024 GTC AI Conference

AI Article

As a key technology partner with NVIDIA, Canonical is proud to showcase our joint solutions at NVIDIA GTC again. Join us in person at NVIDIA GTC on March 18-21, 2024 to explore what’s next in AI and accelerated computing. We will be at booth 1601 in the MLOps & LLMOps Pavilion, demonstrating how open source ...


Rhys Knipe
5 November 2024

What is IoT device management?

Internet of Things Article

IoT device management refers to processes or practices used to deploy, monitor and maintain IoT devices. As organizations scale up their IoT efforts, a solid device management approach is essential to running a secure, streamlined fleet of devices.  The proliferation of connected devices worldwide (projected to reach 18.8 billion in 2024) ...


Gokhan Cetinkaya
30 September 2024

How to deploy AI workloads at the edge using open source solutions

AI Article

Running AI workloads at the edge with Canonical and Lenovo AI is driving a new wave of opportunities in all kinds of edge settings—from predictive maintenance in manufacturing, to virtual assistants in healthcare, to telco router optimisation in the most remote locations. But to support these AI workloads running virtually everywhere, com ...