SlideShare una empresa de Scribd logo
1 de 34
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
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
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.
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 :)
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
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
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
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
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
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
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
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
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
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
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
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
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
Whats up at the virtualization/emulation front?
Whats up at the virtualization/emulation front?
Whats up at the virtualization/emulation front?
Whats up at the virtualization/emulation front?
Whats up at the virtualization/emulation front?
Whats up at the virtualization/emulation front?
Whats up at the virtualization/emulation front?
Whats up at the virtualization/emulation front?
Whats up at the virtualization/emulation front?
Whats up at the virtualization/emulation front?
Whats up at the virtualization/emulation front?
Whats up at the virtualization/emulation front?
Whats up at the virtualization/emulation front?
Whats up at the virtualization/emulation front?
Whats up at the virtualization/emulation front?
Whats up at the virtualization/emulation front?
Whats up at the virtualization/emulation front?

Más contenido relacionado

Destacado

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 

Destacado (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
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