[go: up one dir, main page]

|
|
Log in / Subscribe / Register

The native KVM tool

By Jonathan Corbet
April 12, 2011
The KVM subsystem provides native virtualization support in the Linux kernel. To that end, it provides a virtualized CPU and access to memory, but not a whole lot more; some other software component is needed to provide virtual versions of all the hardware (console, disk drives, network adapters, etc) that a kernel normally expects to find when it boots. With KVM, a version of the QEMU emulator is normally used to provide that hardware. While QEMU is stable and capable, it is not universally loved; a competitor has just come along that may not displace QEMU, but it may claim some of its limelight.

Just over one year ago, LWN covered an extended discussion about KVM, and, in particular, about the version of QEMU used by KVM. At that time, there were some suggestions that QEMU should be forked and brought into the kernel source tree; the idea was that faster and more responsive development would result. That fork never happened, and the idea seemed to fade away.

That idea is now back, in a rather different form, with Pekka Enberg's announcement of the "native KVM tool." In short, this tool provides a command (called kvm) which can substitute for QEMU - as long as nobody cares about most of the features provided by QEMU. The native tool is able to boot a kernel which can talk over a serial console. It lacks graphics support, networking, SMP support, and much more, but it can get to a login prompt when run inside a terminal emulator.

Why is such a tool interesting? There seem to be a few, not entirely compatible reasons. Replacing QEMU is a nice idea because, as Avi Kivity noted, "It's an ugly gooball". The kvm code - being new and with few features - is compact, clean, and easy to work with. Some developers have said that kvm makes debugging (especially for early-boot problems) easier, but others doubt that it can ever replace QEMU, with its extensive hardware emulation, in that role. There's also talk of moving kvm toward the paravirtualization model in the interest of getting top performance, but there is also resistance to doing anything which would make it unable to run native kernels.

Developers seem to like the idea of this project, and chances are that it will go somewhere even if it never threatens to push QEMU aside. There are a few complaints about the kvm name - QEMU already has a kvm command and the name is hard to search for anyway - but no alternative names seem to be in the running as of this writing. Regardless of its name, this project may be worth watching; it's clearly the sort of tool that people want to hack on.

Index entries for this article
KernelKVM
KernelQEMU
KernelVirtualization/KVM


to post comments

Name

Posted Apr 14, 2011 4:23 UTC (Thu) by ncm (guest, #165) [Link]

The obviously correct name for the utility is "nakedvm".

The native KVM tool

Posted Apr 14, 2011 5:50 UTC (Thu) by penberg (guest, #30234) [Link] (1 responses)

We support virtio networking now and are working on SMP.

what else do you need?

Posted Apr 15, 2011 10:32 UTC (Fri) by alex (subscriber, #1355) [Link]

Once you have virtdisk isn't that all you need for a server?

The native KVM tool

Posted Apr 14, 2011 14:23 UTC (Thu) by erwbgy (subscriber, #4104) [Link] (3 responses)

My favourite part is just a hobby, won't be big and professional like QEMU :-)

The native KVM tool

Posted Apr 14, 2011 14:53 UTC (Thu) by jeremiah (subscriber, #1221) [Link]

Them's fight'n words.

The native KVM tool

Posted Apr 15, 2011 21:18 UTC (Fri) by rilder (guest, #59804) [Link]

Nice observation. Currently I see this internal KVM as something which can be used to learn about linux virtualization specifically.

The native KVM tool

Posted Apr 17, 2011 2:24 UTC (Sun) by jzbiciak (guest, #5246) [Link]

We all know how well Linus's crystal ball worked at the time he said that about Linux. ;-)

The native KVM tool

Posted Apr 14, 2011 14:28 UTC (Thu) by marduk (subscriber, #3831) [Link] (5 responses)

+1 for changing the name.

The native KVM tool

Posted Apr 14, 2011 21:11 UTC (Thu) by paravoid (subscriber, #32869) [Link] (2 responses)

Yes, please call it "Linux Virtual Machine" aka LVM.

The native KVM tool

Posted Apr 14, 2011 23:11 UTC (Thu) by marduk (subscriber, #3831) [Link]

Yeah, because Googling "lvm can't mount root" won't be confusing at all</sarcasm>

The native KVM tool

Posted Apr 15, 2011 21:25 UTC (Fri) by jvrao (guest, #53941) [Link]

Cool idea.

How about KEM as its name(Kernel Emulator) ? :-)

Name Change

Posted Apr 16, 2011 1:27 UTC (Sat) by mlawren (guest, #10136) [Link] (1 responses)

I like verbs that make sense on the command line. How about just "boot":

$ boot vmlinuz

or "vboot" (for virtual boot):

$ vboot vmlinuz

or "kboot" (for KVM/Kernel boot):

$ kboot vmlinuz

Name Change

Posted Apr 19, 2011 3:30 UTC (Tue) by nevets (subscriber, #11875) [Link]

Hmm, boot is a type of shoe, so we could call it kshoe, or perhaps something that sounds like it, and call it cashew. Of course the native shell would be have to be csh ;)


Copyright © 2011, Eklektix, Inc.
This article may be redistributed under the terms of the Creative Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds