MontaVista’s Dietrich on real-time Linux
Feb 7, 2006 — by LinuxDevices Staff — from the LinuxDevices Archive — 2 viewsSDA-Asia has published a gentle introduction to the concepts and history of real-time embedded Linux and its use in mobile phone handsets. The story, entitled “The Rise of Real-time Linux,” was written by Sven-Thorsten Dietrich, a leader of MontaVista's efforts to improve Linux real-time performance.
According to Dietrich, Linux's collaborative development model led to an emphasis on “fairness” to concurrently running processes. Yet mobile phone OSes should prioritize processes involving radio and voice processing, along with display and GUI responsiveness.
As a result, MontaVista developed enhancements to the 2.4 kernel — such as the (0)1 scheduler and kernel preemption — derivatives of which were later included in the mainstream 2.6 kernel. Despite these enhancements, Dietrich explains, “critical” areas in the kernel involving shared memory and interrupts limited Linux's real-time performance.
MontaVista then tried to solve the problem of critical areas by using MUTEXes (mutually exclusive locks), Dietrich says, while members of the Linux kernel community members did similar work concurrently. MontaVista eventually decided its MUTEX solution required changes to the existing kernel code, and as a result, decided to publish a prototype and seek community input. This resulted in an “epic week of programming,” in Dietrich's words, out of which a “conceptual real-time Linux kernel” emerged.
Dietrich believes real-time Linux will create significant development opportunities, both on the carrier side and in mobile phone and general device computing, where real-time multimedia processing and low power requirements are placing more and more demands on OS scheduling.
The complete SDA-Asia story can be found 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.