Page 1
Version 1.0.0 © Adam Trickett, February-2010 Distributed under a creative commons Attribution-NonCommercial-ShareAlike licence.
1
Desktop Desktop VirtualisationVirtualisation
Adam John TrickettAdam John Trickett
[email protected]
PGP Key: 0xAF0DB8C8
Page 2
Version 1.0.0 © Adam Trickett, February-2010 Distributed under a creative commons Attribution-NonCommercial-ShareAlike licence.
2
In The Beginning...In The Beginning...
• Computers were:• Very Expensive• Very Rare• Very slow• Ran one thing at a time• Ran for only one user
Page 3
Version 1.0.0 © Adam Trickett, February-2010 Distributed under a creative commons Attribution-NonCommercial-ShareAlike licence.
3
Time Passes...Time Passes...
• By the 1960s computers are:• Still expensive• Getting more common• Getting faster• Required to do more than one things at one
Page 4
Version 1.0.0 © Adam Trickett, February-2010 Distributed under a creative commons Attribution-NonCommercial-ShareAlike licence.
4
MulticsMultics
• Started in 1964• MIT, GE & Bell Labs• Multi-user, multi-tasking system• Gave rise to Unix and hence Linux
• Last Multics system decommissioned 30/10/2000
Page 5
Version 1.0.0 © Adam Trickett, February-2010 Distributed under a creative commons Attribution-NonCommercial-ShareAlike licence.
5
Virtual MachinesVirtual Machines
• Pioneered by IBM in the 1960s• 1966 IBM CP-40 & CP-67• 1972 IBM System/370 & VM370
Page 6
Version 1.0.0 © Adam Trickett, February-2010 Distributed under a creative commons Attribution-NonCommercial-ShareAlike licence.
6
Virtual V MultitaskingVirtual V Multitasking
• Run lots of programs at the same time
• Lots of users at the same time
• Can run on their own kernel
• Run lots of programs at the same time
• Lots of users at the same time
• All running on the same kernel
Page 7
Version 1.0.0 © Adam Trickett, February-2010 Distributed under a creative commons Attribution-NonCommercial-ShareAlike licence.
7
Time Passes...Time Passes...
• Computers get faster and cheaper• IBM VM systems get smarter• IBM VM systems run multitasking software• Unix systems get smarter• Unix systems run using hardware assisted VM
• IBM release the “PC” using the Intel 8086
Page 8
Version 1.0.0 © Adam Trickett, February-2010 Distributed under a creative commons Attribution-NonCommercial-ShareAlike licence.
8
PCsPCs
• Primitive processor• Limited memory• Primitive single user operating system:
• No multi-tasking• No VM• Reboot becomes a way of life
• Cheap
Page 9
Version 1.0.0 © Adam Trickett, February-2010 Distributed under a creative commons Attribution-NonCommercial-ShareAlike licence.
9
Time Passes...Time Passes...
• Processors get a lot faster• Memory gets cheap and fast• Operating systems grow up, Windows NT and
Linux• Multi-user• Pre-emptive multi-tasking• BSOD for some users...!
Page 10
Version 1.0.0 © Adam Trickett, February-2010 Distributed under a creative commons Attribution-NonCommercial-ShareAlike licence.
10
Machine EmulatorsMachine Emulators
• Desktop computers are fast enough to fully emulate the complete hardware of an older slower system, e.g.
• VersatIle Commodore Emulator• DOSbox• MESS
Page 11
Version 1.0.0 © Adam Trickett, February-2010 Distributed under a creative commons Attribution-NonCommercial-ShareAlike licence.
11
QQEMUEMU
• Can emulate several processors• Can emulate several hardware platforms• Contains framework to run a virtual system on
a regular PC• Sub-component used by other emulators
Page 12
Version 1.0.0 © Adam Trickett, February-2010 Distributed under a creative commons Attribution-NonCommercial-ShareAlike licence.
12
Qemu ComponentsQemu Components
• CPU emulators• Firmware• VGA graphics emulator• IDE subsystem & virtual disks• Network subsystem• PS/2 mouse and keyboard• Sound etc
Page 13
Version 1.0.0 © Adam Trickett, February-2010 Distributed under a creative commons Attribution-NonCommercial-ShareAlike licence.
13
CLI InvocationCLI Invocation
• Create a virtual file system:
qemu create -f qcow2 vdisk.qcow2 10G• Start a Qemu session:
qemu-system-x86_64 -boot c \
-hda vdisk.qcow2 -cdrom cd.iso \
-soundhw all -m 256 -localtime -k en-gb \
-net nic -net user
Page 14
Version 1.0.0 © Adam Trickett, February-2010 Distributed under a creative commons Attribution-NonCommercial-ShareAlike licence.
14
Kqemu / “Qemu Accelerator”Kqemu / “Qemu Accelerator”
• Kernel module• Guest usermode code runs directly on host
CPU• Does not require special CPU• Only x86 or AMD64• Same scripts as Qemu• Some old or odd OS wont run under kqemu
Page 15
Version 1.0.0 © Adam Trickett, February-2010 Distributed under a creative commons Attribution-NonCommercial-ShareAlike licence.
15
KVM QEMUKVM QEMU
• Kernel module – in mainline kernel• KVM an alternative to kqemu
• Can be used just like Kqemu/Qemu
• Requires CPU x86/AMD64 with virtualisation features
Page 16
Version 1.0.0 © Adam Trickett, February-2010 Distributed under a creative commons Attribution-NonCommercial-ShareAlike licence.
16
VirtualBoxVirtualBox
• Three Licences:• Open source• Proprietary personal• Proprietary commercial
• Uses some parts of Qemu• Built in Qt based GUI and CLI• Guest OS drivers• Can use hardware virtualisation if available
Page 17
Version 1.0.0 © Adam Trickett, February-2010 Distributed under a creative commons Attribution-NonCommercial-ShareAlike licence.
17
ComparisonComparison
• Qemu/KQemu/KVM• CLI no native GUI• Can use CPU
virtualisation• Guest graphics
performance poor• Support for older
hardware
• VirtualBox• GUI or CLI• Can use CPU
virtualisation• Good guest graphics
performance• Older OS hardware
problems
Page 18
Version 1.0.0 © Adam Trickett, February-2010 Distributed under a creative commons Attribution-NonCommercial-ShareAlike licence.
18
ConclusionConclusion
• Use VirtualBox, unless:• Host not x86/AMD64 CPU• Guest not x86/AMD64 CPU• Old guest e.g. Windows 95• Don't need a GUI
Page 19
Version 1.0.0 © Adam Trickett, February-2010 Distributed under a creative commons Attribution-NonCommercial-ShareAlike licence.
19
DemoDemo
Page 20
Version 1.0.0 © Adam Trickett, February-2010 Distributed under a creative commons Attribution-NonCommercial-ShareAlike licence.
20
ResourcesResources
• http://www.iredale.net/p/by-type/talk/• http://www.hants.lug.org.uk/• http://www.slideshare.net/
Page 21
Version 1.0.0 © Adam Trickett, February-2010 Distributed under a creative commons Attribution-NonCommercial-ShareAlike licence.
21
ThankThank You You
Any Any Questions?Questions?