From the K42 site:

The K42 group is developing a new high performance, open source, general-purpose operating system kernel for cache-coherent multiprocessors. We are targeting next generation servers ranging from small-scale multiprocessors that we expect will become ubiquitous, to very large-scale non-symmetric multiprocessors that are becoming increasingly important in both commercial and technical environments.

More here.

device-driven I/O

Presented at the 2006 linux.conf.au, these slides (PDF, 887kB) show some of the past work I've been doing in conjunction with the IBM Research team.

dynamic module loading

The moduleloader isn't in CVS yet, you'll need to apply moduleloader.patch.

There's an Object.C file in the usr/moduleloader/ directory - this is a tiny sample module, and can be loaded into the k42 kernel:

cd /kbin
./ModuleLoader Object.so

you need to cd to /kbin before running the module loader - it needs boot_image.map to be in the current directory


A couple of things that need work:

  • Provide a proper kernel build environment for module compilation
  • Find a better way of doing symbol table lookups, especially for PPC64_REL_JMP_SLOT relocations (which dereference parts of memory)
  • Put the initModule() function into a more suitable place


Andrew Baumann has been driving the research on dynamic update, and has presented the folowing papers: