Embedded Software and its colourful world. Like any other computers, embedded and edge devices also need software to perform their tasks. Whilst a variety of different operating systems and application programs exist today, the prevailing trend is towards open systems.
Embedded and edge devices are simply small computers. And like computers, they need software to be able to perform their tasks. Just like an embedded software. An operating system is the starting point in this respect, just like with the PC. However, because an embedded-computer performs precisely defined tasks, its workload is nowhere near as high as that of a PC.
Which means that very simple embedded systems can even manage without an operating system. Where an embedded computer does need an operating system though is when multiple applications are added. As is the case with Edge Computing. The operating system is responsible for memory and file management. And also for ensuring that various tasks can be processed in parallel and for handling integration in higher-level systems. Based on various communication standards. Special embedded versions of standard operating systems are frequently used here. For example Windows 10 IoT or Linux-based systems such as Ubuntu.
Linux with real-time capability
Linux has established itself as one of the most powerful embedded operating systems. Thanks to the large number of CPU-architectures supported, the practically unlimited number of drivers and its excellent portability and scalability. According to the IoT Developer Survey 2018 conducted by the Eclipse Foundation, around 72 per cent of developers opt for Linux systems for their IoT devices, whilst only approx. 23 per cent use Windows.
Meanwhile, Linux-based systems that fulfil the requirements for hard real-time use are starting to emerge. Until now, special real-time extensions, such as RT patches or PREEMPT_RT, had to be used for this purpose. Many of the techniques developed in this context are already included in the Linux kernel, therefore in the basic system. However, the expectation is that the real-time extensions will be incorporated fully in the kernel in the foreseeable future.
The current Linux version 5.3 can already be viewed as a trailblazer in terms of real-time support. This is because a new kernel configuration option has been added to the main development branch of the kernel. Which will allow a fully preemptible kernel (real-time/RT) to be built – with support for real-time requirements.
Faster to market with edge frameworks
The application software runs on the operating system. It contains the device-specific functions, processes the recorded data and represents the interface to the higher-level system. Programming an application is complex from the ground up. However, since certain functions and elements are the same in every application software, so-called frameworks were developed. These are not independent programs, rather provide a structure for programmers in the sense of a programming framework.
Since these functions and elements do not have to be reprogrammed every time, the development time is reduced significantly. Examples of frameworks that have become established in Edge Computing include AWS Greengrass, Microsoft Azure IoT Edge or Alibaba Cloud. Choosing the right framework is not a simple task. However, since it generally requires specific hardware (e.g. x86 architecture or AMD chips), only runs on a defined operating system. And is tailored to special fields of application.
Open systems unify the market
Since Edge Computing can at times involve an entire eco-system of different devices from different manufacturers communicating with one another. The aim should be to avoid interfaces between various operating systems and application programs where possible. This is what is promised by open systems. Open in this respect, however, open does not (only) mean that the software is developed as an open source project. This is already the case with Azure IoT Edge, for example. In essence, open means that the application software is independent of hardware and operating system. And additionally, the software used in the cloud.
This is precisely what is being aimed for with LF Edge. Which is being used within the Linux Foundation to create an open and interoperable framework for Edge Computing. And the framework is independent of hardware, silicon, cloud or operating system.
LF Edge was launched at the beginning of 2019 and initially consists of five projects. Including Akraino Edge Stack, EdgeX Foundry, Home Edge, Open Glossary of Edge Computing and Project EVE, some of which were already started previously. The open framework should provide support for newly emerging edge applications and connected things, which require a lower latency, faster data processing and mobile use. Based on the software stack, LF Edge should help to unify the fragmented Edge-Computing market by creating a shared open vision for the future of the sector.