Professional Articles


Easier Development of embedded Linux Applications with ELinOS

Professional Articles


Easier Development of embedded Linux Applications with ELinOS

When DIY is more expensive

For many years, embedded Linux systems have been used predominantly in networked environments. These systems worked well for a long time - true to the motto "Never touch a running system". However, this inevitably leads to security problems and is accompanied by the fact that, according to the latest Cyber Security Report by Allensbach and Deloitte, managers see a growing threat situation in their IT infrastructures.

Embedded systems can be found in many electronic devices - from specialized equipment to intelligent electricity meters and even cars. Global networking poses a high security risk, to which a fundamental and sustainable response is now required and which must be taken into account in the development of new systems.

Why does it need a commercial Distribution at all?

The support of various boards in the Linux kernel is now standard and most board manufacturers deliver adapted versions. However, if you take a closer look at what the vendors provide in Board Support Packages (BSP) for their boards, you will quickly realize that there are different approaches. While some develop such BSPs themselves, others use ready-made BSPs from the Yocto project, for example. Furthermore, it is not the core business of the manufacturers to provide these systems with updated packages and security updates over several years. Their focus is on selling boards, not on maintaining Linux BSPs. As a result, such BSPs are often only updated over relatively short periods of 1-2 years, which is particularly problematic for long-lived embedded applications.

SYSGO fills this gap with ELinOS. ELinOS is not only a Linux distribution tailored to the embedded market with its strict safety and security requirements, but SYSGO also takes care of package maintenance, porting of safety-critical patches and support. ELinOS' orientation is consistently minimalist and offers a small surface area for possible attack vectors. But unlike lightweight distributions, which abound, ELinOS comes with a feature that is not otherwise found in the market for industrial security Linux in terms of usability: The feature assembler allows ELinOS to be configured according to the operational requirements of a project and to be extended with functionalities. On the one hand you get a slim and therefore more secure Linux, but on the other hand you can easily adapt the target system.

This complete package supports developers in their core tasks, the implementation of their application and maintenance of the product over several years with the advantage that projects can be carried out comparatively quickly, safely and above all easily. This is particularly important in relation to Industry 4.0, when systems are interconnected on an ever-increasing scale, making them potentially vulnerable and requiring manageability and support. This means that continuous monitoring of current security risks and the supply of patches to the packages are indispensable - without having to make any concessions to the range of functions and the basic security architecture.

Optimized for embedded

With ELinOS, SYSGO has been providing a software platform optimized for embedded applications since 1999, currently in version 7.0, which now also fully supports Docker. With an easy to use Docker feature, developers can integrate any Docker image which are available for download in large numbers on the web. Industrial strength and a user-friendly interface go hand in hand with a comprehensive toolset and long-term support throughout the entire life cycle. Especially the maintenance of the contained packages as well as an active monitoring of discovered security holes ensure a high level of security. In addition, SYSGO offers comprehensive technical support from employees who are also active in the kernel community. SYSGO also supports the work of the Linux Foundation.

In order to meet the multitude of embedded platforms and I/O possibilities available today, ELinOS uses a current selection of packages for the respective architecture. ELinOS is also based on a stable Linux kernel with long-term support from the community (Long Term Support - LTS).

ELinOS is an industrial Linux distribution that runs natively on a target system, but also as an instance under SYSGO's hypervisor PikeOS. With this hypervisor, time-critical software can be executed in parallel to ELinOS without any deterministic effects on safety-critical applications. Especially the interaction between the hypervisor PikeOS and the industrial Linux system ELinOS has been improved in ELinOS 7 by means of custom pools. ELinOS 7 is especially beginner-friendly: Due to its easy access, the distribution is especially suitable for developers who are new to embedded Linux. ELinOS contains the precompiled cross-compiling environment to start directly with the development of the system.

Thanks to the comparatively easy to use Eclipse-based IDE and wizards, a system can be created according to customer requirements in a few minutes. An efficient build system with precompiled packages allows short lead times in critical development phases, and scripts allow build and test scenarios to be implemented with just one click. Due to many years of experience in Linux; SYSGO can support its customers from the initial planning of the hardware to the implementation and adaptation of the system to the needs of the applications. Due to the simple separation between Linux kernel, BSP and customer project it is possible to integrate new drivers and develop applications in a very short time.

Broad Hardware Support

ELinOS offers broad support for many boards and consistently expands this support, for example with a BSP for Freescale/NXP i.MX8 QXP MEK. OEMs can rely on custom BSPs that are tailored to specific hardware products and reduce the burden on support teams. In addition, SYSGO helps porting ELinOS to customer-specific hardware and offers support for on-board setup. Linux Realtime (RT) patches have been integrated for soft real-time applications. When using the PikeOS hypervisor, safety-critical systems can be extended with a fully compatible Linux runtime.

Eclipse-based IDE

The development environment for ELinOS is the Eclipse-based IDE CODEO. CODEO provides system architects with a graphical configuration tool. For the development of embedded applications, CODEO contains extensive tools to complete embedded projects in a time-saving and cost-efficient way:

  • Guided configuration
  • Remote debugging (down to the hardware command level)
  • Target monitoring
  • Remote application deployment
  • Timing analyses

CODEO includes standard functions for application development such as debugger, compiler, assembler and linker.

A QEMU-based hardware simulation supports the developers in simulating the target hardware on the development system. This hardware simulation is available for all available architectures and can be managed and configured directly in the IDE via a graphical wizard. This enables fast software development, early testing and debugging even without real target hardware.

The file system editor allows efficient management of files and configurations. Files can be added and removed directly to the file system. In addition, it provides a dynamic preview of the final layout, which is automatically updated when the associated configuration is changed which directly affects the file system.

Several dedicated graphical editing views support the system integrator to always keep track of important aspects of the ELinOS system configuration with plug-ins for target analysis such as system monitoring, tracing, or debugging.

Projects can be easily defined and distributed to development groups using reusable templates. Developers can configure predefined components for their project and define and add additional components during the development process.

As an integrated development environment for embedded systems under Linux, ELinOS offers a variety of tools, supports adequate boot strategies, is easy to handle due to its graphical user interface and is available for established embedded hardware. This enables seamless work from driver development to application integration. The current version 7.0 of ELinOS is based on the Linux kernel 4.19 with long-term support and real-time extensions and supports native 64-bit development systems under Windows and Linux. The toolchain includes gcc v8.3 and binutils v2.31; the standard library glibc is available in version 2.28

ELinOS 7.0 is compatible with all 4.x versions of PikeOS as well as with PikeOS 5.0 and can run there directly as guest operating system. Since version 7.0, the integration of ELinOS as a guest in PikeOS can be done very easily by supporting the custom pools of PikeOS.