In a recent episode of “Innovation Coffee” the podcast produced by Arm Software Developers, host and ARM Developer Advocate Robert Wolfe (@fixxxxxxer) sat down with Ricardo Mendoza (@ricmm), CEO and Co-founder of Pantacor. They discussed the future of the Linux Distro on embedded devices.
The interview began with a segment on how the connected future could play out and why cloud and embedded developers need to work together before we can fully realize a connected future of things. The conversation then turned to the requirements of embedded developers and finally to how a containerized, portable Linux distro can help solve those problems.
The connected future of things
We’re entering a world where different types of developers, both cloud and embedded, working in their silos, will eventually merge towards a single goal, says Ricardo. Cloud technology like Kubernetes and its ecosystem ushered in a new era that made almost every company a software company. As a result, companies no longer view developers and the technology they produce as ancillary external services but integral parts of their DNA.
Of course, in the embedded world, developers have always been the backbone of a company. But as we move closer to realizing the Internet of Things, cloud and embedded developers must blend their technology and best practices for the future IoT connected world.
“I don’t think we can realize the future of smart connected everything just by thinking that with the devices in the hands of embedded engineers, you will fix everything for the connected IoT. These are the people who have been working on wifi routers for the past 20 years. We need to open the floodgates for developers in all segments to interact in the embedded industry. That’s what’s going to take us into the vision of a connected world.” – Ricardo Mendoza, CEO Pantacor
Where the Linux distro is heading
The blending of the embedded and cloud developer worlds leads us to where Linux distros for IoT devices are heading. Ricardo sees the future of using and building embedded Linux distros going in the direction of the cloud’s infrastructure today. For example, an embedded distro needs to be as easy and portable to implement as it is for cloud developers who can spin up Kubernetes instances without thinking about the specific Linux operating system they are running.
An immutable embedded Linux distro?
In the same way that infrastructure is immutable, yet rich in choice for cloud developers, so should the embedded Linux distro. An embedded Linux distro must be immutable, portable, easily customized, and run any app just like containers do in the cloud.
Most developers look to popular distros like Ubuntu, Fedora from Red Hat when presented with a new project. So the first thing you might do is automatically use the distro that you’re most comfortable with. But what if you could do away with a distro from a single vendor altogether and use the features that you need from any distro out there? Even better would be a world where the embedded features can be shared among developers for closer collaboration and increased development velocity.
How embedded developers view firmware
Before we get into the details of creating an immutable Linux distro, we need to understand the specific OS and firmware requirements for embedded developers.
Most don’t see projects in terms of a distro
Most embedded developers usually don’t think in terms of a distro. Instead, they will often create a specialized or a stripped-down version of a firmware building system or a modular distro like OpenWRT, or they may take the time to specialize one with buildroot.
Each use case requires customization
Some developers have experimented with a distro-like build system for embedded devices. For example, Linaro has done several reference distros that enable developers to build an OS on top of most boards. However, not all of the chipsets supported it. So, in the end, many developers end up building out their own for a particular board and chipset and then highly customize it for their specific use case.
Same board across diverse product lines
Building your OS for a particular device was fine in the past since most devices did not connect, but as we move into a world where devices are more like generic infrastructure, customizing each one depending on the use case can be a cumbersome process. For example, some companies have extensive product lines that range from washing machines to TVs with more than 500 different product lines. Only a handful of boards power all of these pieces of equipment, but yet the features of each will differ.
So it’s not really only about what distro is best for each board but rather how do you make each one of those boards from a software point of view as modular as possible so that it can apply anywhere in a product line.
Software-defined IoT infrastructure
If a device is defined in terms of its function, it’s the software that needs to enable those features, not the specific distro. So instead of having a container engine inside an extensive distro running on a Qualcomm SDK or Broadcom SDK or running on OpenWRT with Pantavisor you get a portable and modular containerized embedded system.
Pantavisor is an entirely new way of creating embedded Linux systems. When architecting, designing, and developing a Linux system with Pantavisor Linux as a starting point, you can leverage containers to build the features you want into your device. At Linux boot time Pantavisor brings up system containers. It is also responsible for maintaining the blueprint of the containers that are running in the system and how they interface with one another.
With Pantavisor, you are not running a bloated distro whose only purpose is to bring up a container engine to run an app. Instead, Pantavisor moves you away from an extensive distro so that you can think about product design as a set of modular functions. For example, you can take a networking container from one project and use it in another. Or you can take advantage of a specific containerized feature because you know it works better for Wi-fi. ‘Pantavisor, let’s you use containers as system building blocks to support your application.Instead of looking at what Web Server to use, you can think about the kind of networking you need,’ says Ricardo.
Not only does a system like this open the doors to a whole new way of thinking about embedded systems and product design, but it also creates a platform for more collaboration and code reuse. You can for example start looking at your embedded system in terms of portable microservices like the way cloud application developers do.
View the rest of the interview:
In this post we discussed the future of the embedded linux distro and what’s behind the concept of Pantavisor Linux. Pantavisor Linux is a framework for building, controlling and maintaining containerized embedded systems. If you have any questions or comments, please get in touch or find out more at pantavisor.io.