User: Password:
|
|
Subscribe / Log in / New account

The VMI virtualization interface

The VMI virtualization interface

Posted Mar 16, 2006 18:11 UTC (Thu) by iabervon (subscriber, #722)
Parent article: The VMI virtualization interface

Would it be possible to reorganize UML as a VMI ROM, such that it actually runs a regular kernel, catches the request for the ROM (which the regular kernel isn't expecting to provide), return the UML routines, and have it work essentially the same as the current design.

I suspect that it would be really helpful for debugging if you could run an unmodified kernel binary as a UML kernel.


(Log in to post comments)

The VMI virtualization interface

Posted Mar 16, 2006 23:53 UTC (Thu) by aliguori (subscriber, #30636) [Link]

Yup. You need kernel support because you'll want to run the kernel in ring 1 which is normally not accessible to userspace.

It may be more natural to use something like Qemu as a base though since it already supports all of the platform hardware emulation.

The VMI virtualization interface

Posted Mar 17, 2006 6:20 UTC (Fri) by xoddam (subscriber, #2322) [Link]

> It may be more natural to use something like Qemu as a base though > since it already supports all of the platform hardware emulation. If you're talking about running an unmodified Linux kernel inside a userspace emulator, surely Qemu can do that already -- no UML required? Would the VMI make it any easier to do so?

The VMI virtualization interface

Posted Mar 17, 2006 6:21 UTC (Fri) by xoddam (subscriber, #2322) [Link]

My comment did *not* look like that in preview ... strange.

Can UML use VMI?

Posted Mar 17, 2006 5:26 UTC (Fri) by xoddam (subscriber, #2322) [Link]

> Would it be possible to reorganize UML as a VMI ROM, such that it
> actually runs a regular kernel,

With a solid VMI interface you should be able to run a 'regular' kernel
(that uses VMI) in userspace with the right 'thunking' layer, yes.

> ... and have it work essentially the same as the current design.

It would have to be much simpler than the current design, because the
'regular kernel' would expect to manage its processes' VM which would
have to be done entirely in software (and incur a big performance
penalty). I believe the current UML implementation has a (seriously
complicated) mapping of the UML kernel's processes onto host kernel
processes, for VM performance reasons.

Xen and VMWare don't have this problem because unlike UML's host Linux
kernel, they are set up with the clients' VM in mind and are able to give
out portions of physical memory to be managed by each client through a
lightweight indirection of the low-level registers.

A more likely scenario is that UML continues to use a heavily modified
child kernel. Whether it uses a 'VMI ROM' underneath makes little
difference (just moves bits of the patch around).

The VMI virtualization interface

Posted Mar 24, 2006 5:41 UTC (Fri) by zamsden (guest, #36686) [Link]

Yes and no. It could be done - with lots of effort. UML requires running the kernel at CPL-3, which
is something not currently supported in the VMI interface. There are many other aspects, tied to
device emulation, that really are not appropriate in the UML world. And UML has more
complications due to the process address space model.

That said, I think UML serves a very different purpose than VMI, although they could probably be
merged to work together, I'm not sure it is useful to either. UML is a great way to do kernel
development that isn't tied directly into the arch layers, and trying to tie the native kernel into UML
might complicate the other architectures that it supports.


Copyright © 2017, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds