Design Article

PRODUCT HOW-TO: The care and feeding of embedded Linux running on MIPS CPUs

Rick Leatherman, Bob Martin, and Yakov Levy, MIPS Technologies

7/2/2009 12:15 AM EDT

Today, Linux is broadly used for development of embedded appliances such as DTVs, set-top boxes, DVR players, xDSL/cable/PON modems, home routers and gateways. It is especially well-suited for digital home and home networking, with advanced networking capabilities, wide availability of device drivers and royalty free run-time costs.

Beyond embedded appliances, Linux also powers enterprise-class appliances like servers and routers. Linux is the #1 embedded operating system in China, Taiwan, South Korea, and the rest of Asia.

Linux is also gaining traction in mobile devices. At the 2009 Consumer Electronics Show (CES), we saw several Android-based netbooks. According to market research firm In-Stat, mobile Linux will grab significant market share in China. The firm says that by 2012, total shipments of mobile Linux-based smartphones in China will account for about 25.4% of total shipments of smartphones in China.

The prolific nature of Linux is due to the fact that compared to the typical proprietary commercial OS, Linux is open source, inexpensive, fast and secure. It also scales better and has a smaller footprint than other operating systems.

With Linux, engineers have access to and control over the source code, along with ongoing support from the open source community—a large community comprised of engineers familiar with Linux.

Continuing Growth and Proliferation of Linux
As Linux continues to gain market share, there are still challenges for certain embedded applications, including those with small footprints or high levels of real-time determinism or security.

Improvements in toolchains, new debug tools and features, and evolving standardization efforts will continue to increase the value of Linux for these and all embedded applications. Ongoing improvements to the Linux kernel are of the utmost importance.

The Linux kernel is the interface between the standard Linux API (Application Programming Interface) used by application software, and the underlying hardware structure of the processor system that the application software is running on.

The kernel is a complex combination of internal components and externally loadable modules that provides a complete and stable processing environment for the application programs to execute, and provides the ability to safely trap software bugs, and to some extent hardware failures.

During the boot cycle, the kernel must recognize, then properly initialize the core system processor(s), system memory, hard drives, video cards, USB ports, network cards and audio processors in a timely manner and provide adequate indication of success or failure during this boot cycle.

Maintaining such a complex collection of code is obviously a difficult challenge. The kernel source code is separated into a standard 'tree' structure such that subsystems can be better isolated from one another, allowing the effort to be distributed among several key kernel maintainers.

This division of labor minimizes the effect of major changes in one part of the kernel on other parts of the kernel. Changes to each subsequent subsystem get rolled up to the key maintainers and then eventually to the top maintainer of the Linux kernel. These collections of changes are known as 'patches' and are created and applied in a standard format.

Improvements to the kernel are made as vendors and developers give back their knowledge to the open source community. The open, decentralized nature of Linux, backed by strong developer communities, makes Linux-based operating systems a good choice for cultivating innovation.

Because vendors and developers continually share what they have learned, chances are that when a developer needs a component, it will already be available somewhere in the Linux community ecosystem, and can be adapted.

Much of the work on making Linux a more viable and appealing operating system for embedded applications comes from commercial Linux vendors.


Next:




Please sign in to post comment

Navigate to related information

Datasheets.com Parts Search

185 million searchable parts
(please enter a part number or hit search to begin)

Feedback Form