Monday, January 12, 2009

How MIDs Are Complicating Mobile Linux Development


Mobile Internet devices are gaining in popularity, and manufacturers have increasingly chosen Linux as the operating system best suited for the device type. As the market segment begins to differentiate, developers should look to solutions that allow for more flexible development, writes Jason Whitmire of Wind River.


The mobile Internet device (MID) is the most exciting new device category to hit the market since the smartphone. A MID is a handheld device that delivers high-speed wireless Internet and multimedia services, typically with a 4- to 7-inch screen form factor. Most MIDs will be based on the Linux operating system (OS) and at less than half the cost of an average laptop, MIDs are an appealing new alternative.

Like the smartphone, there will not be a prototypical MID. Many analysts predict that this type of device will require vigorous segmentation and differentiation in order to achieve broad market support, which will drive unique vertical platform instantiations based on the needs of the target market that the device supports. A MID manufacturer will aim some device models at gamers with accelerated 3-D graphics and multimedia support, while building other MIDs with Web camera, instant message and telephony support to address the specific needs of social networkers. Business users will require enterprise application integration and voice control while buyers looking for an inexpensive all-in-one device will want as many features crammed into the small MID footprint as possible.

Due to this differentiation, MID manufacturers will face the challenge of managing the software stack for multiple MID products while simultaneously keeping development and support costs down. There will be many common components between platforms forming a core software product, but the unique features of the targeted vertical platforms will require different supporting packages in each vertical MID's software stack. As an embedded device, MIDs will universally require a small OS footprint with optimized performance for features including "instant on/off" and power management, while supporting packages for the business user may be substantially different than those for the gamer.

Embedded Device Needs

Unlike desktop and laptop Linux distributions, which typically have the luxury of ample storage, processing, and memory resources, MID developers will need to customize the Linux kernel to their specific devices. Linux for embedded systems requires developers to build an optimized run-time image by utilizing the appropriate toolchain and a build system to package the run-time components.

To do this, MID developers will need a more complex build environment than with a laptop that allows for asynchronous development, software separation and accelerated integration.

Kernel Configurations

To maintain optimal productivity with a core MID product and unique vertical platforms, the developer will need to isolate kernel configuration changes based on the specific vertical product. In addition, the developer will want to minimize the need to fork development trees and maintain a simplified product structure.

This will provide the added benefit of speeding up diagnoses of potential bugs that may be introduced when adding unique components for each vertical product.

Distributed Teams

Many device development teams work in disparate geographies to increase productivity or to take advantage of lower-cost locations. In addition, co-located teams often work independently on different parts of the stack to speed time to market.

It is essential for the build environment to support this asynchronous development process for MID manufacturers to keep costs down and to help get their products to market as quickly as possible.

Maintaining the Software

In addition to open source packages, MIDs will likely offer features based on commercial code, and a sophisticated build environment will help developers manage packages from both the proprietary and community sources. This is essential because as proprietary code and open source packages are updated, these updates must be applied not only to a single product instantiation, but to the entire product line.

The build environment that maintains a core product and places the differentiating components in separately identifiable structures can facilitate the upgrade process and help keep maintenance costs down, resulting in faster rebuilds to various vertical platforms when the core platform is updated. Similarly, during the development process, the ideal build system would allow the quality assurance team to apply coding defect fixes into a separate structure for the integration team to later incorporate with fix issues found in other parts of the core product or differentiated components.

Open Source Complications

With the incorporation of both commercial and community code, protecting the commercial intellectual propertyis extremely important. Ideally, a build system would help isolate commercial code from open source code while also maintaining the origin of all code. With this transparency, the code origin is traceable, which helps with indemnification.

In the future, MID manufacturers will offer unique vertical products differentiated by targeted feature lists. This product approach will challenge software developers to maintain a core product containing common code while also offering support for unique product features. A robust build system supporting asynchronous development and software separation while easing package integration will help MID manufacturers lay the foundation for cost-effective product development, rapid innovation and easier market segmentation.

No comments:

Post a Comment