Linux is used by approximately 25.000.000 people around the world. It is run on many platforms, ranging from embedded devices PDA's to desktop and server Intel (x86, IA64), Alpha, PowerPC, IBM mainframes (S/360, S/390), Motorola, MIPS, Palm (Pilot), Amiga, PA-RISC, Strong Arm and many more. The Linux kernel is being developed and maintained by roughly 10.000 people around the world. Even the tools are developed by volunteers around the world. Some even get payed.
In order to run Linux on a small device at least the kernel is needed. Added to that are all the tools needed to do something useful with it. Linux begins to offer (soft-) realtime functionality from whithin the standard kernel. If combined with RTAI it can even meet some hard realtime features. Several other initiatives are proposed to incorporate hard-realtime functionality in the Linux operating system. The EL/IX specification is one of these initiatives and is proposed by a vast range of companies. To name a few: Alcatel, Arm Limited, 3Com, HP, IBM, Lineo, LinuxDevices, MetroLink, MetroWorks, Motorola Computer Group, PalmPalm Technology, QNX, RedHat, SuSe, Cygnus, WindRiver and many more (see http://www.embedded-linux.org/roster.php3). Another initiative is the Consumer Embedded Linux Forum (CELF) lead by Philips, Montavista and a few Azian firms.
Running Linux as a low cost server for Internet sites is also a widely used appliancation. For instance the Cobalt Cube. The hardware used for these web farms ranges from Intel to Sun Sparcs or even IBM mainframes S/390 or S360. All are capable of running Linux as their main operating system. The number one Internet server is Apache, an open source product. It even runs on Windows NT and also on other Unixes (Sun, Irix, OpenBSD).
Linux is based on open standards. Just like the Internet. If nobody stuck to the agreed way of communication, then there would be no communication at all. Linux in embedded devices is a rather new market, but not unexplored. Small and big businesses have been busy exploring the capabilities of Linux in an embedded environment. Look at yopi (Samsung), itsy (Compaq), webphone (Ericsson) or MP3 player.
The Linux kernel offers soft-realtime support as a standard option. Hard-realtime however is not really supported yet. The EL/IX initiative proposed to include the Posix 1.b (real-time) and Posix 1.c extensions in the standard Linux kernel. Interesting solutions for using Linux in a hard-realtime environment are provided by RT-Linux and RTAI-Linux. See resources section at the end of this document. The big advantage of using Linux in an embedded device is the rich availability of tools.
Reason to choose Linux as your embedded OS are:
- High quality GNU tooling
- Follows standards, amongst which: POSIX, IETF
- Decoupling of hardware and software
- High stability
- Broad range of availability (desktop, servers, embedded devices)
- Based on open standards (networking, graphics, threading, multi tasking)
- High performance compared to used hardware
- Supported by multiple vendors (IBM, HP, Novel, Compaq, SGI, QNX, LynxOS, WindRiver, RedHat, SuSe)
- Open Source nature (availability of source code)
- Easy to port to a new CPU
- No license model, so no license costs
- High innovative speed of development (follows technology curves)
- Certification RedHat Certified Engineer (RHCE), Linux Professional Institute (LPI)
- User friendly interface
- Good technical support commercial and non-commercial
- Linux can be trimmed down to below 8 MB Disk On Chip/Solid State Disk and support FTL
Of course the sun does not always shine. There are also disadvantages on running Linux as your core embedded OS:
- Legal responsibility (This is less an issue if embedded Linux and support is bought from a distribution vendor.)
- Low visibility while it is still widely used (embedded in some end-consumer products like MP3 players, DVD players, ADSL modems, WLAN AP, etc).
- Low conscience of businesses
- Low confidence of management
- No marketing department and marketing budget
- Bigger footprint then custom-made or propriety real-time kernels, but it will give you more flexibility
One of the widely used arguments for not using Linux in an embedded device is its footprint. Although chips become smaller, faster, more powerful, memory gets cheaper every six months (Moore's law). This has also impact on embedded devices, they get more powerfull, can support more memory, faster CPU with a low power consumption. A good example of innovation in the processor market is the Crusoe processor from Transmeta. The embedded market is changing, connectivity and remote maintenance is getting more important. Using standards will become a must to survive.
Another is the issue of legal responsibility. Who to sue when things go seriously wrong? The common believe is that you are out on your own if Linux is used as core OS for a product. It is certainly true that you need to pay attention to the licenses of the Open Source projects used in your new product. On the other hand commercial support is available for Linux through companies like Montavista, RedHat, SuSE, TimeSys and many more.
The market for Personal Digital Assistance, Voice over IP, Wireless LAN, BlueTooth, Settopboxes and Web devices is going to explode. New frequencies like UMTS have been auctioned. Every device will become network enabled. Look at the current mobile market it is a booming business. In such a market it is essential that your time to market will be less then that of the competition. Open Source Software can help here, because when a lot of people share basic technology like operating system, tools, compilers and knowledge, then companies can focus on their core business. This gives companies a greater edge than their competition. In any new market the early adopters make a lot of money. Of course early adopters also have the biggest risk.