https://docs.google.com/document/d/1SaJ ... 7-rzE/edit
When kvm/qemu is started to serve vnc, there's even no need to have X available/running on the host system. And if you're running a framebuffer cli system as the client, then no X is required there either. Despite which - you can still have a full X/gui type desktop !!!
Yep! You can run a full fatdog gui desktop despite neither your laptop (client running cli framebuffer) and server (desktop server system) having X loaded. And at near native cpu speeds assuming kvm is available/enabled/used.
qemu even supports copy on write (and snapshots), so conceptually the actual choice of gui desktop system that was being used could use that instead of having to build in aufs for save/not save type filesystem layering.
I've been tunnelling raw vnc from the (desktop) server to my (laptop) client through ssh - so its encrypted, and I've also turned on ssh compression - and the speeds are very good/network load relatively light. When both the laptop and server are on the same LAN its near-as good as running natively - at least for most things. But yes video's do start to show some lag, especially if full screened.
Framebuffer thread/post
viewtopic.php?f=60&p=8655#p8655
Building a small kernel/initrd with just framebuffer, ssh and vnc
viewtopic.php?p=6629#p6629
I'm using such a small system on my laptop (client). 5.2MB vmlinuz filesize, with initrd built in (kernel was built with xz kernel compression chosen). Boots, wifi net connects, sets up the ssh tunnel (ssh -t -f -N -L 5901:localhost:5901 192.168.1.4 ... where that 192.168.1.4 IP is my desktop systems LAN IP) - in readiness to run vnc (framebuffer vnc in my case (fnvnc)).
For the server, I'm using Fatdog (of course), booted with pfix=nox ... so just cli With qemu installed and kvm enabled (I had to set 'Secure Virtual...' in my bios for kvm to be available)
Once the server has booted to cli, I run a command something like (UK specific i.e. uses -k en-gb keyboard layout switch) ...
Code: Select all
qemu-system-x86_64 -vnc :1 -usbdevice tablet -cpu host -monitor pty -k en-gb -smp 4 -boot d -vga std -enable-kvm -m 2048 vHDD.img
Once that is started on the server, even though the server has no X running/available, the kernel (kvm) and qemu (emulation) serve up the OS as built/stored into the virtual HDD (vHDD.img) - which again in my case I installed Fatdog. So whilst the server still remains showing just a cli command prompt, no gui, when I vnc into the server using framebuffer cli, up pops the full fatdog desktop system (gui). I'm using a vHDD for the boot, but it could equally have been a .iso ... or whatever (such as the default Fatdog64-811.iso that you use to boot/install Fatdog with).
As I tunnel vnc through ssh, its as simple as running vnc localhost 5901 (I've sym linked fbvnc to vnc) on the client (laptop). Rather than setting up a ssh tunnel as outlined above, you could use vnc directly to the server (vnc 192.168.1.4:5901 in my case), but then network traffic would be higher, due to no compression through a ssh tunnel being used.
So there you have it, both client (laptop) and server (desktop) running just cli OS's, but where you have the full benefit of a X/gui desktop. Yes full screen videos can be laggy, but still comfortable if windowed, and I haven't any sound being forwarded ... so not the full Mccoy gui desktop experience, but still generally usable (general browsing using chrome/whatever, running libre office, image editing ...etc.). And yes it is cheating, as X is actually available, it's just being run in kvm/qemu (kernel space/qemu emulation).
Some like to have multi-boot choices, different Puppy's/Dog's maybe even Windows. With a kvm/qemu server you could multi-boot different systems - at the same time. Having both a native Windows and Fatdog/whatever available on the desktop. Maybe sshfs sharing folders (directories) etc. In the above I used two different boxes, client laptop and a desktop PC as the server - but there's no reason why you might combine both into the same box - have your laptop for instance being both the kvm/qemu vnc client/server. And as qemu supports copy on write/snapshots ...etc. you don't have to have a layered filesystem in order to achieve layered filesystem like functions - such as the option to save changes, or not.