Linux gains native RTOS emulation layer
Mar 21, 2008 — by LinuxDevices Staff — from the LinuxDevices Archive — 6 viewsNewly available open source software could significantly increase Linux's utility in industrial computing applications. The Xenomai/SOLO project aims to provide VxWorks and other RTOS emulation in user-space on most any Linux kernel, and to deliver short, bounded application latency on kernels with built-in real-time capabilities.
digg this story |
In theory, Xenomai/SOLO could simplify the work involved for companies porting legacy VxWorks and other RTOS applications to Linux. Such ports let companies make the most of existing software assets, while also taking advantage of Linux's modern hardware support, networking capabilities, user interface options, and compatibility with a vast library of open source software.
Xenomai/SOLO evolved from Xenomai, a real-time add-on for Linux that in turn evolved from RTAI (real-time application interface). Xenomai has historically used a “co-kernel” approach in which real-time applications run on a separate kernel that “cooperates” with the Linux kernel. That approach requires that care be taken in configuring the Linux kernel, however, and unfortunately it currently requires avoiding certain common configuration options such as CONFIG_CPU_FREQ, CONFIG_APM, CONFIG_ACPI_PROCESSOR, and a few others, according to the Xenomai FAQ.
The new Xenomai/SOLO add-on apparently does away with the co-kernel approach, instead integrating Xenomai's RTOS emulation layer more tightly with the Linux kernel itself. This results in less pickiness about kernel configuration options, while of course also resulting in an RTOS layer that is only as “real-time” as the underlying kernel. Luckily, thanks to PREEMPT_RT and other configuration options available in recent kernels, native Linux can offer pretty good real-time responsiveness these days.
Code author Phillipe Gerum explains:
Some weeks ago, I started laying the groundwork for porting the Xenomai emulators natively over the PREEMPT_RT kernel. Unlike the co-kernel based Xenomai version, SOLO does not require any kernel support from additional modules or patches. It is fully based on the standard POSIX library, and runs as a regular process controlled by a single image Linux kernel.
As a first step, a VxWorks emulator has just been rebuilt over this new framework.
This framework is not another window-dressing of the existing Xenomai 2.x core, but really something 100 percent redesigned and rewritten for running on a native real-time Linux implementation, while keeping the opportunity to adapt it back to a co-kernel system. At some point, I'd like to make both the native and co-kernel Xenomai incarnations converge on the basis of this new core interface for Xenomai 3, so that we would be able to share the APIs between them. In short, SOLO is a necessary intermediate step on the road to Xenomai 3.
The Xenomai/SOLO project was co-sponsored by the OSADL (Open Source Automation Development Lab), which will host a conference next month, and Denx Software Engineering, an embedded Linux OS, tools, and service provider that added Xenomai support to its off-the-shelf industrial Linux distribution last year. Denx CEO Wolfgang Denk stated, “Denx Software Engineering is proud to announce Xenomai/SOLO, the new RTOS emulator that runs as a normal user-space application.”
More details about the project can be found in a README, here. The code is available now for download here (GIT repository), and can also be browsed, here.
This article was originally published on LinuxDevices.com and has been donated to the open source community by QuinStreet Inc. Please visit LinuxToday.com for up-to-date news and articles about Linux and open source.