RTOS, virtualization for real-time systems, DO-178B and hypervisor for the most demanding embedded operating system applications...

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.

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:

  • Linux as a cross-development platform
  • Linux as an embedded OS
  • Linux as a task under a real-time OS

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 is royalty-free.
  • Linux already includes driver software for a huge number of devices and, because current drivers are well documented and include source code, developing new drivers is easy.
  • The wealth of software tools included with Linux can substantially decrease development time.
  • Linux's ability to run on generic hardware decreases the costs associated with purchasing development systems.
  • Because Linux is being used extensively in universities, the pool of people who understand it—including its internals—is growing every day.

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:

  • Low-power yet high-speed processors such as the StrongARM® make substantial compute power available at very low power consumption.
  • Megabytes of RAM today cost less and consume less power than the kilobytes of RAM used in previous generation hardware.
  • Silicon disks offer large mass storage capacities in small, low-power packages.
  • To take full advantage of single-chip computers that include a large array of I/O ports you need an OS with multi-tasking capabilities and device drivers.

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:

  • Palmtop Computers: Compaq (http://www.compaq.com), Samsung (http://www.sem.samsung.co.kr/eng/product/digital/pda/)
  • Cameras: Axis (http://www.axis.com)
  • Set-top Boxes: TiVo (http://www.tivo.com), Nokia (http://www.nokia.com/multimedia)
  • Telephones: Ericsson (http://www.ericsson.com,) Nokia
  • Home Routers: Calibri (http://www.calibri.net) Allwell, Aplio (http://www.aplio.com), Adomo (http://www.adomo.com)
  • Business Routers: Celestial (http://www.celestial.com) Techline (http://www.techline.com,) Nettel (http://www.moretonbay.com/MBWEB/product/nettel/nettel.htm,) Aplio
  • Test Equipment: National Instruments (http://www.ni.com/linux/)
  • Gas Pumps and POS: Gasboy (http://www.gasboy.com/,) US Fleet (http://www.usfleet.com)
  • Factory Automation: Linux (http://www.oregonchain.com,) Lang GmbH & Co. (http://www.rtlinux.com/users_lang.html)
  • Scientific Equipment: Real Time Controls Labaratory (http://rtic-lab.sourceforge.net)
  • Airborne Imaging: JPL (http://www-misr.jpl.nasa.gov/mission/air.html)
  • Clustered Super Computers: NASA (http://www.beowulf.org), Scyld Computing (http://www.scyld.com)

In the OEM arena we also see:

  • Single Chip Linux Processors-ZFLinux
  • Single Board Computers-Advantech, Mitac, Versalogic
  • Custom Linux Boxes-Allwell, Calibri
  • Rackmount Servers-Cobalt Networks, Microway, Penguin, Telenet, VA Linux Systems, networkengines, Keylinux
  • Linux Multiprocessor Boxes-Penguin Computing, VA Linux Systems

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:

  • Availability of the source code and access to open-source software tools that made modifications and enhancements easier and more efficient.
  • The ability to "comfortably" develop and test the code on Linux workstations and then embed the code on the device by recompiling.
  • The high level of support available from the broader community of Linux developers.

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:

  • The current embedded OS arena is very fragmented with many proprietary OS solutions. Linux provided for the first time the potential of an open, multi-vendor platform with an exploding base of software and hardware support.
  • The Open Source community development model, with the Web playing a crucial role, has been key in both the quality and robustness of Linux, as well as in its popularity, and this will continue to be a major strength.
  • Its royalty-free nature makes Linux very attractive for high-volume, cost-sensitive applications.
  • The wide availability of source and a huge and growing web-based developer community facilitates quick availability of support for new semiconductor devices.
  • The growing population of Linux-literate programmers, consultants and service organizations is a big plus.

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.

A LynuxWorks embedded OS is featured in this embedded system application:
Who else uses a LynuxWorks embedded operating system?
Security white papers
DO-178B Provides Certification Safety net
Developers of commercial avionics software must demonstrate compliance with DO-178 guidelines. The FAA has issued additional guidance for so-called DO-178B Reusable Software Components (RSCs as defined in AC20-148), which allow for reuse of certifications. (COTS Journal, November 2009)
Designing Safety-critical Avionics Software Using open Standards
Safety-critical avionics systems have continually grown more complex and software-intensive. Regulatory authorities and avionics manufacturers have responded with guidance such as DO-178B and RSC to ensure that software performs safely, with controlled development cost. (Boards and Solutions, September 2009)
Two Different Realms: RTOS Support for Safety-critical vs. Security-critical Systems
Safety- and security-critical system functions are evolving simultaneously, with different yet similar requirements. Modern RTOSes are stepping up to meet these needs. (VME and Critical Systems, June 2009)
Virtualization Makes Better use of Open-source OSes and apps
With the introduction of the embedded hypervisor, embedded systems can avoid certain performance or licensing issues inherent to open-source OSes and applications. (EE Times, March 23, 2009)
Secure Virtualization Technology can Extend the life of Legacy Systems
By combining the concept of virtualization and security, one can consolidate multiple legacy systems running on heterogeneous operating systems onto a single host system with high-assurance security. (Military Embedded Systems, January/February 2009)
Separation Kernel for a Secure Real-time Operating System
The technical foundation adopted for the so-called MILS architecture is a separation kernel like LynxSecure, which permits multiple functions to be realised on a common set of physical resources without unwanted mutual interference. (Boards and Solutions Magazine, February 2008)
Advances in Virtualization aid Information Assurance
Advances in the newest Intel® processors are making virtualization much easier to implement in security applications than ever before. (Embedded Computing Design, January 2008)
Protecting our most Vital Systems
Some significant defence programmes are already committed to a new approach to high-threat, high-asset-value systems. Rance DeLong explains MILS. (Components in Electronics, April 2007)
Perspectives: Security and the Separation Kernel
Today's avionics systems are designed to support more than one application, using a partitioned operating system and memory management units to ensure applications have adequate separation. (Avionics Magazine, April 2007)
MILS: An Architecture for Security, Safety, and Real Time
The unrelenting growth and integration of embedded controls, information processing, and communications has created a need for systems that provide robust protection for resources and services in the face of serious threats. (Air Force Research Laboratory Technology Horizons, November 2006)
Partitioning Operating Systems Versus Process-based Operating Systems
Partitioning operating systems are the latest buzz, while processes, by contrast, have been around for over 30 years. Both provide memory protection, however, the intent behind them is very different.
DO-178B and the Common Criteria: Future Security Levels
Although there are similarities between the airborne safety-critical requirements in RTCA/DO-178B and the Common Criteria, ISO 14508, compliance with the higher levels of security in the Common Criteria demands meeting additional security requirements. (COTS Journal, April 2006)
Reusing Safety-Critical Software Components
Safety-critical systems often operate together as a single "system-of-systems," making it important that they meet the most stringent and rigorous requirements for safety-criticality. The failure of one module in a system could create other failures or vulnerabilities, or worse yet, failure of the system as a whole. (COTS Journal, August 2005)
Using the Microprocessor MMU for Software Protection in Real-Time Systems
With minimal impact to overall system performance, user tasks and the kernel can be protected from accidental corruption by using multiple protected address spaces.
Improving code Migration and Reuse
The unrelenting growth and integration of embedded controls, information processing, and communications has created a need for systems that provide robust protection for resources and services in the face of serious threats. (Embedded Computing Design, August 2006)
LynuxWorks: A case Study in Combat-ready Linux
As open source, especially Linux, makes its way into nearly every sector of the economy, one of the final frontiers is the military and aerospace market, where new applications must clear hurdles such as the FAA's rigorous DO-178B certification for aviation software. (Newsforge, December 2005)
FCS Program Rolls Forward in Formation
A wireless data network, with advanced communications and technologies, links soldiers with 18 new, lightweight manned and unmanned ground vehicles, unmanned aircraft, sensors and weapons—and it's all in one program. (COTS Journal, June 2005)
Embedded Tools Train an eye on Security
As embedded designers incorporate more security and safety needs into devices, embedded tools will have to evolve to provide capabilities needed both for product development and process management. (EE Times, September 2004)
Secure Operating Systems for Deeply Embedded Devices
As we add more intelligence to our embedded devices, we find that they are becoming increasingly integrated into our information technology infrastructure. Though system security is not a new concept, security-in-depth is a new paradigm developers are now starting to address. (RTC Magazine, September 2004)
LynxOS Embedded RTOS LynxOS-SE Embedded RTOS RTOS: LynxOS-178 for software certification Luminosity Eclipse-based IDE
Embedded Linux: BlueCat LynxSecure Separation Kernel and Embedded Hypervisor SpyKer Embedded-System Trace Tool

Industry Solutions

Migration

Industry Standards

Embedded Systems Technology

RTOS Training for Embedded Systems

Training at LynuxWorks

Embedded System Consulting

LynuxWorks Support

Embedded Systems

LynxOS RTOS Support

BlueCat Embedded Linux Support

Contact Us

About LynuxWorks

Press Room

Newsletter and Announcements

Careers

Site Map

Board Support Packages (BSPs)

BSP Device Drivers

BSP Targets by Operating System

BSP Targets by Form Factor

Third-party I/O Devices and Hardware

SynergyWorks: LynuxWorks partners


What is SynergyWorks?

Third-party add-ons for LynuxWorks operating systems

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.