|
Embedio pioneered an operating system technology called hybridization that enables multiple kernels under one operating system on a single-core or a multi-core processor. The features, behavior and performance of an operating system are dependent on the design of the operating system's kernel. A kernel provides the lowest level abstraction layer for the hardware resources (memory, processors, I/O devices) and mechanisms for scheduling, interrupt management, task management, memory management and inter-process communication. The design and implementation of abstractions & mechanisms differ widely among different types of kernels. Embedio’s novel approach allows combining of two or more kernels in a single general purpose operating system (GPOS) without requiring the partitioning of the physical resources (memory, devices, etc). This allows execution of a single program across multiple kernels while sharing all of the GPOS resources and the use of a common, familiar development environment. For example, consider a hybridized operating system using both a Linux kernel and an RTOS kernel (e.g. iTRON). Any application program written for this operating system can use all of the system resources and libraries of Linux but also the real-time APIs of RTOS. The Linux system APIs would be executed on the Linux kernel while the RTOS program would run on the RTOS kernel. In addition, legacy programs designed for either Linux or iTRON operating systems can run with little or no modification. | | A typical implementation of Embedio’s hybridization technology, consists of three elements: A “primary” operating system – typically, but not necessarily, a general purpose operating system (GPOS) that will be “hybridized” by the addition of other, functionally motivated, “secondary” kernels. This kernel is referred to as the primary kernel while all other kernels are referred to as secondary kernels. However there is not implied superiority or priority among kernels. This operating system, after the addition of one or more secondary kernel hybridization modules, may also be referred to as the “hybridized” operating system. Embedio's Duet™ RTE (Run Time Engine) which runs as a module of the hybridized operating system providing the abstraction layer for hardware resources as well as mechanisms for integrating secondary kernels. The Duet RTE provides mechanism for execution of tasks on secondary kernel(s) and resource sharing among kernels.
A “secondary” kernel – one or more functionally selected kernels that must be integrated with the primary kernel using Duet RTE. Each secondary kernel has its own scheduler, interrupt handler, task manager, inter-process communication mechanisms and memory management.
Modularity
Embedio's hybridization architecture is an efficient modular implementation of the hardware abstraction layer and generic mechanisms for scheduling, interrupt management, task management, inter-process communication and memory management that are most commonly used in various kernel implementations. One or more functionally selected secondary kernels can be integrated with the the hybridized operating system by employing all or some of the hybridization mechanisms . Due to the modular nature of Duet™ RTE, integration of a kernel requires only the knowledge of Duet RTE APIs and does not require knowledge of how Duet RTE works. Footprint The footprint of a typical hybridization implementation depends on the footprint of the primary operating system to be hybridized, as well as the secondary kernels. The footprint of Duet RTE is very small compared as a percentage of the complete hybridized operating system footprint, but will vary slightly on different processors. Duet RTE on Renesas' SHx processors is only about 34 Kilobytes. Performance Hybridization allows native execution of each kernel used for the hybridization. Therefore tasks running on a secondary kernel in a hybridized operating system would have nearly the same performance as it would have if the kernel was running by itself on the the same processor without the hybridized general purpose operating system. We use two commonly used benchmarks, interrupt latency and task switch time, to compare the performance of a hybridized operating system with the primary operating system. In independent benchmarking tests of a hybridized operating system based on a Linux kernel and iTRON kernel, interrupt latency and task switching were several orders of magnitude better than alternative methods of achieving real time performance in Linux operating systems. | |
Flexibility Operating system hybridization is suitable where the application demands a dedicated kernel for a specific function – such as, real-time communication stack, embedded database engine, DSP, real-time operating system etc. These functions may require specific mechanisms for scheduling, interrupt management, task management, memory management that are not available or not efficiently implemented in the GPOS.
|