Open Kernel Labs Blog

October 25, 2008

What does it mean that OKL4 is for embedded systems?

I was asked this question only last week, but it's a recurring one. There are actually several aspects to this question, and consequently several answers.

For one, it means that OKL4 is designed to match the requirements of embedded systems, particularly virtualization for embedded systems, as explained in my papers at IIES'08 and CCNC'09. As explained there, use cases for virtualization differ significantly between embedded and enterprise systems, and OKL4 as a hypervisor supports embedded devices, particularly consumer electronics.

However, OKL4 is much more than a virtual-machine monitor. It is a general-purpose microkernel-based operating-systems platform that supports a large variety of system designs, system virtual machines being but one of them. It can serve as an operating system supporting baseband stacks (as in Qualcomm's MSM chips), it can provide a very small protected environment for low-end devices, a lightweight Posix environment co-existing with virtual machines, and many more.

So, besides virtual machines, when we say that OKL4 is for embedded systems, this means primarily two things:

  • The OKL4-based products (in contrast to the underlying OKL4 microkernel technology) are aimed at particular embedded-systems verticals and their requirements. This includes features like the OKL4 SoC SDK, which provides support for specific embedded-systems uses. It includes the way systems are configured and started up, which makes sense for embedded systems, but wouldn't for desktops and servers.
  • The implementation makes trade-offs which are motivated by embedded-systems use cases. For example, SMT/multicore/SMP support assumes a small to moderate number of processors (or hardware execution contexts), kernel data structures emphasise small memory footprint etc.

This does not at all mean that OKL4 is not suitable for non-embedded use. A few data points on this:

  • An earlier version was used for the Darbat (Darwin on L4) project at NICTA. This ran a complete para-virtualized Darwin "kernel" in 64-bit mode with multiprocessor support on Apple Macintosh hardware.
  • Recently a student ported OKL4 to Sun's Niagara platform, supporting deveral dozen processors / hardware threads. Given that OKL4 did not previously have any support for SPARC, this project, done by a single student in about 3 months, indicates not only the excellent portability of OKL4, but also that it is perfectly capable of dealing with supercomputer hardware, charactersised by large number of processors and large RAM sizes.

In summary, OKL4 is primarily aimed at embedded use, but that doesn't rule out other uses.

Posted by Gernot Heiser on October 25 at 12:54 AM

blog comments powered by Disqus
Gernot Heiser's avatar

About Gernot Heiser:

Gernot Heiser, Co-founder and Consulting Scientist, never thought he would be in the business world. Prior to NICTA's creation in 2003, Dr Heiser was a full-time faculty member at the University of New South Wales. However, this die-hard academic couldn’t pass up the opportunity to see the commercialization of this research. Gernot still loves teaching, almost as much as he loves good wine and good food. And anyone will tell you that Gernot knows his wine.

Email Gernot Heiser

Ask GernotPermalink

▲ Back to Top