Monthly E-letter

Latest edition | Subscribe

Eliminating development drudgery with mobile phone virtualization

2Virtualization enables mobile device developers to ditch the hassles of application programming and focus on differentiating software and capabilities.

Enterprise CIOs tout virtualization as the killer app enabler for the data center. Corporate CTOs look to virtualization to loft cloud computing. Across IT, virtualization has become ubiquitous, reliable, and almost completely transparent. Data center managers depend on virtualization, while enterprise application developers enjoy its benefits in blissful ignorance of its presence in runtime platform-independent environments.

Mobile phone virtualization is climbing to similar heights of importance and transparency. Handset OEMs increasingly deploy virtualization platforms in mobile hardware and other intelligent devices. Mobile phone virtualization enables integrators, mobile network operators, and other ecosystem participants to run multiple guest Operating Systems (OSs), sustain legacy code, support trusted computing, and enable other use cases.

However, mobile device development practices dictate tight vertical integration in contrast to the loose horizontal approaches employed in the enterprise market. Today, mobile device specifications match those of blades and white box computers, boasting open, rich OSs capable of running and managing freestanding shrink-wrap applications, just like real computers. Despite similarities between mobile phone and enterprise platforms, hardware-centric, bit-banging sensibilities continue to dominate embedded development.

In addition to reliability and performance, requirements for mobile platforms include:

·      The need for a seamless, consumer-grade experience versus normal IT rollout hiccups

·      Limited memory, storage, and CPU horsepower in fixed-function systems versus easy upgrades to blades, servers, and desktops

·      Challenges to reflashing fielded hardware versus periodic updates/upgrades by IT staff

·      Self-management by end users versus access to IT teams and call centers

·      Real-time response and other real-world, mission-critical performance requirements

These pesky concerns prevent mobile/embedded developers from enjoying much of the freedom and flexibility of their enterprise counterparts. Even as they deploy mobile Linux, Windows Mobile, and Android with its enterprise J2SE Dalvik runtime, developers are denied the tools and practices of the enterprise versions of those platforms.

Freedom to add value

Mobile phone virtualization provides a unique opportunity for developers to ditch their unfortunate dual roles as systems and applications programmers and instead concentrate on adding value with differentiating software and capabilities. Mobile phone virtualization frees developers from the drudgery of legacy migration, cross-platform device support, and integrating unreliable and untrusted code.

Legacy migration

Porting and supporting old and moldy Real-Time OS (RTOS) code on new platforms is hard to perform in-house and expensive and tricky to outsource. Discovering and mapping legacy APIs onto equivalents in a new platform is a game of whack-a-mole, but without the carnival prizes. Dead-end APIs and differences in interface semantics and system behaviors make the process even more exciting.

Mobile phone virtualization turns the endless migration chore into a modular integration task. Developers and integrators can preserve legacy code intact, in situ on its legacy RTOS inside a Virtual Machine (VM).

Cross-platform device support

The only thing developers hate more than writing device drivers is writing the same driver over and over again for different OSs. These variations on a scream, uh, theme, test developers’ knowledge of OS API minutiae and try their managers’ patience with schedule slips and quality issues.

Mobile phone virtualization can enable a true write once run anywhere experience for cross-platform device support by letting applications in one guest OS leverage tested and working drivers resident in another VM. With the OKL4 microvisor (see block diagram in Figure 1), the VM can host an entire legacy stack, including OS and drivers, or simply a bare metal driver running on OKL4 itself.

Figure1
Figure 1: The OKL4 microvisor
(click graphic to zoom by 1.9x)

Integrating unreliable and untrusted code

Developers and software engineering managers confront the buy versus build conundrum on every project. Widely available open source software hasn’t made the decision any easier; it just adds more choices and variables to the mix. Turning to independent software vendors, open source projects, and other third parties for off-the-shelf software presents developers with three unavoidable risks: cost/effort to integrate code; software maturity, reliability, and fault resilience; and code susceptibility to exploits and security threats, by itself or in tandem with other system components.

Mobile phone virtualization helps developers meet this triple threat and keep projects on schedule. It eases integration of third-party code as well as legacy code. It enhances both system reliability and trustworthiness by isolating questionable code within separate VMs run by a smaller, more manageable trusted computing base. When and if third-party code misbehaves, its impact is limited to the VM containing it. Watchdogs can restart guest environments, and trusted code can shut down or throttle offending VMs in the face of runaway execution or denial-of-service attacks.

Balancing transparency and control

Mobile phone virtualization will probably never be as transparent as it is in enterprise IT. Frankly, it shouldn’t be. For reasons stated in this article, mobile phone development will always demand greater control, in-house and through channel. But virtualization does let developers get back to their primary job – making mobile devices more practical, user-friendly, and successful in the global marketplace.

Steve Subar is president and CEO of Open Kernel Labs, based in Chicago, Illinois. He is also a cofounder of Click-and-Done, an e-business infrastructure and consumer client software vendor, and Relavis Corporation, a publisher of relational database tools used to accelerate application design, development, and implementation. Prior to Open Kernel Labs, Steve was a managing partner at z2m4, a senior executive at Mobius Management Systems, and a member of the management team at Computer Associates. Steve received his BS from Miami University’s School of Business with a concentration in Computer and Information Technology.

Open Kernel Labs
312-924-1445
steve@ok-labs.com
www.ok-labs.com

Silicon, software, and strategies for embedded devices
Embedded Computing Design magazine is the resource for engineers, architects, and decision makers involved with embedded devices. Topics explored span silicon, software, and strategies for designing and connecting with small devices in mobile, automotive, home, industrial, and medical applications. Departments include Deep Green discussing the latest in energy efficient, low power designs and applications. Content is available in print, E-letter, E-cast, white papers, video, RSS, social networks, and more. Subscriptions are free of charge.
©MMXEmbedded Computing Design.
An OpenSystems Media publication.