Originally Published: Monday, 19 February 2001 Author: Matt Michie
Published to: featured_articles/Featured Articles Page: 1/1 - [Std View]

Kernel 2.4 Ascends the Palmtop

Palm-tops and embedded devices are an ever expanding market; Linux has been ported to many of these. Linux already runs on a Palm Pilot, soon, it may be networking your toaster with your fridge to your cell phone!

Palm-tops and embedded devices are an ever expanding market. As with any hardware a geek might be interested in, Linux has been ported to many of these. Several Linux start-ups are primarily focused on this market, as well. Kernel 2.4 brings some new features to this class of device. Linux already has run on a Palm Pilot, soon, with this technology, it may be networking your toaster with your fridge to your cell phone!

Support for typical embedded and palm-top chips, and support for the flash memory devices and additional file-systems which make development simpler are all new with 2.4. The two primary file-systems making embedded devices happier are cramfs, and ramfs which both allow filesystems to be created within RAM. 2.4 also adds USB support and continues to use a wide range of IrDA (infrared data transmission) ports.

Most of these new changes exist within the Memory Technology Device (MTD) Subsystem. The MTD project homepage says, "we're working on a generic Linux subsystem for memory devices, especially Flash devices. The aim of the system is to make it simple to provide a driver for new hardware, by providing a generic interface between the hardware drivers and the upper layers of the system."

Using something like this with Linux is a tremendous advantage to embedded and palm-top developers, because it essentially creates a completely open API without having to license expensive software and development tools. Absolutely no royalties need ever be paid out.

Hardware manufacturers can modify and distribute Linux kernel source code under the GNU Public License (GPL), without having to deal with other companies that may have conflicting goals. They can also bundle the software with their hardware without having to charge extra fees, thereby keeping their prices more competitive, which is particularly important in this market.

Programmers also benefit because they can start writing their applications using tools they are already familiar with. They can immediately start coding using their existing configurations of Emacs, gcc, and make on their Linux desktop.

In fact, though not as publicly acknowledged, embedded Linux is probably more terrifying to traditional software companies like Microsoft than Linux on the desktop. Diverse hardware companies such as Motorola, Intel, AMD, IBM, Sony, Transmeta and others all have their fingers in embedded and palm-top Linux without paying a gate fee to Microsoft. Many current embedded devices such as cash registers, are currently using some form of DOS. Microsoft has created Windows CE (WINCE) to run on these new devices, but adoption has been slow and many developers and users feel CE is overkill.

Because Palmtops span the range from Sony's Picturebook running a Transmeta Crusoe chip, down to a Palm Pilot with a much more limited Motorola Dragonball CPU, there are actually several versions of the kernel which run on this class of devices.

Though a standard Linux kernel can be compiled with very few options, some embedded and palm top developers needed an even smaller memory foot print and support for CPUs without an on-board MMU (Memory Management Unit).

One of these modified kernels is uClinux. The development homepage for uClinux states, "uClinux is a derivative of Linux 2.0 kernel intended for microcontrollers without Memory Management Units (MMUs). In addition, most of the binaries and source code for the kernel have been rewritten to tighten-up and slim-down the code base. This all means that the uClinux kernel is much, much smaller than the original Linux 2.0 kernel, while retaining the main advantages of the linux operating system: stability, superior network capability, and excellent file system support."

The latest uClinux kernel is a derivative of 2.4 and was recently released. The other main kernel split that is often used with embedded and palm-top devices is Real Time Linux.

The goals of Real Time Linux, as stated on their homepage say, " RTLinux is a hard real-time operating system that handles time-critical tasks and runs Linux as its lowest priority execution thread. In RTLinux, a small hard-realtime kernel shares one or more processors with standard Linux. This allows the system to run accurately timed applications to perform data acquisition, systems control and robotics, while still serving as a standard Linux workstation."

You can imagine hard real time being useful for embedded software in a car, for instance. If a driver presses the brake pedal, the developer (and the driver) need to know that this signal will be dealt with in a certain amount of time. RTLinux allows applications like this which the standard kernel does not support.

With this every expanding market, we can all expect to see more features which better support palmtops and embedded devices make it into the Linux kernel. Consumers may not be aware that Linux is running on their devices, but they'll be impressed with the stability that Linux adds, and the developers will be impressed with the ease of development, a combination that doesn't happen often. Maybe we will see Linux popping up in a toaster near you!

Resources:

uCLinux
Lineo
Linux MTD
RTLinux

Matt Michie exists in the New Mexican desert. Please visit his web site at http://daimyo.org.