News Archive (1999-2012) | 2013-current at LinuxGizmos | Current Tech News Portal |    About   

Article: Running Linux on low cost, low power, MMU-less processors

Aug 8, 2000 — by LinuxDevices Staff — from the LinuxDevices Archive — 77 views

Not every embedded system needs high-end Pentium-PC compatibility. In fact, of the nearly 2 billion microprocessors fabricated each year, more than 80 percent go into embedded systems with highly specialized functions.

Embedded devices like web phones, programmable logic controllers, and remote digital cameras often utilize “MMU-less” processors to reduce both cost and power consumption. Although these devices are very compact, low power, highly constrained in terms of resources such as memory, and are often diskless, they can still run Linux.

This whitepaper briefly describes some of the technical issues associated with creating MMU-less embedded devices under uClinux.

What's an MMU?

Computer systems generally include a fixed amount of system “RAM” memory. This memory, which typically ranges from 16 to 256 megabytes, is manipulated by the hardware and operating system to allow the computer to perform run large programs (larger, than the size of memory), or to run multiple programs concurrently via a process called “multi-tasking.” The piece of hardware, which today is a small portion of the CPU chip, is called a Memory Management Unit (MMU).

The MMU implements a technique known as “virtual memory.” “Virtual,” because it creates an effective memory space that appears to be larger than the actual physical memory present within the system. “Memory,” because this space is treated exactly as if it were physical memory (e.g. RAM). Within this virtual space, each user space program (e.g. application) gets its own independent section, protecting both the OS and the user space programs from faulty or malicious user space software. The MMU is therefore an indispensable feature for desktop PCs or high-end embedded systems.

However, the power, memory, and cost overhead of the MMU often makes it a poor choice for deeply embedded applications. Fortunately a whole class of CPUs, referred to as MMU-less CPUs, is available.

Running Linux on MMU-less processors

Traditionally, Linux evolved around the PC platform and the “x86” (Intel CPU) architecture, and therefore has been optimized for full featured CPUs that include MMUs. However, since its initial release in 1998, uClinux has provided a very small memory footprint especially tailored for those processors which lack an MMU. Originally developed for the Motorola 68328 chip, uClinux now supports an expanding line of processors including: Motorola DragonBall (MC68328 and MC68EZ328), ColdFire 5206e, 5307, 5407, MC68EN302 and MC68EN360, ARM7TDMI, ETRAX, and Intel i960.

When developing for these processors, designers must pay careful attention to each task's memory allocation. Consequently, writing complex applications for MMU-less systems can be somewhat more challenging than developing for systems which include an MMU, but for simple applications like those generally found on a deeply embedded system, code development under uClinux is actually quite straightforward.

Also, programs executing on MMU-less processors are not as intrinsically unsafe as some would believe. One look at the wide array of devices running on low cost, low power processors provides evidence of the usability of uClinux (see examples in the references given below).

Overview of uClinux

uClinux has become a leader in ultimate Linux portability, because the kernel and most of the uClinux applications and services have been heavily optimized, resulting in a code base that is much smaller than the “original” Linux distribution. Despite this small code size, however, uClinux retains the main advantages of the Linux operating system: stability, superior network capability, excellent file system support, standard and widely supported APIs.

Some of uClinux' features include:

  • Common Linux API
  • uCkernel < 512 KB
  • uCkernel + tools < 900 KB
  • Full TCP/IP stack — uClinux is an internet-ready embedded OS
  • Support for numerous other networking protocols
  • Support for numerous files systems, including NFS, ext2, ROMfs and JFFS (Journaling FLASH File System), MS-DOS, and FAT16/32
Where can I get it?

uClinux is an open source project that can be freely distributed under the GNU General Public License (GPL). Continued development is currently funded, supported, and hosted by Lineo. Lineo also provides an official distribution CD of uClinux that includes support for the Motorola Dragonball and ColdFire, plus beta support for the ARM7TDMI and i960. This CD can be ordered from the uClinux order desk, or the source can be freely downloaded from www.uClinux.org .

Related stories:
My Linux is smaller than your Linux
uClinux DOES multi-task
uClinux — Linux on Microcontrollers
Programmable Logic Controllers gain embedded Linux
Bluetooth “hot spot” appliance contains tiny Linux server
Tiny SBC (30-pin SIMM form-factor) Runs Linux
New 1-chip solution for networked Linux appliance
OpenHardware releases MC68EZ328 SBC reference design
Euro startup unveils credit-card sized Linux system



About the author:

Michael Durrant is co-founder of Rt-Control Inc., a Toronto based embedded Linux hardware and software company. Michael is an Industrial Engineer with a background in Electronics and Computer Science. Since 1998, Mr. Durrant has been a vocal advocate for the commercial use of Linux in the embedded space. Together with Jeff Dionne, the founder of the Embedded Microcontroller Linux Project – uClinux, Michael has been responsible for the successful marketing of uClinux and uClinux-based hardware products.

Michael Durrant has been involved in the Linux movement since first installing a SLS floppy distribution of Linux using the 0.99.14 kernel. Mr. Durrant a licensed Amateur Radio hobbyist created a Linux based Amateur Radio Internet Gateway while studying at Ryerson This gateway allowed for the inter networking of Amateur radio operators world wide through the Internet. Michael has also conducted seminars on using the TCP/IP Protocol Suite and is actively involved in promoting the use of the AMPRnet a TCP/IP based packet radio network. Michael Durrant joined Lineo, Inc. in February 2000 and is Lineo's Director of Integration.

 
This article was originally published on LinuxDevices.com and has been donated to the open source community by QuinStreet Inc. Please visit LinuxToday.com for up-to-date news and articles about Linux and open source.



Comments are closed.