RTOS, Embedded Linux, Real-Time Operating System and DO-178B: LynuxWorks

Why Linux in the Embedded Market?

Phil Hughes, publisher, Embedded Linux Journal, introduces you to the Linux® operating system and how it fits into the embedded market.

What is Linux?

Linux is a free, UNIX®-like operating system, developed originally for home PCs. Today, Linux runs on a variety of CPUs including PowerPC, MIPS, Alpha, Sparc, M68000 and ARM®. Linux aims for POSIX® compliance in order to maintain maximum compatibility with other UNIX-like systems. With millions of users worldwide, Linux is the most popular UNIX-like OS in the world.

BlueCat Linux white papers
Linux 2.6 Kernel is Ideal for Specialized Devices of all Sizes
Linux can be used in the Military
Developing Linux Applications for the Intel PCA Platform
Linux 2.6 for Embedded Systems: Closing in on Real-Time
A Developer's Review of LynuxWorks' BlueCat Linux SDK
Embedded Linux Towers Over Windows® XP Embedded
Successfully Using Linux and Open Software in an Embedded System Design
Why Linux in the Embedded Market?
VxWorks to Embedded Linux: a Success Story
Embedding Linux on an MZ104
Frequently Asked Questions

The Linux kernel is under constant development and is always available in both the latest stable release and the latest experimental release. Progress on development is very fast and the recent 2.4-series kernels are simply amazing on all counts. The kernel design is modular, so that the actual OS code is very small yet able to load whatever functionality it needs when it needs it and then free the memory afterwards. Because of this, the kernel remains small and fast yet highly extensible.

Linux systems excel in many areas, ranging from end-user concerns such as stability, speed and ease of use, to developer concerns such as programming and networking. Today, Linux offers a variety of commercial productivity packages and office suites that can import and export files from other platforms, including MS-Windows® and MacOS.

Linux has long been praised for its stability—Linux systems are known for running months or even years at a time without crashing, freezing or having to be rebooted. The most common causes of reboots are power and hardware failures.

LynuxWorks BlueCat LINUX

Performance

Linux machines are known to be extremely fast because the operating system is very efficient at managing resources such as memory, CPU power and disk space. More of the Web than one might expect is actually powered by older PCs running Linux and the Apache Web Server.

NASA, Sandia, Fermilabs and others have built very powerful yet inexpensive supercomputers by creating clusters of Linux boxes running in parallel. This technique, called Beowulf clusters, was developed by Donald Becker at NASA. One such system is described in "I'm Not Going to Pay a Lot for This Supercomputer!", Linux Journal, January 1998.

Scalability

Linux has been run on everything from PDAs to IBM 390 mainframes. Because this single OS is capable of running on such a huge range of platforms, it can be the one OS that is used in all of a company's products. This can substantially decrease training and development costs and eliminate the need to learn a whole new OS if a product grows (or shrinks) more than expected.

In addition, because Linux is very easy to port to new platforms and is being used by many companies, new ports happen very rapidly. This means that a hardware change does not mean a re-selection or re-write of the OS.

Software development

Programmers often find that the Linux development environment is second to none. Most development software for Linux is free and covered under the GNU Public License, which guarantees that it will always remain free. Linux systems come standard with C and C++ compilers and an assembler, and often include Pascal, FORTRAN and BASIC implementations as well. In addition, modern languages such as Perl and Python and classic languages such as LISP are all available, fully functional and completely free.

The source code for the Linux OS itself and most Linux programs is freely available (and often included by default). This not only means that bugs are discovered and corrected almost immediately, but development of software proceeds at a much faster pace than one finds even at extremely successful commercial software houses. It also means that the code is subject to peer review. This encourages the developers to have a lot of pride in their work, helping increase the quality of the product. This phenomenon is called Open Source and is the subject of much discussion and amazement in the business world, the computer world and the press.

LynuxWorks DEVELOPER TOOLS

Device drivers

Peripheral hardware continues to evolve and, as it does, it is necessary to obtain device drivers for the new hardware. Because of the diverse user community and open nature of existing driver software, Linux drivers for new hardware are made available very quickly.

Drivers for new video devices are particularly problematic because video chips evolve so quickly. Most Linux systems that are doing graphical work use the X Windows System, another free software component. The Linux development community works closely with X developers-one Linux vendor has a member on the X team. This means that the necessary driver software becomes available quickly.

LynuxWorks DEVICE DRIVERS

Networking

Networking comes naturally to Linux. Linux is based on UNIX, where computer networking more or less was born. Virtually all networking protocols in use on the Internet are native to UNIX and/or Linux, so one can expect that UNIX and Linux would network better than any other platform. Setting up a network on a Linux machine is surprisingly simple because Linux handles most of the work; you just have to give it the correct addresses. Linux is made for networking. A large part of the Web is running on Linux boxes, especially because of the Apache Web Server that dramatically defeated its commercial competitors, proving the effectiveness and viability of the Open Source approach.

Productivity

Productivity software availability has exploded in recent years, and commercial developers have been producing excellent software for the Linux platform. Netscape Navigator and Communicator are freely available as well as StarOffice, WordPerfect 9 and a host of others, which often come standard on Linux distributions. Today, it has become hard to keep track of all the spreadsheets, databases and word processors. Many distributors package commercial software with their distributions, and many commercial producers offer free downloads. Linux productivity packages can usually read and write files from productivity packages on other platforms; Linux has always strived for compatibility and openness.

In the database arena, there are many free as well as commerical choices. These choices range from the free DBM routines included with UNIX over the years through commerical giants such as Oracle. In between is an assortment of Open Source databases, which include MySQL and PostgreSQL.

Development software

Perhaps one reason why there is so much software available for Linux is that it is an ideal development platform. C, C++ and an assembler come by default on all distributions. Combined with editors such as emacs and vi, and virtual consoles, software development is quite convenient. However, many other languages are available for Linux, including Ada, APL, BASIC, Dylan, Eiffel, Euler, Forth, Fortran, GOMscript, INTERCAL, LISP, Logo, Mercury, Modula, Oberon, Objective C, Pascal, Perl, Prolog, Python, Rexx, Ruby, Sather, SIMULA, Tcl/Tk and several more. These are available free of charge, of course.

Linux is a platform for developers.

System software

UNIX is an operating system for mainframes and supercomputers, so it stands to reason that there would be a lot of system-related software available. Since Linux is based on UNIX and very much compatible with it, there is also an abundance of system software for Linux. This includes software from daemons programs that run in the background) to networking (since networking is an integral part of the system, not an external add-on) to file systems, hardware support, emulation, benchmark testings and generic file utilities. Linux supports parallel processing (which is why it is often used to make supercomputers) and RAID (Redundant Array of Independent Disks) and has resources for managing all sorts of hardwar issues that would not usually come up for home users but are very important for mainframes and supercomputers, including power management, multi-user/multi-group system administration, backup and systems diagnostics.

Utilities

Utilities are used for disk and file manipulation, terminal customization, compression, archiving, scripting and other small but important things that keep a computer running at its best. Linux also has files, disks, terminals, compressions, archives and scripts, so it also has file utilities. Linux has command-line and even graphic interfaces for all sorts of disk and file operations, from converting sound and audio formats to compressing, archiving and encrypting files.

The growth of Linux in the server market

Linux, a free OS with virtually no marketing, has completely changed the server market. While Linux is an excellent print and file server offering compatibility with MacOS, MS-Windows and Novell networks, its biggest inroad has been in the Web server area. For years, people have observed that Cisco and Sun dominate the field of Internet connectivity with Sun offering the servers and Cisco the routers. Because of the high cost of entry to run your own servers and routers, smaller companies tended to buy services from other companies running large, expensive systems. Microsoft recognized this as an opportunity to offer lower-cost servers based on inexpensive Intel-based PCs and, of course, Microsoft software. Unfortunately, with little Internet experience under their belts, the speed and reliability of Microsoft-based solutions were well under those of the Sun-provided solutions. Enter Linux. Linux grew up on the Internet and had already proved it was fast and reliable-much of which we can attribute to the advantages of peer review of Open Source-based software. Linux teamed with the Apache Web Server quickly proved to be a more reliable and cost-effective web server solution. Today, more web servers run Apache on Linux than anything on a Microsoft-based operating system. Even Sun has recognized the value of Linux for low- to medium-scale web servers and, in September 2000, purchased Cobalt Networks, a company that produces web server systems that run the Linux OS.

Linux and embedded

The obvious question here is what can Linux do for the embedded market? There are at least three areas where Linux is a good fit:

Cross-Development
Twenty years ago a typical development system consisted of a dedicated computer system generally running an operating system supplied by the chip manufacturer. Both Intel and Motorola offered such systems that also included debugging and emulation capabilities.

As low-cost general purpose computers matured, independent manufacturers got into the development market. Even SSC got into this market in the mid-1980s with a set of cross-assemblers and cross-compilers for a whole host of microprocessor lines. Most of these second-generation products ran under UNIX or MS-DOS.

Today, with Linux offering a full-fledged multi-user, multi-tasking operating system on inexpensive PC hardware, vendors are porting cross-development tools. The porting process is easy because of the rich set of development tools available for Linux. Also, for those cross-developing in C for one of the platforms supported by the GNU C compiler included with Linux, they are home free.

Embedded Linux
A second place for Linux is embedding it within a product. Advantages include:

Linux as a Task Under a Real-Time OS
While Linux offers low interrupt latency (under 100 microseconds in most cases on today's fast processors), the non-deterministic nature of task scheduling may make it unsuitable for some hard real-time systems. But, the wealth of utility programs included with Linux makes it ideal for such tasks as report generation as well as networking and addressing interoperability issues.

By running the Linux kernel as a task under a real-time OS, you get all the advantages of hard real-time along with the huge toolkit included with Linux. This concept was first written about in "Introducing Real-Time Linux" by Michael Barabanov and Victor Yodaiken in Linux Journal, February 1997. Today, Victor is President of FSMLabs and is working to make RTLinux an "industrial strength" product.

The breadth of Linux in the market

Some doom-sayers tell us that Linux is too big, too slow or too complicated to be a good choice for embedded. While this might have been true in the past and still can be true for some applications, hardware evolution had negated many of these concerns. For example:

Where has Linux been used?

We don't have to just talk about theory. Linux has significant penetration in the embedded market. This list shows some of the vendors that are already using Linux in various market segments:

In the OEM arena we also see:

It is this breadth of use of Linux that assures that you are not heading for a dead end. In a recent interview with Jim Ready of MontaVista (Embedded Linux Journal, October 2000), Doc Searls asks him for which industry he sees embedded Linux to be the most significant. Jim responds "God bless Linux, it looks real good all over the place" and then goes on to explain how Linux has been the right choice for a whole range of products from infrastructure companies to appliance companies. He also points out that working with these diverse users has driven MontaVista's effort to make Linux better.

In this same article, Doc Searls also interviews Lineo's Bryan Sparks. While Bryan differentiates how Lineo is helping Linux move into embedded markets from those efforts of MontaVista, Lineo also has a diverse market. Both companies are contributing much or all of their development effort back into the Linux code base thus helping anyone who has elected to use Linux in an embedded application.

Why was Linux selected?

In order to better understand why Linux is being chosen for embedded systems let's look at why other companies have selected Linux.

Axis Communications
Axis manufactures a video camera (Axis 2100) that runs embedded Linux. The camera is powered by their own chip-the Etrax-100. Unlike what you might think of as a traditional camera with RS-170 output, the Axis 2100 includes a web server, an FTP daemon and typical Linux login security.

By using Linux in the camera, these three pieces of software come for free along with Linux's inherent networking ability. For the user, this means they only need to plug the camera in, connect an Ethernet cable, "arp" the camera and they are up. They can then point their web browser at the camera to access option menus and view the image. If the camera doesn't do what the user wants, they can compile code with the GPLed compiler and libraries from Axis and FTP it to the camera.

While Axis had to do some development (besides the processor chip itself, they developed a Journaling Flash File System), they got the benefit of all the Linux software already developed to build a superior product. They, in turn, then contributed their new software back to the Linux community.

Aplio
Aplio makes Voice over IP (VoIP) systems. The Aplio/Phone 2.0 runs Linux whereas their previous products used pSOS, a proprietary RTOS from Wind River Systems). Vadim Lebedev, chief software engineer for Aplio, in a recent conversation with the Linux Journal staff (VoIP and Embedded Linux, Linux Journal, September 2000), said "porting of the kernel itself [to the ARM7TDMI] was not especially difficult" and then explained the three reasons he chose Linux:

He went on to say "[now] we can say it is really much easier to develop Linux-based embedded software than, let's say, pSOS based software...I do believe that Linux has a pretty bright future in the embedded world—even if [Linux] was not initially meant to be used in this way."

LynuxWorks
LynuxWorks provides embedded applications to OEMs. Previously called Lynx Real-Time Systems, the company has undergone a name change along with its focus shifting from their own proprietary OS to Linux. In an interview with Linux Journal ("An Interview with Inder Singh", Linux Journal, September 2000), Dr. Singh explains the move from LynxOS to Linux.

LynxOS was the first non-UNIX OS to obtain POSIX certification and, while developed from scratch, was always rather UNIX-like. The non-kernel parts of LynxOS is based on open-source technology and was specifically for embedded applications.

When asked to address the pros and cons of the embedded use of Linux, Dr. Singh brought up the following points:

Conclusion

Linux has already made serious inroads into the embedded market and is expected to become the dominant OS in this area. Linux proved itself suitable for embedding into many sizes of projects from extremely small to extremely large. Linux has proven to perform well in soft real-time situations and hard real-time solutions are available if needed.

In addition to being the embedded OS, Linux offers itself as the ideal development platform. Cost, utility and reliability ensure that it is the right choice.


RTOS and embedded operating systems

Embedded operating systems and development tools

Corporate

Industry solutions

OS Support

OS Training

SynergyWorks: LynuxWorks partners

contact us
ISO9001:2000 Copyright © LynuxWorks™, Inc. All rights reserved. Reproduction in whole or in part in any form or medium without express written permission of LynuxWorks is prohibited. 21 years of embedded excellence