In this article, Tomonori Kaneko, Technical Sales Director, Software Division and concurrently the Product Manager of real-time operating systems (RTOS) at eSOL, while focusing on the computing environment in the next-gen embedded field, will explain 'The Operating System that is demanded in the SDV, Cloud-Native Era.'
The computing environment is converging into two
At a certain IoT-related symposium, I remember being quite surprised by a statement made by a speaker during a lecture, saying, 'There used to be a term called embedded software.' His words were based on the significant trend of incorporating Cloud technology, which has achieved success in the smartphone field, into the traditional embedded domain, as we have come to see keywords such as IoT/M2M, SDV/SDM (Software-Defined Vehicle/Software-Defined Mobility), and Cloud-native. However, I felt these words were symbolic, showing a major tectonic shift in the embedded software environment.
When we reexamine this tectonic shift from the perspective of software developers, the computing environment for embedded systems, which was previously perceived as diverse, can actually converge into two main types based on their roles.
The first type is a computing environment that maximally utilizes open-source software (OSS), with Linux OS being a representative example. The utilization of OSS began in the PC field, and its application has extended to the Cloud. This context has led to the birth and development of numerous OSS programs enabling virtualization, service-oriented architectures, and containerization. Currently, it forms the foundation supporting Cloud computing, called "Cloud-native."
Cloud-native represents the technology to materialize concepts like IoT/M2M and SDV/SDM mentioned above. It has been developed in the process of rationalizing all fields throughout the systems’ planning, design, development, and operation with the assumption of Cloud use. While the concept was proposed as early as the 2000s, it has matured following the commercial success in the Cloud and smartphones field in the 2010s, and it has started to expand horizontally into other fields, including automotive and industrial applications. In these areas, an extremely flexible computing environment is about to be realized, one that is not dependent on the physical configuration of hardware or network topology.
The second type is a computing environment covering areas where conventional embedded software has played a role. As software embedded in devices ultimately requires some form of interaction with the physical world, there is a need to implement static processes with little room for change while depending on the constraints of the real world. Such processes are, for example, those requiring safety and security, tasks that must be completed within a specified timeframe, and control processes for sensors and actuators. Even in these traditional control system domains, while control authority has shifted from hardware to software, both functional and non-functional requirements for software are becoming more sophisticated.
These two computing environments differ significantly in nature, but there is great potential to generate significant commercial value by connecting both worlds. Therefore, technologies that allow collaboration while keeping both environments separate within a system are also considered crucial. These technologies will be introduced in the latter part of this article.
From the perspective of hardware evolution, heterogeneous computing is a trend
On the other hand, let's take a broad look at the evolution of hardware that provides a physical computing environment for software. From its inception to the present, computers have evolved by oscillating between "centralized" and "distributed" models. It started with mainframes (centralized), transitioned through the era of PCs and on-premises servers (distributed), arrived at Cloud computing (centralized), and recently, there has been a shift towards "distributed" with trends like IoT/Edge computing.
And at the even lower layer of component configuration, such as CPUs and peripherals, the current trend is also leaning towards "distributed." Especially in the embedded field, there is a pressing need to combine specialized computing units that can handle advanced tasks required at the edge within the constraints of power consumption. The proliferation of recent technologies like compatible heterogeneous multicore and GPU/GPGPU/NPU + CPU configurations as well as the emergence of chiplet technology are accelerating the realization of heterogeneous computing, which distributes functionalities across multiple types of hardware cores.
An OS suitable for next-gen computing
Taking into account the trends mentioned above, what kind of OS is needed to realize the next-gen computing environment in the embedded field? The keywords are distribution and collaboration.
First, the two computing environments mentioned above need to be safely partitioned. Partitioning is a method of logically dividing units of a system and managing them, ensuring the independence of each by constraining interference between the divided elements. For example, by employing appropriate partitioning methods, it becomes possible to separate the processing of large-scale data imported from the Cloud-native world and the real-time control of actuators, preserving the independent control cycles of each.
Furthermore, when systems that have been partitioned need to operate collaboratively, it is necessary to provide a means of communication that allows collaboration while maintaining the purpose of partitioning. One method commonly used in this context is known as Service-Oriented Architecture (SOA), which has been traditionally used in Cloud services. In SOA, computing units on the network are metaphorically considered service providers and users. Their interactions are limited to communications defined by the specifications of services, allowing dynamic collaboration while keeping the software dependencies between them low.
The distributed functionality of secure partitioning methods and the collaboration capabilities of the SOA approach can be considered essential requirements for the next-gen computing environment in the embedded field.
Furthermore, considering the presence of heterogeneous computing hardware mentioned earlier, designing a system involves more than just partitioning functions and allocating them to multiple computing resources. It also requires considering differences in the communication methods and operational characteristics among heterogeneous computing resources. While this domain is typically handled by system integrators, there are countless logical combinations of function placements and communication paths. Therefore, to ultimately reduce the cost of integration, operating systems also need to provide features that hide the complexity of hardware configurations in heterogeneous computing environments and support the development of multi-core processors and multi-process systems.
The multikernel (aka distributed microkernel) architecture adopted by eMCOS®, developed and marketed by eSOL, is designed exactly to meet these needs. It is an OS suitable for
mixed-criticality systems on heterogeneous computers.
For detailed technical information, please refer to this link.
Furthermore, the development environment provided by the eMCOS SDK aims to bridge the gap between Cloud-native and traditional embedded development environments. While I will introduce it again in upcoming posts, there are some notable features, such as compatibility with CI/CD and integration with open IDE frontends, including Visual Studio Code.
If you have any questions regarding eMCOS, please feel free to contact us using the link below:
For over 20 years, eSOL has been deeply involved in developing and selling commercial embedded RTOS, actively contributing to our customers' system development. We will continue to play a bridging role between Cloud-native technology and embedded technology, proposing eMCOS solutions that adapt to the changes in computing environments.
Tomonori Kaneko,
Technical Sales Director