MontaVista unveils “open” hard-real-time Linux project
Oct 11, 2004 — by LinuxDevices Staff — from the LinuxDevices Archive — 1 views[Updated Oct. 13, 2004] — MontaVista Software has launched an open source project to bring “hard real-time” performance to standard, native Linux, and has seeded a fledgling “Open Source Real-Time Linux Project” with a reference implementation claimed to improve real-time responsiveness of the 2.6.9rc3 Linux kernel by “orders of magnitude.”
Ready for hard real-time
MontaVista CEO Jim Ready is something of an expert in real-time systems, having pioneered the development of VRTX — considered by many to have been the first commercially viable real-time operating system — after co-founding Hunter and Ready Systems in 1980 (which was later renamed to Ready Systems). In 1999, though, Ready turned his back on the traditional real-time embedded software industry he helped create, to found embedded Linux startup MontaVista Software. Now, Ready appears, well, ready to complete the circle — bringing Linux back to his own real-time roots.
“Extremely fast real-time capability is the final barrier to comprehensive implementation of Linux in a wide range of devices,” Ready now says. “Our strategy has always been to drive native real-time improvements in Linux itself, and to open the process to as large a developer audience as possible. We want Linux to achieve and even exceed all the responsiveness attributes of proprietary kernel products, while continuing to provide all the benefits of Open Source. With hard real-time capabilities, Linux is set to assume the role of a universal platform.”
Ready's enthusiasm for adding hard real-time capabilities to Linux is partly fueled by market data such as a recent report from Venture Development Corp. (VDC) that found limited real-time performance to be the leading concern of developers evaluating Linux for future embedded projects. The same report indicates that in embedded projects where real-time is an issue, 66 percent required interrupt response times that range from 100 to less than 5 microseconds, according to MontaVista.
(For further perspective, read Ready's comments regarding MontaVista's real-time strategy in interviews with LinuxDevices.com four years ago and earlier this year.)
Linux as universal platform
MontaVista product marketing manager Jacob Lehrbaum explains that many of MontaVista's larger customers develop and maintain multiple operating systems to support various past, current, and future products. The ability to standardize on a single OS platform would enable them to save tool, support, and training costs. “Our customers need to consolidate their platforms to save the overhead of maintaining them,” he notes.
Embedded Linux is attractive as a universal platform, Lehrbaum adds, because it enjoys a developer ecosystem of unmatched richness, and offers full access to source code as well as a choice of support vendors. Yet, native Linux has simply not been able to deliver predictable enough response times for certain applications. Real-time Linux projects such as RTAI and commercial products such as RTLinux have achieved success, but according to Lehrbaum, “They don't deliver the common, vendor-neutral, standard approach that's necessary if [our customers] are going to rely on Linux as their universal platform.”
In particular, MontaVista hopes to bring real-time Linux to two critical target markets: mobile handsets and telecommunications equipment.
“Both ends of the wire”
Telecommunications requires real-time capability at “both ends of the wire” so that calls are not dropped and conversations can take place without interruption, notes Lehrbaum. So far, mobile phones that run Linux have done so on a discrete, secondary application processor, with its own memory subsystem, leaving the primary, typically ARM7 based CPU to drive the communications modem with a real-time operating system such as VRTX. This cumbersome arrangement results in a larger, more expensive phone, with higher power requirements than the one-chip, one-OS Linux phones of the future that MontaVista envisions. Lehrbaum confirmed that MontaVista is already working with several customers on real-time Linux implementations for mobile phone products, including a single-CPU device.
At the other end of the wire, Carrier Grade Linux has achieved growing penetration on systems that manage and control telephone networks, for example setting up and tearing down network connections when calls are placed and ended, and recording events for billing purposes. Where Linux has not yet gone is onto the “data-plane” systems, which process voice signals in real time, digitizing and compressing them for transport over the telephone network. So far, real-time, data-plane processing has remained the exclusive domain of proprietary real-time operating systems such as Wind River System's VxWorks and Enea's OSE, and partnerships such as that of Enea and Metrowerks have sought to offer dual-OS hybrid solutions that satisfy the real-time and Linux-compatibility demands of telecom system vendors.
MontaVista believes that true, native real-time capabilities will grow the total addressable market for Linux, and will benefit operators, equipment vendors, and users alike.
Progress so far, and project specifics
“We have a pretty solid infrastructure in place,” said Lehrbaum, “and we expect to ship real-time technology in product form in early 2005. What's left to do is to integrate it as effectively as possible into the open source kernel.”
Lehrbaum says that in contributing its real-time technology to open source, MontaVista is “more interested in developer than commercial allies.” Although some open source companies delay the release of source code for their developments until after they ship products commercially, he says MontaVista's philosophy has always been to open-source technologies before productizing them.
For now, the reference implementation contributed by MontaVista to the project consists of patches to the standard kernel.org 2.6.9rc3 kernel intended to support real-time performance on x86 and ARM targets. (x86 is available now; ARM is coming “soon”.) MontaVista expects to contribute support for other architectures over time. The kernel is “fully operable,” Lehrbaum says, adding, “there's still work to be done around reliability and performance tuning.”
The technology
MontaVista defines “real time” in a traditional manner, as “an application, event, or system that must respond to an event within a predictable period of time.”
MontaVista's real-time Linux implementation does not represent radical innovation, so much as a straightforward implementation of time-honored real-time techniques, according to Lehrbaum. “[We used] traditional and fairly well-recognized ways of doing things. It was more about taking the time and putting the effort into doing the implementation.”
The latest real-time enhancements, which currently comprise the core of the newly launched Open Source Real-Time Linux Project, are said to revolve around two key technologies — kernel mutexes, which support priority inheritance; and thread-based interrupt management, which enables system-wide prioritization — Lehrbaum explains.
MontaVista lists the following three key technical goals for the project:
- To allow application or system designers to impose reliable priority response on Interrupt handling
- To utilize priority inheritance mutexes to manage access to data protected by critical sections in the kernel
- To provision priority management throughout all kernel subsystems
Put another way, the project aims to deliver performance and deterministic real-time responsiveness comparable to commercial and proprietary RTOSes. MontaVista says it expects to lower worst-case Linux task preemption latency from the current level of 1-10 milliseconds down to tens of microseconds, an improvement of two orders of magnitude.
Other single-kernel Linux RTOSes
MontaVista is not the first commercial embedded Linux vendor to attempt to create a single-kernel real-time Linux OS. Back in December, 2001, TimeSys introduced TimeSys Linux GPL, later renamed Linux RTOS, which it calls a “single-kernel Linux real-time operating system” with a full-featured preemptible Linux kernel, along with additional components required to support predictable, extremely low-latency response. When first introduced, TimeSys said its Linux RTOS provided fully preemptible capabilities that included a kernel with bounded, mutex-based kernel locking, a fixed priority scheduler, schedulable interrupt handlers, and schedulable extended interrupt handlers (including the IP stack).
Lineo Solutions, the Japanese spinoff of Lineo, is another commercial source of a single-kernel real-time Linux implementation which it has shipped since mid-2003. Earlier this year, the company reported that it demonstrated hard real-time Linux capabilities that it planned to contribute to the source tree of the Consumer Electronic Linux Forum (CELF), and claimed real-time metrics such as 5 uS interrupt response time, 4 uS task latency time, and 20 uS periodic task latency time.
MontaVista's invitation
MontaVista is inviting “all interested organizations and individuals” to help improve and refine its working model through “feedback, testing, debugging, and other suggestions.” It says the Universitat der Bundeswehr Muenchen (Federal Armed Forces University, Munich) has already been an early contributor, and that interest has been high from other sources as well.
To support the project, MontaVista has established a project area on its Website. “Initially, it will be a MontaVista-driven project,” Lehrbaum says. “But if the [Linux kernel development] community decides to integrate the changes into a current or future version of the Linux kernel, then the momentum will migrate to the standard kernel [development] process.” He adds, “It's a MontaVista sponsored project — but frankly, it'll be led by developers.”
Will it go mainstream?
MontaVista has a successful track record of getting its technical contributions accepted into the mainstream kernel development tree. For example, the company's preemptible kernel patch project, launched in September 2000, was accepted into the 2.5 kernel in February 2002.
So far, however, Linux maintainer Linus Torvalds has not expressed eagerness to fold in MontaVista's real-time patches, according to an article by CNet's Stephen Shankland. “I personally think it's too intrusive, at least at this point. Almost nobody wants hard real-time, even in embedded devices,” Shankland quotes Torvalds as having said.
The secret to getting real-time enhancements accepted into the Linux kernel may well be to demonstrate improvements in real-time multimedia capabilities, such as improved graphics rendering for games, skip-free DVD playback, or life-like VoIP phone conversations. Assuming so, MontaVista is wise to encourage the Linux hacker community to participate in its single-kernel hard real-time Linux project, since the community is likely to be quick to check out the benefits of the enhanced real-time features to their favorite Linux pastimes and pleasures.
Visit the project's website, here . . .
Do you have comments or questions on this story? talkback here
This list may look long, but it is only a small fraction of the hundreds of news items, articles, white-papers, and guest-editorials on the topic of “real-time Linux” available on LinuxDevices.com. To delve even deeper, we suggest that you take advantage of the site's search engine, using “real-time” as the keyword and “exact phrase” as the match option. Enjoy . . . !
- The Real-time Linux Software Quick Reference Guide
- Linux succeeds in real-time
- Coding examples illustrate dual-kernel real-time Linux programming
- RTAI release brings real-time add-ons to Linux 2.6
- A comparative analysis of RTLinux and RTAI
- Further discussion on real-time approaches
- SPECIAL REPORT: Linux 2.6 arrives in embedded
- Real-time technology demoed for Consumer Electronics Linux
- Linux gets real (-time)
- VDC report: Linux gearing up for improved real-time support
- Which is better — the preempt patch, or the low-latency patch? Both!
- Preemptible kernel patch makes it into Linux kernel v2.5.4-pre6
- Adeos nanokernel for Linux kernel
- Basic concepts of real-time operating systems
- 34 papers on real-time Linux
- 28 talks on real-time Linux
- Update: Real-time Linux sub-kernels, benchmarks, and . . . contention
- Comparing real-time Linux alternatives
- Kevin Dankwardt on Real Time and Linux (Part 1)
- Kevin Dankwardt on Real Time and Linux (Part 2)
- Kevin Dankwardt on Real Time and Linux (Part 3)
- Real-time Linux — what is it, why do you want it, how do you do it?
- Jim Ready on “What is real-time?”
- Comparing real-time Linux alternatives
- Fundamentals of Real-time Linux Software Design
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.