日前,一款新的開源軟件將有效地幫助Linux擴大它在工控領域的市場地位。這個名為Xenomai/SOLO的開源項目的目的是能夠使得大部分的VxWorks和其他的RTOS(實時操作系統)能夠在Linux內核的用戶空間中模擬運行,並且能夠使得內核的內建實時功能的應用程序延遲時間保持在一定的短時間內。
理論上,Xenomai/SOLO項目可以減輕那些將VxWorks和其他的RTOS應用程序移植到Linux的那些公司的負擔。這種移植工作可以有效地利用目前公司的軟件資源,同樣可以利用Linux對現代硬件的支持、網絡功能、用戶接口,另外還有其他的豐富的開源軟件程序的接口。
英文原文:Newly 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.
In theory, Xenomai/SOLO couldsimplify the work involved for companies porting legacy VxWorks andother RTOS applications to Linux. Such ports let companies make themost of existing software assets, while also taking advantage ofLinux's modern hardware support, networking capabilities, userinterface options, and compatibility with a vast library of open sourcesoftware.
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 separatekernel that "cooperates" with the Linux kernel. That approach requiresthat care be taken in configuring the Linux kernel, however, andunfortunately it currently requires avoiding certain commonconfiguration options such as CONFIG_CPU_FREQ, CONFIG_APM,CONFIG_ACPI_PROCESSOR, and a few others, according to the Xenomai FAQ.
Thenew Xenomai/SOLO add-on apparently does away with the co-kernelapproach, instead integrating Xenomai's RTOS emulation layer moretightly with the Linux kernel itself. This results in less pickinessabout kernel configuration options, while of course also resulting inan RTOS layer that is only as "real-time" as the underlying kernel.Luckily, thanks to PREEMPT_RT and other configuration options availablein recent kernels, native Linux can offer pretty good real-timeresponsiveness these days.
Code author Phillipe Gerum explains:
Someweeks ago, I started laying the groundwork for porting the Xenomaiemulators natively over the PREEMPT_RT kernel. Unlike the co-kernelbased Xenomai version, SOLO does not require any kernel support fromadditional modules or patches. It is fully based on the standard POSIXlibrary, and runs as a regular process controlled by a single imageLinux 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 Xenomai2.x core, but really something 100 percent redesigned and rewritten forrunning on a native real-time Linux implementation, while keeping theopportunity to adapt it back to a co-kernel system. At some point, I'dlike to make both the native and co-kernel Xenomai incarnationsconverge on the basis of this new core interface for Xenomai 3, so thatwe would be able to share the APIs between them. In short, SOLO is anecessary 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 Denkstated, "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 [url=git://www.denx.de/git/xenomai-solo.git]here[/url] (GIT repository), and can also be browsed, here.