Portable vkernel (emulator)

Dmitri Nikulin dnikulin at gmail.com
Thu Jul 10 06:22:29 PDT 2008


On Thu, Jul 10, 2008 at 10:18 PM, Michael Neumann <mneumann at ntecs.de> wrote:
> Hi,
>
> IMHO, Hammer is the killer-feature of DragonFly, too sad that I can't
> use it on another system until it gets ported. I'd of course love to run
> a native DragonFly on my laptop (I'm planning to do soon), but there is
> still some unsupported hardware etc.

It's not even finished yet, I don't think it's fair to hype it as a
killer feature. There's a lot of proving and testing left before it is
competitive with other modern filesystems. Right now it's still
competing with UFSv1, which is how many decades old? Let's not get
ahead of ourselves.

> So instead of porting Hammer to other systems, wouldn't it be easier to
> write a vkernel emulator that can run on *BSD and/or Linux (or even
> Windoze)? I mean, it's just a user process, isn't it? How much effort
> would it be to implement such an emulator for say FreeBSD? Is there any
> possibility to run everything as a user process (like qemu), so no
> extensions to the operating system must be done (kind of intercepting
> the syscalls of the vkernel)?

Last time this was discussed, it was revealed that the vkernel
implementation is so efficient specifically because it required
extensions to the host DragonFly. So yes, it's a pure userland process
in DragonFly, but it uses system calls that Linux doesn't have (and
may not even have an equivalent to, since user-mode-linux is
implemented very differently to vkernel). If I recall correctly these
were extensions to mailbox signals and page protection and stuff like
that. The closest you could do is add analogues of those system calls
and semantics to your host of choice.

Until then, you can use KVM on Linux which has very close to hardware
performance on modern CPUs. I use KVM to emulate FreeBSD on Linux and
"I can't believe it's not native". Linux these days makes a fantastic
virtual server, supporting every cross-platform virtualisation
technology, most of them very efficiently. You can install Ubuntu
Hardy in text mode, add on KVM and install DragonFly, all with 100%
free software provided in the official repositories.

In fact, just as we speak I'm using QEMU to install a big-endian
Debian for testing C code's endian correctness. We're spoiled these
days.

> Even if it might be super inefficient, it would be super cool to be able
> to run a vkernel, which runs hammer, which runs samba, which serves as
> fileserver for windoze ;-)
> (or FreeBSD -> vkernel -> hammer -> nfs -> FreeBSD :)

Yeah, you can do that with KVM. I'm not convinced that'd perform any
better, or be any more reliable, than using native FreeBSD 7 with ZFS.

-- 
Dmitri Nikulin

Centre for Synchrotron Science
Monash University
Victoria 3800, Australia





More information about the Users mailing list