Distros and FOSS haven’t helped product builders make great embedded Linux products. The lack of FOSS support allows proprietary OS dinosaurs like Broadcom and Qualcomm to endure as the primary SDK of choice for the majority of embedded Linux devices that leave the factory. What has gone wrong?
In a recent FOSDEM talk that took place earlier this year, Alexander Sack, CTO of Pantacor, explored how the Linux distro and FOSS can do more for the embedded Linux community. He presented his ideas on what a Distro 2.0 can look like. How an advanced distro can expand on packaging to help FOSS projects improve and innovate on the way embedded Linux products are built, managed, and maintained.
Linux distros are at the heart of FOSS
There is no doubt that the work done with Linux distros so far has made creating applications on Linux much simpler and less complex. But for Alex, Linux distributions excel particularly well at levelling the playing field by allowing individual developers to take off the shelf components and create the framework they need. The community’s maturity in combination with the number of available Linux distributions, as well as the integration, and packaging, makes it very straightforward for an individual developer to contribute or create or remix a new distro that is specific to their use case. Without the distro and its infrastructure created by the FOSS community, this would be next to impossible for a small vendor or an independent developer to accomplish.
“Distros have been the backbone of Linux for the past two decades, but with the advances made in cloud technology and infrastructure, they have started to become less relevant as a solution and product in itself,” says Alexander Sack.
Supporting FOSS projects and their communities are critical components of the Linux distribution, but for embedded Linux, according to Alex, all of this has been left behind.
Why has embedded Linux not kept up with the rest of the community?
From personal experience, when Alex himself moved from desktop and server distributions to embedded, he witnessed a massive gap in the way systems are built and managed in the embedded space.
“Distributions are not delivering on the necessary supporting items. Because of these gaps, the dinosaur software vendors are still relevant in embedded Linux. These big companies make proprietary Linux operating systems that are forced onto the embedded community through their chipsets.”
One of the reasons for this, says Alex, is an immaturity in the embedded ecosystem that keeps these proprietary systems around. Because these companies have dominated embedded Linux, it means that in 2022 we have the following situation:
- Small product makers that cannot create production-ready products without huge upfront investment and a large team of engineers.
- Embedded Linux systems out in the wild today that are a security hazard and a maintenance mess.
- Embedded Linux Distros (like Yocto, Ubuntu, and Redhat) that are challenging to use and come with a steep learning curve.
So how do we move to the next generation of embedded distros?
In Alex’s experience, there are a few standard items that an open-source distro needs to incorporate and that the greater FOSS community can take on to make building embedded Linux products simpler.
- Production grade hardware support
- Production grade middleware stacks
- Downstream kernel maintenance
Production grade hardware support
In the desktop and server domains, you have a standard bios-driven Intel architecture with a single platform that works across environments. Unfortunately, this is not the case for embedded hardware where chipsets are unsupported in Linux distributions. If these were available to the open community, many of these proprietary companies would not be around anymore.
Production grade middleware stacks
Middleware is the bridge between the hardware and the application, referred to as the BSP (board support packages). On embedded Linux, the middleware is non-standard and needs customization every time you build a product for a particular chipset. There are middleware stacks in the Linux ecosystem today for almost anything on hardware. But they are seldom suitable for making a product on their own.
From Alex’s experience, he sees middleware that comes close to being useful, but is never quite right. Most BSPs almost always only work on a particular set of hardware. This leaves any customizations up to the product maker to implement. In Alex’s view, middleware support should be built into the distribution. When we figure out how to make this type of customization easier, we’ll get rid of the dinosaurs.
Getting what you need downstream into the kernel can be a problem for a small team. While this is true for the desktop and server worlds, it’s particularly complex for embedded developers, who need to customize the BSP, and the middleware stacks to make their products work well.
The bottom line is that distros need the scaffolding to prop up their work and to make things easier for embedded developers to create products using open source software from the community rather than relying on proprietary companies.
Making the dinosaurs extinct
For FOSS on embedded Linux to succeed, the community needs to :
- Enable a Board Support ecosystem.
- Provide middleware stack choices.
- Offer tooling and downstream support for product makers.
- Standardize installation, Over the Air deployments, and built-in secure boot.
- Open up your distros to enable upstream contributions to deliver parts and also enable downstream to be in charge.
View the rest of Alex’s talk here:
In this talk, Alexander Sack, CTO of Pantacor, looked at what’s holding back the embedded Linux community and why proprietary companies can still thrive. But, in the end, says Alex, the community and the industry will move further if everyone works together to make building and managing IoT and embedded Linux products more accessible and more secure through open source.
Pantavisor is an entirely open-source container framework for building embedded Linux products. Together with Pantacor Hub, embedded communities can create, share and deploy components to millions of embedded Linux devices across the globe.
Read the whitepaper: Software and Firmware Lifecycle Management at Scale for more information.