Whats up at the Virtualization/ Emulation Front?
Total Page:16
File Type:pdf, Size:1020Kb
start big iron void bochs vmware lpar qemu xen vb kvm summary future end Whats up at the virtualization/ emulation front? Christian Horn May 20, 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.81 start big iron void bochs vmware lpar qemu xen vb kvm summary future end whoami 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 RHCA, playing with many linux/bsd distros mostly redhat/suse at work, debian on private boxes start big iron void bochs vmware lpar qemu xen vb kvm summary 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. start big iron void bochs vmware lpar qemu xen vb kvm summary future end Why is it interesting? Potential hackvalue. http://xkcd.com/350/ start big iron void bochs vmware lpar qemu xen vb kvm summary 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 :) start big iron void bochs vmware lpar qemu xen vb kvm summary 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 cx, 100+w ; column mov al, 13h . 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 int 10h mycode: mov ah, 0 dec cx dec cx mov al, 0 ; paint buttom line 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 cx, 100+w ; column mov al, 15 ; white 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 . ; another line on the right cmp cx, 100 . ; 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 dx, 20+h ; row mov al, 15 ; white mov dx, 20+h ; row mov al, 15 ; white u4: mov ah, 0ch ; put pixel 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 start big iron void bochs vmware lpar qemu xen vb kvm summary 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 start big iron void bochs vmware lpar qemu xen vb kvm summary 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 u2: mov ah, 0ch ; put pixel . int 10h int 10h int 10h dec cx dec cx dec cx int 10h mycode: mov ah, 0 mycode: mov ah, 0 mycode: mov ah, 0 int 10h mycode: mov ah, 0 cmp cx, 100 cmp cx, 100 cmp cx, 100 mov al, 0 mov al, 0 mov al, 0 dec cx ja u2 ja u2 ja u2 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 ; another line on the rights ; another line on the rights ; another line on the rights cmp cx, 100 ; paint buttom line mov cx, 100+; co mov cx, 100+; co ; paint buttom line ; 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 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 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 mov al, 15 ; white mov al, 15 ; white mov al, 15 ; white ; another line on the right u2: mov ah, 0ch ; put pel u4: mov ah, 0ch ; put pl u4: mov ah, 0ch ; put pl u2: mov ah, 0ch ; put pel 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 int 10h int 10h int 10h mov cx, 100+w ; column 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 . ja u2 ja u2 ja u2 mov al, 15 ; white . ; another line on the right . mov al, 15 ; white int 10h ; another line on the rights ; another line on the rights ; another line on the rights u4: mov ah, 0ch ; put pixel mov cx, 100+; co u4: mov ah, 0ch ; put pixel dec cx ; another line on the right mov cx, 100+w ;uffn mov dx, 20+h row ; another line on the right mov cx, 100+w ;uffn ; another line on the right mov cx, 100+w ;uffn 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 dx, 20+h row mov al, 15 ; white mov dx, 20+h row mov al, 15 ; white .