Red Hat Docs  >  Manuals  >  EDK Manuals  > 

Contents

Next



Foreword

By Michael Tiemann, Chief Technology Officer

An anonymous coward once wrote that "the difference between theory and practice, while quite small in theory, is rather large in practice."

So it is with using Linux for embedded systems. While Linux is being touted as the answer for literally hundreds of new embedded product designs, the embedded systems programmer faces immediate and hard questions: how small, reliable, real-time, lightweight, inexpensive, flexible, feature-rich, portable, scalable, standard, does the solution need to be? The more deeply embedded the device, the larger the difference is between theory and practice.

This difference, while interesting in theory, has a very immediate and practical impact on the future of Linux. Unlike proprietary operating systems, Linux is open source, and anybody can read, modify, or share it as they wish. Believers claim that this "democratization of technology" is a fundamentally superior approach to centralized technology management, while skeptics fear that if anybody can make a change, the technology will devolve in the ensuing anarchy. In the desktop space, democracy has reigned supreme: the community accepts that "the best code wins," which means it also accepts that lesser code does lose. This model of natural selection has resulted in unprecedented advances in functionality, quality, compatibility, and rate of innovation.

So far, so good, in theory.

But the deeper one delves into the embedded market, the more one finds that the democratic process that favors superior code gives way to the dictatorial reality of hardware, schedule, power, and cost requirements that are unique to every single application. In this context, code that would be best for one platform is totally out of the question for another, and that goes against the design and portability assumptions of Linux. Indeed, since the forces that created literally thousands of independent, incompatible embedded operating systems began acting on Linux (no commercial RTOS has even a 10% market share in the embedded market!), several companies have created their own, incompatible approaches to embedding Linux.

Not so good, in practice.

An approach is needed that solves the problem in a way that is both Linux-compatible and Linux-independent. This need has led to the development of the EL/IX application programmer's interface (API). The EL/IX API, based on POSIX, is suitable for other embedded operating systems as well. The goals with the API are two-fold: (1) to make it easy for developers individually to gain control over Linux and its associated technologies without needing to fork or to fragment implementations, and (2) to make it possible for the industry as a whole to endorse a common API standard, thereby making Linux a strong (and possibly dominant) technology in the embedded systems arena.

The Red Hat Embedded DevKit (EDK) provides a unified development environment designed to help you configure, build, install, and boot an optimized Linux environment on both your Linux desktop system and your embedded Linux device. As with any open source project, we expect evolution to outpace proprietary development schedules, and we encourage your feedback (and patches) to make our product not only the best, but also one that you can and want to recommend to others.

In parallel with Red Hat's EDK, we have taken an active role in coordinating the EL/IX API development as a configurable standard for embedded Linux.

The goal of the project is, first and foremost, to standardize the APIs available in desktop Linux today so that developers have the following resources:

The EL/IX API will be extensible and open source. Moreover, the first version of the API will adhere to the following additional requirements:

Over 100 developers who are working on real-time and/or Linux development have endorsed this standard and are active participants in the drafting, review, and implementation of the API. If you are interested in following and/or participating in this activity, please visit http://sourceware.cygnus.com/elix and register according to your interests.

By meeting the technical requirements of the embedded developer, and by using internationally accepted standards in an open source implementation, we intend to make the adoption of the API a "no-brainer." Indeed, the impact on today's Linux developer is virtually nil. But the impact of adopting the API in the embedded community will be profound: flexibility and freedom will prevail over fragmentation, and life will be better both for the customers who want to buy intelligent devices and developers who want to use intelligent software solutions to build them.

We are glad to have you join us.


Contents

Next