Jul 08, 2019 Linux

Which Embedded Linux? Evaluating Types of Linux for Embedded Systems

By Pavan Singh

pavansingh

Linux is the primary environment for a majority of software developers and is the solution of choice for embedded systems. Linux is ideal for embedded systems because it comes in so many flavors and varieties. However, this is also one of its biggest challenges. You want to make sure that you are using the right type of Linux to fit your particular use case.

One of Linux’s greatest strengths – but also one of its challenges – is that it comes in so many varieties that are each suited for a particular use case.

A Note About Enterprise Linux

Enterprise Linux includes the general-purpose and desktop distributions of Linux from Ubuntu, Red Hat, etc. This version of Linux is ideal for well-resourced, multipurpose, and often

multiuser use cases. These distributions are typically configured to support a huge range of devices with a one-size-fits-most mentality. Distributions are supported with the available source code and customization is possible but is often limited to package installation and configuration files. Enterprise Linux has a solid user experience, “good-enough” reliability for general purposes, and an inexpensive support model with a 3-5-year horizon.  However, off-the-shelf enterprise Linux generally makes for a very poor choice for embedded systems. It is too resource intensive, has too large an attack surface from a security perspective, and the maintenance windows are typically too short.

Enterprise Linux is typically not well suited for embedded systems.

Pros

Cons

  • Solid user experience
  • Good reliability for general purposes
  • Inexpensive support models
  • Minimal customization
  • Limited performance in constrained environments
  • Support for only 3-5 years

Types of Linux for Embedded Systems

Roll-Your-Own / Customized

Since off-the-shelf enterprise Linux doesn’t work well in embedded situations, many organizations choose to create their own customized Linux for embedded systems. This is typically referred to as roll-your-own (RYO) Linux. To roll their own, developers strip down the community distribution to only the components that they need. The hope is that developers can then rely upon the existing open-source community for support since their custom Linux was based on a common distribution.

Unfortunately, the reality is that the community doesn’t actually know anything about the now completely custom version that has been created and therefore is unable to provide significant long-term support. Without the community, organizations must have dedicated engineers who understand the unique OS that has been created in order to support and maintain it. Initially, this isn’t a big burden, but as time goes on, it becomes a bigger headache as the gulf between the community’s currently supported OS and the custom OS becomes wider and wider.

RYO expertise must be maintained in-house with support and maintenance costs that significantly increase over time.

Pros

Cons

  • Low initial cost
  • Fully customized
  • Long term support and maintenance costs
  • Increased long-tail security risks
  • Expertise must be maintained in-house (minimal support from the open source community)
  • Must handle compliance

Commercially-Supported Linux for Embedded Systems

Commercially-supported Linux for embedded systems takes an approach similar to that of commercially supported enterprise Linux but is built with embedded use cases in mind. Instead of creating a one-size-fits-most distribution, commercial vendors create a compact core. This core can support low-resource environments, with very high reliability, on a system that only requires local support for extensions.

The core Linux framework is provided by the Open Embedded and Yocto-Project communities which enable economies of scale in terms of support and customizations that fit each project requirements perfectly.

Board Support Packages (BSPs)

A board support package (BSP) is the layer of software containing hardware specific drivers and other routines that allow Linux to function in a particular hardware environment. It should be customized not just to the correct architecture/OS combination but down to the exact system on a chip (SoC) and board configuration used. To optimize for an embedded environment, the BSP should also include a customized version of Linux (or another OS). Your BSP vendor can provide customized test suites, developer assistance from experts, and other professional services.

BSPs provide a polished development and production and environment along with massive time savings and a big leap forward in reliability and quality compared to building your own drivers and hardware support package.

Benefits of using a BSP supported by a commercial vendor:

  • Increased speed
  • Expertise for specific boards and drivers
  • Economies of scale
  • Supported and maintained

We have thousands of BSPs available for covering almost every popular processor architecture and are currently offering a few for free. Browse the library of free BSPs.

Commercially supported embedded Linux offers the same customization and uniqueness of the final OS as RYO.  However, with commercial-supported Linux, the distributions are all sourced from the same code, which is carefully monitored, maintained, patched by a dedicated team to achieve significant economies of scale.

Commercially supported embedded Linux offers low-costs, long term support and maintenance along with comprehensive development lifecycle services.

Pros

Cons

  • Lower long-term support and maintenance costs
  • Fewer technical, business, and legal risks
  • Includes full development lifecycle services
  • Get to market faster
  • Higher initial costs

Commercially-Supported Linux for Embedded Systems

Commercial embedded Linux offers a clear return on investment versus RYO solutions that are developed and maintained in-house. Ultimately the total cost of ownership is lower, and many of the business, technical, and legal risks associated with maintaining your own are eliminated. A commercial vendor can supply the training, services, maintenance, and support that you need. This, in turn, increases productivity and reduces the overhead associated with maintaining a unique Linux distribution.

In this competitive market, you must concentrate on what you do best to be successful. That means your time should be focused on building great products and avoiding the risks and expenses that occur with platform development.

Want a deep dive into the details of why a commercially-supported Linux distribution might be right for your organization? Download the complete eBook: Embedded Linux: Prototype to Production.

Previous Commercial Embedded Linux: Prototype to Production
Next Breaking Down a Real-Time Autonomous Data Management Framework