Most Linux activity has focused on mainstream server and desktop applications, but it is in the embedded world that Linux may well have the biggest impact.
What are the OS choices available to the embedded developer?
- Roll your own. For today's complex embedded applications this makes less and less sense.
- Use a real-time operating system (RTOS) from one of the established vendors. The suppliers are focused on the embedded market, understand the needs of the developer, and they are geared up to provide good support. And, of course, the RTOSs are specifically designed to meet the technical requirements. However, the embedded OS field is fragmented, and populated with proprietary RTOSs. It lacks a standard or dominant platform. As a result, the developer is locked into a vendor, and at the mercy of the vendor's plans and priorities. The choice of third-party software such as applications, protocols, and development tools is limited, as is support for hardware devices. This makes the development of embedded applications unnecessarily much more challenging and time consuming than developing mainstream applications for Windows or Linux.
- Windows CE or embedded NT. Microsoft's attempts to establish de facto standards in the embedded area have not met with much success. Do you really want your embedded products to require a cntrl-alt-delete once a day? Or help make Microsoft richer at your expense?
- Linux. Now that Linux offerings specifically tailored for embedded use are becoming available from vendors, including Monta Vista, Lineo and established RTOS vendors like LynuxWorks, who are focussed on the needs of the embedded developer, I am convinced that Linux will emerge as the leading choice for embedded developers.For this to become a reality, embedded Linux products have to be competitive with RTOS's in meeting the developer's requirements in areas like development environments, configurability, support of CPUs and hardware platforms popular for embedded use (such as CompactPCI boards), etc.
Embedded Linux products will satisfy the requirements for a large fraction of embedded applications, which have “soft” real-time requirements. Often, such soft real-time performance needs can be met simply by using faster CPUs or by implementing the most time-critical functions in device drivers or even in hardware.
However, many embedded applications have “hard” real-time requirements, which are the domain of RTOSs, but which Linux is not really designed to provide. In addition, most RTOSs can be configured down to much smaller footprints than Linux for the more deeply embedded applications.
For LynuxWorks, which also has a POSIX compliant, hard real-time operating system, which is already 95% Linux compatible at the source level, Linux represents a unique opportunity. For, by modifying a POSIX compliant RTOS, such as LynxOS, to be binary compatible with Linux, and plugging it into an embedded Linux distribution (such as LynuxWorks' BlueCat Linux), you can overcome Linux's main limitations for embedded applications while preserving most of the benefits of an open Linux platform. This extends the range of applications that can be addressed by embedded Linux/POSIX to provide hard real-time performance and much tighter memory footprints.
Conceptually, one can look at the two variants as an embedded Linux operating system with a choice of two kernels at the base of the product. Both products provide a consistent set of programming interfaces at the source level and binary level, as well as a common development environment, and they both interoperate seamlessly in distributed environments.
BlueCat Linux from LynuxWorks provides a true open source, royalty free kernel. And the complementary LynxOS 4.0 alternative offers a hard real-time POSIX compliant kernel specifically designed from the ground up for real-time embedded applications. This kernel can be scaled down to smaller footprints for deeply embedded requirements. Furthermore, it has been used in many mission critical applications and undergone the certification process by regulatory agencies.
With either alternative kernel, embedded developers can take advantage of the growing popularity of Linux and the wide availability of applications software, hardware support, and a growing pool of Linux-literate developers. And because of the open nature of Linux, the developer can easily migrate the application to other Linux products – no more lock-in to a single vendor.
The Linux software base is growing by leaps and bounds – scarcely a day goes by without the announcement of another software package available for Linux. In addition to mainstream software applications, as Linux picks up momentum in the embedded world, it will also serve as a standard platform around which an industry can grow that provides off-the-shelf applications and tools specifically targeting the needs of embedded developers. Most players in this space already have a Linux version of their product or are actively working on porting their software to Linux.
Availability of a large software base enables developers to build on existing software wherever possible, leading to faster time to market, reduced project risk and lower cost.
Embedded Linux is on its way towards becoming the platform of choice for embedded applications.
Author's bio: Inder M. Singh is the Chairman of LynuxWorks (formerly Lynx Real-Time Systems). He holds Ph.D. and M.Phil. degrees in computer science from Yale University, and an MSEE from Polytechnic Institute of New York. He founded Excelan, an early leader in local area networks in 1982 and served as its chairman, CEO and president until 1985. Excelan later merged with Novell. Dr. Singh was a cofounder of Kalpana, which pioneered Ethernet switching technology, and was one of Cisco's early acquisitions. Dr. Singh is a director of PacketStream and PocketPass, and has served on the boards of Mylex, Kalpana, Omnitel, Integrated Media Systems, Univation, Vivix, and Eon Systems. In addition to his experience with high technology start up companies, Dr. Singh has prior management and technical experience with Zilog, where he headed the Networking and Advanced Systems Development Group. At Zilog, he was the architect of the S8000 UNIX based product line. Dr. Singh has also held positions at Amdahl, where he was a Senior Computer Architect, Gartner Research, the Yale Computer Center, and Ontel.
This article was originally published on LinuxDevices 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.