Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Whats up at the virtualization/emulation front?
1. start big iron void bochs vmware qemu xen vb kvm others conclusion future end
Whats up at the virtualization/
emulation front?
Christian Horn chorn@fluxcoil.net
January 12, 2010
This file is licensed under the Creative Commons Attribution-ShareAlike License
To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0
v1.63
2. start big iron void bochs vmware qemu xen vb kvm others conclusion future end
...Christian Horn?
OpenSource enthusiast, Linux Engineer, Sysadmin
current main topics cobbler, kerberos, ldap, kvm
Japan fan, cycling, reading
first computer was a KC85/3 build in hometown
Muehlhausen
RedHat Admin: using Redhat since 5.2, certified RHCE in
2002, RHCA in 2009
mostly redhat/suse at work, debian on private boxes
3. start big iron void bochs vmware qemu xen vb kvm others conclusion future end
on the content
notice
This is virtualization in a nutshell as i see it.
I will skim through the technology in chronological order,
basic mechanisms will be explained along that way.
Will just name the most important software from my point
of view, have to simplify things to some level.
If you have questions, don’t wait to ask them! If the
question will take too long to answer or take us too far off
topic, we’ll move on and you can talk to me afterward.
4. start big iron void bochs vmware qemu xen vb kvm others conclusion future end
IBM System/360 Model 67
24bit mainframe shipped since 1966
CP/CMS works as native hypervisor (so sits directly on
metal) comparable to xen-kernel or vmware ESX
features like memory protection appearing, time-sharing
comes up (in past single big programs), operating systems
managing multiple tasks
funny note: first versions of CP/CMS without
copyright-notes so free for publice use :)
5. start big iron void bochs vmware qemu xen vb kvm others conclusion future end
jump single tasks -> OSs with multiple tasks
.
.
.
.
mycode: mov ah, 0
. mycode: mov ah, 0
; another line on the right mov al, 0
mov al, 0
. mov al, 13h
mov cx, 100+w ; column mov al, 13h
mov dx, 20+h ; row ; paint buttom line
; paint buttom line
mycode: mov ah, 0 mov al, 15 ; white mov dx, 20+h ; row
mov dx, 20+h ; row
u4: mov ah, 0ch ; put pixel mov al, 15 ; white
mov al, 0 mov al, 15 ; white .
u2: mov ah, 0ch ; put pixel
u2: mov ah, 0ch ; put pixel .
mov al, 13h int 10h mycode: mov ah, 0
int 10h
dec cx
dec cx
; paint buttom line mov al, 0
cmp cx, 100
cmp cx, 100 mov al, 13h
ja u2
mov dx, 20+h ; row ja u2 ; paint buttom line
; another line on the right
; another line on the right mov dx, 20+h ; row
mov al, 15 ; white mov cx, 100+w ; column mov al, 15 ; white
mov cx, 100+w ; column
mov dx, 20+h ; row
mov dx, 20+h ; row
u2: mov ah, 0ch ; put pixel u2: mov ah, 0ch ; put pixel
mov al, 15 ; white
mov al, 15 ; white int 10h
u4: mov ah, 0ch ; put pixel
int 10h u4: mov ah, 0ch ; put pixel dec cx
int 10h
int 10h cmp cx, 100
dec cx . ja u2
.
.
.
cmp cx, 100 ; another line on the right
.
; another.line on the right mov cx, 100+w ; column ; another line on the right
mov cx, 100+w mov cx, 100+w ; column mov dx, 20+h ; row mov cx, 100+w ; column
mov dx, 20+h ; row mov al, 15 ; white mov dx, 20+h ; row
mov dx, 20+h ; row u4: mov ah, 0ch ; put pixel
mov al, 15 ; white mov al, 15 ; white
mov al, 15 ; white u4: mov ah, 0ch ; put pixel int 10h u4: mov ah, 0ch ; put pixel
.
mov cx, 100+w ; column
u4: mov ah, 0ch ; put pixel task1 task2
.
. task3
int 10h
.
task OperatingSystem
hardware hardware
Code running directly Code running as tasks in an
on classic computers OS which runs on the
(think calculators) hardware
6. start big iron void bochs vmware qemu xen vb kvm others conclusion future end
Also starting.. virtualization!
Why virtualization? To keep old software running, the new
hardware allows this now
accomplishing full virtualization of hardware: all features
used by software like i/o, cpu functions, memory etc. are
provided in virtual machines -> multiple OSs can now run
virtualized
7. start big iron void bochs vmware qemu xen vb kvm others conclusion future end
development of hypervisor virtualization
.
.
.
.
VM1 VM2 VM3
mycode: mov ah, 0
mycode: mov ah, 0
; another line on the right mov al, 0
mov al, 0 mycode: mov ah, 0 mycode: mov ah, 0 mycode: mov ah, 0
mov cx, 100+w ; column mov al, 13h
mov al, 13h mov al, 0 mov al, 0 mov al, 0
mov dx, 20+h ; row ; paint buttom line mov al, 13h ; another line on the right ; another line on the right ; another line on the right mov al, 13h ; another line on the right mov al, 13h ; another line on the right ; another line on the right
; paint buttom line ; paint buttom line mov cx, 100+; co mov cx, 100+; co mov cx, 100+; co ; paint buttom line mov cx, 100+; co ; paint buttom line mov cx, 100+; co mov cx, 100+; co
mov al, 15 ; white mov dx, 20+h ; row mov dx, 20+h row mov dx, 20+h row mov dx, 20+h row mov dx, 20+h row mov dx, 20+h row mov dx, 20+h row
mov dx, 20+h ; row mov dx, 20+h ; row mov dx, 20+h ; row mov dx, 20+h ; row
u4: mov ah, 0ch ; put pixel mov al, 15 ; white mov al, 15 ; white mov al, 15 ; white mov al, 15 ; white mov al, 15 ; white mov al, 15 ; white mov al, 15 ; white mov al, 15 ; white mov al, 15 ; white mov al, 15 ; white
mov al, 15 ; white . u2: mov ah, 0ch ; put pel u4: mov ah, 0ch ; put pl u4: mov ah, 0ch ; put pl u4: mov ah, 0ch ; put pl u2: mov ah, 0ch ; put pel u4: mov ah, 0ch ; put pl u2: mov ah, 0ch ; put pel u4: mov ah, 0ch ; put pl u4: mov ah, 0ch ; put pl
u2: mov ah, 0ch ; put pixel int 10h int 10h int 10h
u2: mov ah, 0ch ; put pixel .
int 10h dec cx
mycode: mov ah, 0
dec cx
mycode: mov ah, 0
dec cx
mycode: mov ah, 0
int 10h mycode: mov ah, 0 cmp cx, 100 cmp cx, 100 cmp cx, 100
dec cx ja u2
mov al, 0
ja u2
mov al, 0
ja u2
mov al, 0
dec cx mov al, 0 mov al, 13h ; another line on the right ; another line on the right mov al, 13h mov al, 13h ; another line on the right
cmp cx, 100 ; another line on the rights
; paint buttom line mov cx, 100+; co mov cx, 100+; co ; another line on the rights
; paint buttom line
; another line on the rights
; paint buttom line mov cx, 100+; co
cmp cx, 100 mov al, 13h mov cx, 100+w ;uffn mov cx, 100+w ;uffn mov cx, 100+w ;uffn
mov dx, 20+h row mov dx, 20+h row mov dx, 20+h row
ja u2 mov dx, 20+h ; row
mov dx, 20+h ; row
mov dx, 20+h ; row
mov dx, 20+h ; row
mov dx, 20+h ; row
mov dx, 20+h ; row
ja u2 ; paint buttom line mov al, 15 ; white mov al, 15 ; white mov al, 15 ; white mov al, 15 ; white mov al, 15 ; white mov al, 15 ; white
; another line on the right mov al, 15 ; white
u2: mov ah, 0ch ; put pel u4: mov ah, 0ch ; put pl u4: mov ah, 0ch ; put pl mov al, 15 ; white
u2: mov ah, 0ch ; put pel
mov al, 15 ; white
u2: mov ah, 0ch ; put pel u4: mov ah, 0ch ; put pl
; another line on the right mov dx, 20+h ; row u4: mov ah, 0ch ; put xel u4: mov ah, 0ch ; put xel u4: mov ah, 0ch ; put xel
mov cx, 100+w ; column int 10h
int 10h
int 10h
int 10h
int 10h
int 10h
mov cx, 100+w ; column mov al, 15 ; white dec cx dec cx dec cx
mov dx, 20+h ; row .
cmp cx, 100
.
cmp cx, 100
.
cmp cx, 100
mov dx, 20+h ; row u2: mov ah, 0ch ; put pixel . . .
mov al, 15 ; white .
ja u2 ; another line on the right .
ja u2
.
ja u2
mov al, 15 ; white int 10h ; another line on the rights ; another line on the rights ; another line on the rights
mov cx, 100+; co
u4: mov ah, 0ch ; put pixel mov cx, 100+w ;uffn mov cx, 100+w ;uffn mov cx, 100+w ;uffn
u4: mov ah, 0ch ; put pixel dec cx
; another line on the right mov dx, 20+h row ; another line on the right ; another line on the right
int 10h mov cx, 100+; co mov dx, 20+h ; row ; another line on the right mov al, 15 ; white mov cx, 100+; co mov dx, 20+h ; row mov cx, 100+; co mov dx, 20+h ; row ; another line on the right
int 10h cmp cx, 100 mov dx, 20+h row mov al, 15 ; white mov cx, 100+; co mov dx, 20+h row mov al, 15 ; white mov dx, 20+h row mov al, 15 ; white mov cx, 100+; co
u4: mov ah, 0ch ; put pl
. u4: mov ah, 0ch ; put xel u4: mov ah, 0ch ; put xel u4: mov ah, 0ch ; put xel
. ja u2
mov al, 15 ; white mov dx, 20+h row mov al, 15 ; white mov al, 15 ; white mov dx, 20+h row
. u4: mov ah, 0ch ; put pl int 10h mov al, 15 ; white u4: mov ah, 0ch ; put pl int 10h u4: mov ah, 0ch ; put pl int 10h mov al, 15 ; white
. ; another line on the right . u4: mov ah, 0ch ; put pl . . u4: mov ah, 0ch ; put pl
. . . .
; another.line on the right mov cx, 100+w ; column ; another line on the right . . .
mov dx, 20+h ; row
mov cx, 100+w ; column
mov dx, 20+h ; row
mov al, 15 ; white
mov al, 15 ; white
u4: mov ah, 0ch ; put pixel
mov cx, 100+w ; column
mov dx, 20+h ; row
mov al, 15 ; white
task1 task2 task3 task1 task2 task3 task1 task2 task3
u4: mov ah, 0ch ; put pixel int 10h u4: mov ah, 0ch ; put pixel
.
task1 task2
.
. task3 OperatingSystem OperatingSystem OperatingSystem
OperatingSystem Hypervisor
hardware hardware
Single OS running Hypervisor running multiple OS with
multiple tasks multiple tasks
8. start big iron void bochs vmware qemu xen vb kvm others conclusion future end
IBM System/360 Model 67 cont’d
paravirtualization supported, aka “DIAGNOSE code” in
IBM-terms
System/360 later evolved into System/370, System/390,
zSeries, System z9 and current System z10
current OSs are z/VM or linux. A z/VM acting as hypervisor
can run other z/VMs virtualized, even cascading possible
nowadays hercules emulates z-architecture, even
architectures that dont exist in reality
9. start big iron void bochs vmware qemu xen vb kvm others conclusion future end
cascading virtual machines
VM2.1.1 VM2.1.2
mycode: mov ah, 0
mov al, 0
; another line on the right mov al, 13h
; another line on the right ; another line on the right
mov cx, 100+; co ; paint buttom line
mov cx, 100+; co mov cx, 100+; co
mov dx, 20+h row mov dx, 20+h ; row
mov dx, 20+h row mov dx, 20+h row
mov al, 15 ; white mov al, 15 ; white
mov al, 15 ; white mov al, 15 ; white
u4: mov ah, 0ch ; put pl u2: mov ah, 0ch ; put pel
u4: mov ah, 0ch ; put pl u4: mov ah, 0ch ; put pl
int 10h
dec cx
mycode: mov ah, 0
mycode: mov ah, 0 cmp cx, 100
VM2.1
mov al, 0
mov al, 0 ja u2
; another line on the right mov al, 13h
mov al, 13h ; another line on the rights
mov cx, 100+; co ; paint buttom line
; paint buttom line mov cx, 100+w ;uffn
mov dx, 20+h row mov dx, 20+h ; row
mov dx, 20+h ; row mov dx, 20+h ; row
mov al, 15 ; white mov al, 15 ; white
mov al, 15 ; white mov al, 15 ; white
u4: mov ah, 0ch ; put pl u2: mov ah, 0ch ; put pel
u2: mov ah, 0ch ; put pel u4: mov ah, 0ch ; put xel
int 10h
int 10h int 10h
dec cx
dec cx .
; another line on the right cmp cx, 100
cmp cx, 100 .
mov cx, 100+; co ja u2
; another line on the right ja u2 .
mov dx, 20+h row ; another line on the rights
mov cx, 100+; co ; another line on the rights
mov al, 15 ; white mov cx, 100+w ;uffn ; another line on the right
mov dx, 20+h row mov cx, 100+w ;uffn
u4: mov ah, 0ch ; put pl mov dx, 20+h ; row mov cx, 100+; co
mov al, 15 ; white mov dx, 20+h ; row
mov al, 15 ; white mov dx, 20+h row
u4: mov ah, 0ch ; put pl mov al, 15 ; white
u4: mov ah, 0ch ; put xel mov al, 15 ; white
u4: mov ah, 0ch ; put xel
mycode: mov ah, 0 int 10h
VM1 VM2
u4: mov ah, 0ch ; put pl
int 10h
mov al, 0 .
.
mov al, 13h .
.
; paint buttom line .
.
task task
mov dx, 20+h ; row
mycode: mov ah, 0
mov al, 15 ; white
u2: mov ah, 0ch ; put pel
int 10h
task task
dec cx
mov al, 0
; another line on the right ; another line on the right ; another line on the right cmp cx, 100
mov al, 13h
mov cx, 100+; co mov cx, 100+; co mov cx, 100+; co ja u2
; paint buttom line
mov dx, 20+h row mov dx, 20+h row mov dx, 20+h row ; another line on the rights
mov dx, 20+h ; row
OperatingS. OperatingS.
mov al, 15 ; white mov al, 15 ; white mov al, 15 ; white mov cx, 100+w ;uffn
mov al, 15 ; white
u4: mov ah, 0ch ; put pl u4: mov ah, 0ch ; put pl u4: mov ah, 0ch ; put pl mov dx, 20+h ; row
u2: mov ah, 0ch ; put pel
mov al, 15 ; white
int 10h
u4: mov ah, 0ch ; put xel
dec cx
mycode: mov ah, 0 int 10h
cmp cx, 100
mov al, 0 .
ja u2 ; another line on the right ; another line on the right
mov al, 13h .
; another line on the rights mov cx, 100+; co mov cx, 100+; co
Hyperv.
.
Hyperv.
; paint buttom line
mov cx, 100+w ;uffn mov dx, 20+h row
task
mov dx, 20+h ; row mov dx, 20+h row
mov dx, 20+h ; row mov al, 15 ; white mov al, 15 ; white
mov al, 15 ; white
mov al, 15 ; white u4: mov ah, 0ch ; put pl u4: mov ah, 0ch ; put pl
u2: mov ah, 0ch ; put pel
u4: mov ah, 0ch ; put xel
int 10h
int 10h
dec cx
.
cmp cx, 100
.
ja u2 ; another line on the right
.
; another line on the rights mov cx, 100+; co
; another line on the right
mov cx, 100+; co
mov dx, 20+h row
mov al, 15 ; white
mov cx, 100+w ;uffn
mov dx, 20+h ; row
mov al, 15 ; white
u4: mov ah, 0ch ; put xel
; another line on the right
mov cx, 100+; co
mov dx, 20+h row
mov dx, 20+h row
mov al, 15 ; white
u4: mov ah, 0ch ; put pl
OperatingSystem
u4: mov ah, 0ch ; put pl int 10h mov al, 15 ; white
. u4: mov ah, 0ch ; put pl
.
task
.
task task task Hypervisor
OperatingSystem OperatingSystem
Hypervisor
hardware
10. start big iron void bochs vmware qemu xen vb kvm others conclusion future end
the void
...and then during the 1980s and 1990s virtualization is
abandoned, the trend is to spread apps over many small
lowcost computers
x86 architecture rises as industry standard, but lacks
functions to support virtualization, grows fast and stays
backward compatible
11. start big iron void bochs vmware qemu xen vb kvm others conclusion future end
Bochs (spoken: box)
created 1998, bought by MandrakeSoft and released under
LGPL in 2000
no virtualization, pure emulation of x86-hardware =>
relatively slow
often used for OS-development when accurate emulation
is required and speed doesnt count
parts reused in other projects like qemu and kvm
runs on: linux, macosx, bsd, win
as guests: most x86-systems like linux, bsd, dos, win
12. start big iron void bochs vmware qemu xen vb kvm others conclusion future end
Vmware Workstation/Fusion
1999 vmware publishes its ’workstation 1.0’: focusing on
desktops
among fastest emulators, closed source, HVM required
features: usb, smp (x16), complex snapshots
management, seamless mode integrates guests apps in
hosts windowmanager (aka unity), Directx8/9 for winguests
VMI paradriver interfave about to be removed:
cpu-functions efficient enough
13. start big iron void bochs vmware qemu xen vb kvm others conclusion future end
software emulator components
mycode: mov ah, 0
mov al, 0 ; another line on the right mycode: mov ah, 0
mov al, 13h mov cx, 100+; co mov al, 0
; paint buttom line mov dx, 20+h row mov al, 13h
mov dx, 20+h ; row mov al, 15 ; white ; paint buttom line
mov al, 15 ; white u4: mov ah, 0ch ; put pl mov dx, 20+h ; row
u2: mov ah, 0ch ; put pel
mov al, 15 ; white
int 10h
u2: mov ah, 0ch ; put pel
dec cx mycode: mov ah, 0
int 10h
cmp cx, 100 mov al, 0
dec cx
ja u2 mov al, 13h
cmp cx, 100
; another line on the rights ; paint buttom line
ja u2
mov cx, 100+w ;uffn mov dx, 20+h ; row
; another line on the rights
mov dx, 20+h ; row mov al, 15 ; white
mov cx, 100+w ;uffn
mov al, 15 ; white u2: mov ah, 0ch ; put pel
mov dx, 20+h ; row
u4: mov ah, 0ch ; put xel int 10h
mov al, 15 ; white
int 10h dec cx
u4: mov ah, 0ch ; put xel
. cmp cx, 100
int 10h
. ja u2
.
. ; another line on the rights
.
mov cx, 100+w ;uffn
; another line on the right .
; another line on the right
mov dx, 20+h ; row
mov cx, 100+; co mov cx, 100+; co
mov al, 15 ; white
mov dx, 20+h row mov dx, 20+h row
u4: mov ah, 0ch ; put xel
mov al, 15 ; white mov al, 15 ; white
int 10h
u4: mov ah, 0ch ; put pl u4: mov ah, 0ch ; put pl
.
.
.
task1 task2 task3
OperatingSystem
graphic network
cpu
card card
Software Hypervisor
graphic network
cpu
card card
pure software emulator
i.e. Bochs
14. start big iron void bochs vmware qemu xen vb kvm others conclusion future end
software emulator access
mycode: mov ah, 0
mov al, 0 ; another line on the right mycode: mov ah, 0
mov al, 13h mov cx, 100+; co mov al, 0
; paint buttom line mov dx, 20+h row mov al, 13h
mov dx, 20+h ; row mov al, 15 ; white ; paint buttom line
mov al, 15 ; white u4: mov ah, 0ch ; put pl mov dx, 20+h ; row
u2: mov ah, 0ch ; put pel
mov al, 15 ; white
int 10h
u2: mov ah, 0ch ; put pel
dec cx mycode: mov ah, 0
int 10h
cmp cx, 100 mov al, 0
dec cx
ja u2 mov al, 13h
cmp cx, 100
; another line on the rights ; paint buttom line
ja u2
mov cx, 100+w ;uffn mov dx, 20+h ; row
; another line on the rights
mov dx, 20+h ; row mov al, 15 ; white
mov cx, 100+w ;uffn
mov al, 15 ; white u2: mov ah, 0ch ; put pel
mov dx, 20+h ; row
u4: mov ah, 0ch ; put xel int 10h
mov al, 15 ; white
int 10h dec cx
u4: mov ah, 0ch ; put xel
. cmp cx, 100
int 10h
. ja u2
.
. ; another line on the rights
.
mov cx, 100+w ;uffn
; another line on the right .
; another line on the right
mov dx, 20+h ; row
mov cx, 100+; co mov cx, 100+; co
mov al, 15 ; white
mov dx, 20+h row mov dx, 20+h row
u4: mov ah, 0ch ; put xel
mov al, 15 ; white mov al, 15 ; white
int 10h
u4: mov ah, 0ch ; put pl u4: mov ah, 0ch ; put pl
.
.
.
task1 task2 task3
OperatingSystem
graphic network
cpu
card card
Software Hypervisor
graphic network
cpu
card card
pure software emulator
i.e. Bochs
15. start big iron void bochs vmware qemu xen vb kvm others conclusion future end
software-emu vs. virtualizer components
mycode: mov ah, 0
mycode: mov ah, 0
mov al, 0 ; another line on the right mycode: mov ah, 0 mov al, 0 ; another line on the right
mov al, 13h mov cx, 100+; co mycode: mov ah, 0
mov al, 0 mov al, 13h mov cx, 100+; co
; paint buttom line mov dx, 20+h row mov al, 0
mov al, 13h ; paint buttom line mov dx, 20+h row
mov dx, 20+h ; row mov al, 15 ; white mov al, 13h
; paint buttom line mov dx, 20+h ; row mov al, 15 ; white
mov al, 15 ; white u4: mov ah, 0ch ; put pl ; paint buttom line
mov dx, 20+h ; row mov al, 15 ; white u4: mov ah, 0ch ; put pl
u2: mov ah, 0ch ; put pel mov dx, 20+h ; row
mov al, 15 ; white u2: mov ah, 0ch ; put pel
int 10h mov al, 15 ; white
u2: mov ah, 0ch ; put pel int 10h
dec cx mycode: mov ah, 0 u2: mov ah, 0ch ; put pel
int 10h dec cx mycode: mov ah, 0
cmp cx, 100 mov al, 0 int 10h
dec cx cmp cx, 100 mov al, 0
ja u2 mov al, 13h dec cx
cmp cx, 100 ja u2 mov al, 13h
; another line on the rights ; paint buttom line cmp cx, 100
ja u2 ; another line on the rights ; paint buttom line
mov cx, 100+w ;uffn mov dx, 20+h ; row ja u2
; another line on the rights mov cx, 100+w ;uffn mov dx, 20+h ; row
mov dx, 20+h ; row mov al, 15 ; white ; another line on the rights
mov cx, 100+w ;uffn mov dx, 20+h ; row mov al, 15 ; white
mov al, 15 ; white u2: mov ah, 0ch ; put pel mov cx, 100+w ;uffn
mov dx, 20+h ; row mov al, 15 ; white u2: mov ah, 0ch ; put pel
u4: mov ah, 0ch ; put xel int 10h mov dx, 20+h ; row
mov al, 15 ; white u4: mov ah, 0ch ; put xel int 10h
int 10h dec cx mov al, 15 ; white
u4: mov ah, 0ch ; put xel int 10h dec cx
. cmp cx, 100 u4: mov ah, 0ch ; put xel
int 10h . cmp cx, 100
. ja u2 int 10h
. . ja u2
. ; another line on the rights .
. . ; another line on the rights
mov cx, 100+w ;uffn .
; another line on the right . mov cx, 100+w ;uffn
mov dx, 20+h ; row ; another line on the right ; another line on the right .
mov cx, 100+; co mov dx, 20+h ; row ; another line on the right
mov al, 15 ; white mov cx, 100+; co mov cx, 100+; co
mov dx, 20+h row mov al, 15 ; white mov cx, 100+; co
u4: mov ah, 0ch ; put xel mov dx, 20+h row mov dx, 20+h row
mov al, 15 ; white u4: mov ah, 0ch ; put xel mov dx, 20+h row
int 10h mov al, 15 ; white mov al, 15 ; white
u4: mov ah, 0ch ; put pl int 10h mov al, 15 ; white
. u4: mov ah, 0ch ; put pl u4: mov ah, 0ch ; put pl
. u4: mov ah, 0ch ; put pl
.
.
.
.
task1 task2 task3 task1 task2 task3
OperatingSystem OperatingSystem
graphic network graphic network
cpu
card card card card
Software Hypervisor HVM Hypervisor
graphic network graphic network
cpu cpu
card card card card
pure software emulator CPU virtualized
i.e. Bochs i.e. XEN / AMD-V
16. start big iron void bochs vmware qemu xen vb kvm others conclusion future end
software-emu vs. virtualizer access
mycode: mov ah, 0
mycode: mov ah, 0
mov al, 0 ; another line on the right mycode: mov ah, 0 mov al, 0 ; another line on the right
mov al, 13h mov cx, 100+; co mycode: mov ah, 0
mov al, 0 mov al, 13h mov cx, 100+; co
; paint buttom line mov dx, 20+h row mov al, 0
mov al, 13h ; paint buttom line mov dx, 20+h row
mov dx, 20+h ; row mov al, 15 ; white mov al, 13h
; paint buttom line mov dx, 20+h ; row mov al, 15 ; white
mov al, 15 ; white u4: mov ah, 0ch ; put pl ; paint buttom line
mov dx, 20+h ; row mov al, 15 ; white u4: mov ah, 0ch ; put pl
u2: mov ah, 0ch ; put pel mov dx, 20+h ; row
mov al, 15 ; white u2: mov ah, 0ch ; put pel
int 10h mov al, 15 ; white
u2: mov ah, 0ch ; put pel int 10h
dec cx mycode: mov ah, 0 u2: mov ah, 0ch ; put pel
int 10h dec cx mycode: mov ah, 0
cmp cx, 100 mov al, 0 int 10h
dec cx cmp cx, 100 mov al, 0
ja u2 mov al, 13h dec cx
cmp cx, 100 ja u2 mov al, 13h
; another line on the rights ; paint buttom line cmp cx, 100
ja u2 ; another line on the rights ; paint buttom line
mov cx, 100+w ;uffn mov dx, 20+h ; row ja u2
; another line on the rights mov cx, 100+w ;uffn mov dx, 20+h ; row
mov dx, 20+h ; row mov al, 15 ; white ; another line on the rights
mov cx, 100+w ;uffn mov dx, 20+h ; row mov al, 15 ; white
mov al, 15 ; white u2: mov ah, 0ch ; put pel mov cx, 100+w ;uffn
mov dx, 20+h ; row mov al, 15 ; white u2: mov ah, 0ch ; put pel
u4: mov ah, 0ch ; put xel int 10h mov dx, 20+h ; row
mov al, 15 ; white u4: mov ah, 0ch ; put xel int 10h
int 10h dec cx mov al, 15 ; white
u4: mov ah, 0ch ; put xel int 10h dec cx
. cmp cx, 100 u4: mov ah, 0ch ; put xel
int 10h . cmp cx, 100
. ja u2 int 10h
. . ja u2
. ; another line on the rights .
. . ; another line on the rights
mov cx, 100+w ;uffn .
; another line on the right . mov cx, 100+w ;uffn
mov dx, 20+h ; row ; another line on the right ; another line on the right .
mov cx, 100+; co mov dx, 20+h ; row ; another line on the right
mov al, 15 ; white mov cx, 100+; co mov cx, 100+; co
mov dx, 20+h row mov al, 15 ; white mov cx, 100+; co
u4: mov ah, 0ch ; put xel mov dx, 20+h row mov dx, 20+h row
mov al, 15 ; white u4: mov ah, 0ch ; put xel mov dx, 20+h row
int 10h mov al, 15 ; white mov al, 15 ; white
u4: mov ah, 0ch ; put pl int 10h mov al, 15 ; white
. u4: mov ah, 0ch ; put pl u4: mov ah, 0ch ; put pl
. u4: mov ah, 0ch ; put pl
.
.
.
.
task1 task2 task3 task1 task2 task3
OperatingSystem OperatingSystem
graphic network graphic network
cpu
card card card card
Software Hypervisor HVM Hypervisor
graphic network graphic network
cpu cpu
card card card card
pure software emulator CPU virtualized
i.e. Bochs i.e. XEN / AMD-V
17. start big iron void bochs vmware qemu xen vb kvm others conclusion future end
Vmware Server/ESX
in 2001 introducing Vmware Server (lives on host-OS just
as another process) and ESX-server (running pure
ESX-kernel on hardware)
later Vmware Player/Fusion/ESXi
nowadays well established in industry, famous for
conversion-tools, HA-functions, management GUIs,
virtualizing complex network-setups