In Part I we introduced the concept of the Taxonomy and defined what is meant by an ‘Embedded Linux System’. Part II continues this definition and begins the tour of the Taxonomy.
The distinctions mentioned in Part I lead to the two primary characteristics of embedded Linux distributions - they can help with conserving resources, and they can help with performance. For performance we usually mean that they have special facilities for ensuring realtime performance. This can mean the use of an adjunct realtime OS. Examples of these are RTLinux and RTAI. Another way to aid realtime, albeit 'soft' realtime, is to change the Linux scheduler. If you do not need either resource conservation or improved performance than you can use a desktop or server distribution if it supports your target.
In addition, embedded Linux distributions provide a kernel and application code for processors or boards that are characteristic of embedded systems and not just for desktop or server systems. Embedded Linux distributions may also provide special tools for aiding the embedded Linux developer in reducing the size of their target configuration.
Organisations that are building a version of Linux for embedded systems may need to do quite a bit of kernel work. To get an idea of what a developer may be in for, consider the case of TiVo Systems, who build a set-top box that runs Linux. They used kernel release 2.1.24, added updated drivers, and in addition they added 29 files and modified 31 others. Their new code amounts to about 11 500 lines. They added a couple of system calls, modified several places in the kernel that checked for super-user permission to let any user access the resource (it's an embedded system, after all), added extra kernel diagnostics, added some test code and created a new kind of file system.
Embedded Linux distributions often also involve numerous modifications. As an example, Blue Cat Linux from LynuxWorks involves patches of 193 files of kernel release 2.2.12. Note that Blue Cat Linux derives from Red Hat Linux, a distribution targeted for desktop and server applications. The kernel package that comes with Blue Cat Linux says "...the core of your Red Hat Linux Operating System...''.
One usually cannot use a newer version of a kernel with a vendor's patches. For example, if you blindly try to apply the Blue Cat patches to kernel release 2.2.14, then you will find that 15 files fail to patch. If you are really adventurous and you try their patches on kernel release 2.4.0.test7, you will find that 59 files fail to patch. This represents only failures from the patch command. Just because the patch command succeeded on the other files does not mean that they will work as required. This means that a developer that wants to take advantage of features available in a new kernel may be in a for a significant development effort.
The situation, however, is not as dire as what is faced by the typical Independent Software Vendor (ISV). When an ISV produces a version of their software they are usually dependent on the version of the operating system that their customers and suppliers are using. For embedded system developers however, they have control over the operating system that their customers will be running since they provide it with their application.
Other features of embedded Linux distributions
In addition to the kernel modifications, embedded Linux distributions may provide special tools to help reduce resource usage, custom kernel versions for particular targets, smaller versions of standard software or proprietary software (eg a licensed binary driver). The Linux kernel was optimised for desktop and server throughput. The standard kernel was not optimised for realtime response or for use on relatively resource-starved devices. This means that it is likely that an embedded Linux system will use a modified kernel. The characteristics of special distributions are diagrammed in Figure 3.
An overview of the Taxonomy
Let us begin the tour of the Taxonomy, providing examples for many of the categories. We move over the figures from left to right, top to bottom. The examples chosen do not imply any kind of recommendation; they just serve to help clarify the definition of the category. We add comments about categories to properly define them.
The Information category (see Figure 4) is for informational or reference products. We define the products to be conferences, web sites or publications. Examples of each of the categories include: The Embedded Linux Exposition and Conference, www.linuxdevices.com and Linux Journal, respectively. We associate e-mail lists with websites as part of their information offering.
Dataweek will continue Part III of this series in a subsequent issue, and will describe more categories.
Article supplied by Electronic Products Design. For further information about embedded development contact Jaap Willemse, Electronic Products Design, (012) 665 9700. This article was originally published in Embedded Linux Journal, Winter 2000, ( embedded.linuxjournal.cm) published by SSC, ( www.ssc.com) and reprinted with permission.
|Tel:||+27 12 493 0852|
|Articles:||More information and articles about Electronic Products Design|
© Technews Publishing (Pty) Ltd | All Rights Reserved