Hi All, How about having a generic Virtio-based machine for emulating a virtual desktop ?
I know folks have already thought about this and probably also tried something or other on this front but, it will be good to know the downsides. Virtio-desktop can be a separate specification describing a virtual desktop. Of-course we cannot avoid few architecture dependent virtual devices in but the Virtio-desktop specification will try to keep minimum possible architecture dependent devices. As per our thoughts, a Virtio-desktop will have two kinds of devices: 1. Architecture dependent devices: This devices will be emulated in-kernel by architecture specific code of KVM or Xen or Some other hypervisor. a) Virtualized CPU b) Virtualized PIC (i.e. in-kernel architecture specific emulation of irqchip) c) Virtualized Timer (i.e. in-kernel architecture specific emulation of timer chip) 2. Architecture independent devices: This are Virtio-based devices which are usually required by a desktop virtual machine. a) Virtio-blk (storage) - Already available b) Virtio-net (network) - Already available c) Virtio-fb (display) - It seems some work has been already done for Virtio frame buffer but I did not find drivers/fb/virtio-fb.c in latest kernel (http://thread.gmane.org/gmane.comp.emulators.kvm.devel/42720) - Is Virtio-fb work still in-progress ?? d) Virtio-input (keyboard/mouse/multi-touch) - Currently not available - It will provide keyboard input events - It will provide mouse input events - It will provide multi-touch input events e) Virtio-power (reset/shutdown/enumeration) - It can provides info about the entire virtual machine including CPU, PIC, Timer, available Virtio devices, etc. - It can also provide CPU and Virtio-device hot-plugging - Its primary purpose would be to provide reset and shutdown of CPU and Virtio devices. - There will be only one instance of this device and its location will be fixed for each architecture. The Virtio-desktop specification may also describe a recommended memory map of for each architecture. Right now, only missing devices seems to be Virtio-fb, Virtio-input, and Virtio-power, which some of us are willing to take-up. IMHO, If we have something like Virtio-desktop specification then all possible guest OSes can have support for it and different hypervisor can emulate it without worrying about guest support. Best Regards, Anup