Driver Development

Device drivers or software straightjackets?

Face it - engineers call device interface software "drivers" because they drive them crazy. Development and maintenance of device drivers test the patience, resources, and capabilities of mobile OEMs and their mobile ecosystem partners. Silicon vendors, OS suppliers, ISVs, integrators, and operators all suffer delays and bear increasing costs induced by the need to create, integrate and support complex silicon interfaces in software.

As much as mobile ecosystem members dread device drivers, they are locked into the particulars of interface architecture for their chosen OSes and silicon. Laboring against legacy, mobile software engineers have struggled valiantly but in vain to free themselves from these software straightjackets.

Mobile virtualization - three keys to freeing yourself from driver restraints

Using the capabilities of the OKL4 Microvisor in a mobile device is like having Harry Houdini in your design toolbox. By abstracting and containing individual device drivers and/or entire OSes in user-level partitions - virtual machines (VMs) - embedded virtualization offers not one but three keys to overcome device driver lock-in for mobile designs:

  • Supporting shared drivers from rich OSes, allowing existing drivers to be used whenever possible.
  • Enabling driver reuse across multiple OSes, reducing required engineering investments.
  • Native OKL4 device drivers, which offer security, reliability, and reusability benefits.
Driver Development

Driver Development

When it comes to device driver support, not all OSes are created equal

OSes with wide and deep deployment, such as Linux, support thousands of devices and configurations. Many special-purpose embedded OSes and legacy RTOSes boast only a handful. With OKL4, driver-starved OSes and their accompanying applications can run in one VM while a second VM runs a Linux kernel with the needed device drivers. The OKL4 Microvisor enables rapid development and cross-connection of virtual drivers for the first OS to the physical device drivers on Linux, using OKL4-provided communication mechanisms (IPCs). This configuration eliminates the need to develop and maintain drivers specifically for obscure or specialty OSes. OKL4 provides the infrastructure to make driver sharing across guest OSes possible and the performance to make it practical.

With OKL4, instead of creating and supporting separate drivers for Windows Mobile, Symbian, Android, Linux and other OSes, developers need only manage a single set of physical device drivers (e.g., for Linux) and virtual drivers to support the other OSes.

Lean and mean with OKL4 native drivers

For tight BOM and other design constraints, resources might not be available to dedicate to hosting an additional OS kernel just for device driver support. To accommodate more minimalist designs, developers can build native drivers for the microkernel at the core of the OKL4 Microvisor and share them with any or all guest OSes running in hosted VMs via virtual device drivers. This abstraction outside of any guest OS enables the broadest reuse, decreasing development time and portability.

▲ Back to Top