Hang Time for Kernel Real Time
Earlier this month, MontaVista released a proposal to incorporate real-time processing directly in the Linux kernel. The proposal has been met with a decidedly mixed reception, even though MontaVista could stand to lose some business if it goes through.
Previously, MontaVista had gotten around real time limitations in Linux by providing patches, but they say this approach is expensive and in the long run manufacturers will benefit from integrated real time.
Jacob Lehrbaum, product manager for consumer electronics at MontaVista, says that their announcement is just the first step in the process of trying to get the community to accept real time at the kernel level.
"What we're delivering is a reference implementation of a real time system that can be applied against the Linux kernel. We're not trying to say the work is done. We are using the standard Linux process of early release to foster discussion and collaboration and criticism," Lehrbaum said.
Gordon Haff, an analyst at Illuminata who covers Linux, says that this announcement wasn't really a surprise. "They've been an open source company. They've been doing a lot of work with real time. This is really an area they have been working on all along. Their goal is really to drive changes back into the standard Linux kernel and to get away from having a specialty version of Linux for real time," Haff said.
MontaVista defines real time as an application, event, or system that must respond to an event in a particular time period. They believe real time becomes critical when a failed response causes a "degradation in performance" such as a dropped phone call or clipped sound.
One of MontaVista's main motivations in bringing this proposal to the Linux community is an effort to simplify the use of Linux in their core market, cell phone handsets. They believe that making Linux part of the kernel will reduce overall production costs by providing a single open source production environment.
"Many phone makers (and semiconductor vendors) want to create a less expensive one-chip phone, for which all the processing, including real-time control, is done on a single chip. MontaVista is working with a number of semiconductor and phone manufacturers to make this possible. By breaking through the final barrier to hard real-time, we can expand the use of Linux to encompass many new market segments, including more than 100 million mid-tier and entry-level mobile phones over the next few years," Lehrbaum said.
What's more, MontaVista hopes by making real time part of the kernel, they can begin to drive an end to end solution from the network backend all the way down to the handset, a move they believe will greatly reduce development and maintenance costs for their customers. "With these enhancements, customers can use Linux across the network," Lehrbaum said.
One of the driving factors behind MontaVista's push to place real time directly in the kernel is market pressure for real time in Linux. In fact, Venture Development Corporation, a company that regularly tracks trends in the Linux market found in their June 2004 report, "Linux's Future in the Embedded Systems Market," that the chief reason inhibiting Linux adoption was "real-time limitations" with 44.3 percent of the respondents choosing this option. The next closest issue was GPL licensing issues with under 35 percent response.
Lehrbaum believes if they can provide real time Linux at the kernel level, it will also help big companies consolidate development platforms.
"Many large companies have had numerous platforms to create devices, and in some cases dozens of different platforms, in many cases, with each one maintained by a single group. This is huge overhead and means development teams can't share resources, creating a lot of complications for these customers. They are trying to consolidate across the organization and take advantage of the efficiency of. Scale," Lehrbaum said.
Yet not everyone is excited about real time processing inside the kernel. Linus Torvalds was quoted in a ZDNet UK article as saying that "almost nobody wants hard real-time, even in embedded devices."
Torvalds went onto say they he believed that adding real time would add a layer of complexity to Linux that could interfere with general purpose Linux.
Analyst Haff thinks adding real time does raise some issues, but he's not convinced that the community can't overcome them. "I'm not sure what he means almost no one wants real time. I guess in terms of general purpose server and desktop operating systems, the requirements are different, but if you look at the 2.6 kernel, there were changes that benefited real time that also benefited general purpose use.
"If you look at hard real time, there are some requirements that do run to counter to general purpose Linux. The question is in the in between area, Are there reasonable compromises that can benefit real time, but not hurt general purpose Linux. There are some types of changes to be made, but clearly there are different requirements, and there does come a point that you can't be all things to all people," Haff continued.
On a pure business level, MontaVista could actually benefit more by keeping real time out of the kernel, but they believe that widespread adoption is linked to making it part of the kernel and they remain committed to the principals of open source development.
"We are also committed to Open Source. We have benefited when others have taken the approach of sharing the best they have to offer and we are always looking for ways to give back to the Open Source community," Lehrbaum said.
MontaVista believes that there is a market for this, that they can achieve their goals through normal Linux community development channels and that real time and general purpose Linux can peacefully coexist inside the same kernel. "MontaVista's preferred goal here is to drive changes that do get implemented into the general purpose kernel with features that can get turned on and off depending on the needs of a particular work load," Haff said.
In the end, Torvalds' objections may be a real issue.
"Not all changes are accepted. In the case of real time, there certainly are conflicting requirements for real time and for general purpose Linux, and it would be understandable that the kernel maintainers would decide that this hurts general purpose throughput. The philosophy behind the general purpose kernel is for non-real time type of performance, and they don't [necessarily] want to add things that don't benefit general purpose types of performance," Haff said.
Lehrbaum says, regardless of these objections, they'll keep working to make it happen. "We will be working towards that goal in conjunction with others within the community. Given that we have had success in the past, we are hopeful that we will succeed once again."