Advertisement

Operating systems for mobile devices

Consumers may look at the extras, but developers should focus on the platform

BY GLENN E. SEILER
Wind River Systems
Alameda, CA
http://www.windriver.com

Mobile devices are the hottest electronics items on the market today. From handheld gadgets to business productivity tools, these products have found favor with consumers hungry for new functions and features that allow them to talk, e-mail, take photos and videos, and pinpoint their geographic location.

As design engineers plan new devices, one of the key starting decisions can seem routine: which operating system to select. The choice of an operating system affects not only design considerations but also the likelihood of third-party application creation, and can impact the product’s overall cost—in terms of software investment and also the ability to shop around for the best-priced offerings from processor and other silicon vendors.

The extended family of mobile devices has grown, in just a few years, from products performing a single function into ones showcasing many functions. New methods of connecting to the Internet and other devices are fueling increased use of video and GPS features, which is also driving a migration from numerous proprietary systems to a more limited number of major operating systems.

Requirements for all of these devices are low cost, low power usage, and ease of use. As power management capabilities continue to improve, using a new chip will often deliver more features and reduce power consumption. Ease of use necessitates a rich graphical interface, and the devices must be reliable, with stable software and service availability. They must also offer a wide range of connectivity features.

The applications designed for these devices also have common needs. Applications must support the primary device functions and must also have easy convergence to other functions. Third-party developers require a flexible ecosystem for developing technology and exchanging ideas and information.

Linux vs. Microsoft

Linux and Microsoft are two primary players, along with a number of other less well known packages, for mobile consumer device operating systems. With its iPhone and iPod, Apple is a major player in this market, but doesn’t allow third parties the use of their core IP technology.

Linux, with its open source basis and community of users, provides a rich array of application sources and mobile device manufacturers can decide whether they want to start with “roll-your-own” Linux or turn to commercial packages sold by vendors such as Wind River and MontaVista Software. “Roll-your-own” Linux can appear to be the most economical option, but it requires so much technology to be integrated and tested that it isn’t always the fastest/easiest option.

Since the Linux kernel doesn’t contain all the packages that an OEM may need, and may contain support for services that aren’t needed, developers must take the time to add and strip out specific packages. That means investing in a lot of fine tuning before software can be embedded into a device. This is one of the reasons why industry organizations such as the Open Handset Alliance (OHA) are working toward a standard, Linux-based mobile device software platform, and the LiMo Foundation is focusing efforts specifically on mobile handsets.

As telephony, messaging, music, video, photos, games, video, personal navigation functions come together onto a single screen, the individual components are frequently developed independently, by different companies. The Linux platform allows these disparate engineering teams to design their components in an environment that supports different approaches to handling multimedia elements— keeping in mind that they need to peacefully coexist on the device.

Linux gives the ability to scale and customize specific products and the ability to tailor products to different silicon vendors. By leveraging the broader Linux community, companies can pick and choose what they want to outsource and what they want to define as their own core competency, and develop on their own.

The advantage of Microsoft’s Windows Mobile platform is its simplicity. Based on proprietary software but supporting many industry standards, Microsoft’s package provides a pre-integrated feature-rich platform. It also offers protection and control of intellectual property rights, which is important to many device manufacturers.

Microsoft’s comprehensive solution, not surprisingly, is designed to work well with Office applications, making it a popular choice for mobile business products that want the ability to schedule appointments, e-mail, organize contacts and read and edit files from Word and Excel.

But it’s not all about work: Microsoft’s platform also offers excellent support for audio and video multimedia features. It offers seamless connectivity to PCs, with icons and interfaces familiar to most computer users. Partnering with Microsoft also opens the door for marketing as well as technical collaborations.

For developers, the choice of operating system ultimately comes down to the relative importance of complete compatibility with, and dependence on, a Microsoft environment or the independence and more flexibility provided by Linux and Open Source. Linux requires more development time and testing to interact with Microsoft Office products.

Since Linux offers more flexibility and is less of an out-of-the-box solution, more decisions must be made throughout the development process. This is particularly true for engineers who starting from the ground up with roll-your-own Linux.

However, with a Microsoft platform, companies sacrifice a lot of flexibility for customization and differentiation. Microsoft’s platform also involves higher licensing costs.

Commercial Linux solutions

For those who do choose a Linux operating system, using a commercial package can streamline development and save time. An ideal solution provides not only the baseline Linux operating system or kernel, but a rich set of graphics and connectivity, development tools and a source and build environment that facilitates the easy integration of disparate components.

Using a commercial distribution allows developers to focus on their specific product differentiation. Linux vendors may also offer integration services to help with convergence issues, and expertise in enabling connectivity and power management.

Fig. 1. The Wind River real-time Linux stack provides the features needed for commercial applications.

Commercial options are particularly helpful when it comes to handling complicated build situations. Traditional Linux build systems and tools are designed for single homogenous projects with few developers, often from a desktop environment for a single project.

Mobile devices are often more complex projects with multiple development teams and often integrate software from many different companies. Most embedded Linux distributions provide a set of packages and scripted instructions on how to rebuild the run-time.

Any packages or patches that need to be added (including external middleware) are then done through modifications to the installed directory. This results in the challenging problem of version control, compatibility and dependency checking across many teams often in different companies or divisions.

A layered approach

One commercially available approach includes a unique cross-build system that allows developers to organize, store, and manage different software components of the solution in a native source form. This solution, called “layers,” allows asynchronous component development across large, independent teams by allowing packages from multiple sources to be integrated at build time, without resynchronization and/or manual integration work.

The layers system provides a method for component version control and transparent traceability of source-code origins. These features help to reduce or eliminate the need to fork development trees, and aids in quick diagnosis of potential bugs that may be introduced when adding layered components.

Layers make it easy to locate and review all the changes that have been made, back out of undesirable changes, and neatly share changes. For example, adding packages, removing other packages, and adding and removing different kernel features can be done with a single layer.

The layer can then be distributed to a group of developers. Other developers can then easily include (or exclude) the layer with a single configure command switch. By leveraging layers, device developers have different directories available to store different parts of the platform development system, which helps simplify device development. This approach is the basis for the Common Integration Environment (CIE) that was selected by the LiMo Foundation, a leading open-source handset consortium, and is designed to nurture a thriving ecosystem of third-party software developers for mobile devices. ■

For more on operating systems for mobile devices, visit http://electronicproducts-com-develop.go-vip.net/software.asp

Advertisement



Learn more about Wind River

Leave a Reply