Jared McNeill has been bored again, and while banging NetBSD's
power management system into shape, he has started to work on a
usermode implementation of NetBSD.
I.e. take the NetBSD kernel code, compile it into a "normal"
ELF (userland) executable, and replace the parts that would
normally access the hardware (to print characters on the serial
port, ...) with calls to libc. Which it can do, as it's "just"
a normal program.
The work's a very first cut, see
for more information.
While there, and if you're interested in this topic, also see
's EuroBSDCon 2004 presentation
entitled "Cross-compiling packages", which actually isn't so much
about building packages at all, but really about running an emulator
that can run foreign CPU core, and also heavily optimize it by detecting
system calls and running them on the native kernel, plus even detecting
some exec(2) calls, and running a native version of the called binary.
Jared also tells me that his work on NetBSD/usermode is closely
related to Antti Kantee's
Runnable Userspace Meta Programs (RUMPs)
project, and I guess we'll see some more collaboration in that area
[Tags: rump, usermode]