SlideShare une entreprise Scribd logo
1  sur  17
Télécharger pour lire hors ligne
Motivation
               Implementation
        Status and future work
                     Summary




          All Virtual All the Time
Implementing x86 Virtualization at the BIOS level




                   Cristi M gheru³an


      1 Technical University of Cluj-Napoca, Romania

                         2008-2009




            Cristi M gheru³an    All Virtual All the Time
Motivation
                            Implementation
                     Status and future work
                                  Summary
Outline
  1   Motivation
        Virtualization - a hot topic these days
        Virtualization inside the BIOS - Why not?


  2   Implementation
        AVATT components
        Size constraints
        Development Toolkit


  3   Status and future work
        Current Status
        Future work
        Diculties



                         Cristi M gheru³an    All Virtual All the Time
Motivation
                         Implementation    Virtualization - a hot topic
                  Status and future work   Virtualization inside the BIOS - Why not?
                               Summary
About Virtualization
      Modern hardware is getting faster and faster each year

      Multiple OSes can now symultaneously run on the same
      machine

      Most people use it for server consolidation or testing

      There are quite a few virtualization types

          Full (QEMU)- emulates a full computer, maybe even another
          architecture (usually slow)
          Hardware-assisted full virtualization (KVM)- The CPU
          provides some special features to make it faster (decent speed)
          Paravirtualization (XEN)- the guest OS is aware it's being
          virtualized and provides some optimizations (decent speed)
          OS virtualization (OpenVZ) - containers, dierent instances of
          the same kernel (fastest)

                      Cristi M gheru³an    All Virtual All the Time
Motivation
                         Implementation    Virtualization - a hot topic
                  Status and future work   Virtualization inside the BIOS - Why not?
                               Summary
Getting closer to the bare hardware I

      There is a tendency to move the virtualization software closer
      to the bare machine

          At rst, they were simple user applications (qemu)
          Then, kernel components were added to enhance speed
          (KQemu, VMWare, VirtualBox)
          Hypervisors replaced the OS that ran on the bare machine
          (Xen, VMWare ESX)
          Some mainstream OSes got hypervisor capabilities (Linux
          KVM)
          Most of the Unices are capable of running chroot-ed containers
          (chroot, jail, OpenVZ, zones)



                      Cristi M gheru³an    All Virtual All the Time
Motivation
                         Implementation    Virtualization - a hot topic
                  Status and future work   Virtualization inside the BIOS - Why not?
                               Summary
Getting closer to the bare hardware II

      If so, why not move it even closer to the machine, and put it
      inside the BIOS? Yeah, it's possible!

          The BIOS would start
          Make all the needed initializations
          Then automatically run the VMs stored on the disk instead of
          a single OS
          Ideal for server consolidation workloads




                      Cristi M gheru³an    All Virtual All the Time
Motivation   AVATT components
                         Implementation    Size constraints
                  Status and future work   Development Toolkit
                               Summary
The coreboot BIOS makes it possible I
      Ordinary BIOSes are fully written in assembly language, prone
      to bugs, poorly-designed and quite slow

      No keyboard detected, press F1 to continue on 1000 cluster
      nodes is not funny ;-)

      LinuxBIOS was started back in 1999 by Ron Minnich (then
      working on the LANL GRID cluster)

      It aims to provide a fully open source BIOS replacement, and
      started by using Linux as a BIOS

      Had a tiny C code used to initialize the hardware, then ran
      kexec() to start the kernel stored on the disk

      It's very fast (3 seconds to the Linux payload's prompt)

      Written mostly in C, not such bug-prone as ASM


                      Cristi M gheru³an    All Virtual All the Time
Motivation   AVATT components
                         Implementation    Size constraints
                  Status and future work   Development Toolkit
                               Summary
The coreboot BIOS makes it possible II
      Ever since it was re-designed, no longer needs to incorporate
      Linux and was renamed coreboot soon after

      Nowadays it initializes the hardware, and runs an executable
      called payload

      There are lots of them (even Tetris is available!)

      Linux can still be run as a payload

      Currently it supports a few dozens of motherboards, but it's
      very hard to keep up with the hardware makers

      Hardware-compatible with most modern CPUs and chipsets,
      but mainboard makers often induce their own modications

      Currently supported by some major hardware makers (AMD,
      VIA, Sun, Acer, SiS), which often help a lot



                       Cristi M gheru³an   All Virtual All the Time
Motivation   AVATT components
                        Implementation    Size constraints
                 Status and future work   Development Toolkit
                              Summary
So what's inside AVATT?
     The coreboot BIOS, ofcourse

     A payload that contains the following pieces of software:

         A Linux kernel compiled with KVM support, providing
         hardware-assisted virtualization
         A small Linux userland containing the following
         embedded-optimized components:
              uClibc - tiny C library made specically for embedded
              applications
              the busybox binary - provides a basic Linux userland (shell,
              coreutils, and so on)
              the KVM tools that can be used to create and start virtual
              machines
              aditional libraries needed by the KVM tools (currently ncurses)


                     Cristi M gheru³an    All Virtual All the Time
Motivation   AVATT components
                          Implementation    Size constraints
                   Status and future work   Development Toolkit
                                Summary
Size constraints

      All these, including the kernel, had to t in a 2MB ash image.

      I achieved this goal, with 1.8MB used, if compressed with
      LZMA(7zip)

          Heavily stripped Linux kernel, built with KVM support - 900KB
          uClibc - 150KB
          busybox - 150KB
          KVM tools - 500KB
          the aditional libraries - remaining 100KB




                       Cristi M gheru³an    All Virtual All the Time
Motivation   AVATT components
                          Implementation    Size constraints
                   Status and future work   Development Toolkit
                                Summary
Development Toolkit I

      For building the AVATT I had to modify the buildrom utility
      quite heavily

           buildrom is a tool provided by the coreboot project
           It can be used to create ROM images ready to be burned on
           the mainboard's ash
           I modied buildrom by adding a few scripts that compiled the
           tools I needed
           I created patches that xed the incompatibilities between these
           tools
           They were stripped down to minimum size and spartan features
           The GCC compiler suite was used, version 4.3



                       Cristi M gheru³an    All Virtual All the Time
Motivation   AVATT components
                        Implementation    Size constraints
                 Status and future work   Development Toolkit
                              Summary
Development Toolkit II

      For testing I used QEMU, an emulator that can provide the
      hardware-assistance CPU instructions

          It can use a BIOS image created by buildrom
      The developement machine was my laptop running Linux

      It was tested and should compile under most modern Linux
      distributions like Gentoo, Ubuntu or Debian Lenny




                     Cristi M gheru³an    All Virtual All the Time
Motivation   Current Status
                         Implementation    Future work
                  Status and future work   Diculties
                               Summary
Current Status
      All the tools can be built into the same ROM image

      The system starts and provides a Linux shell

      The disks can be manually mounted

      The user can create a VM disk image using a special tool

      A Virtual machine can be started from a CDROM image but it
      crashes soon during the boot process

          The crash is caused by missing Thread Local Storage(TLS)
          support from uClibc's threading implementations
          None of the three!!! threading implementations provided by
          uClibc support TLS on x86 machines
          The uClibc team is currently working on this issue, and I may
          help them in my spare time

                      Cristi M gheru³an    All Virtual All the Time
Motivation   Current Status
                         Implementation    Future work
                  Status and future work   Diculties
                               Summary
Future Work
     Keep the components up to date as they evolve at upstream

     After the blocker TLS issue is implemented in uClibc, make it
     work at its full potential

     Automate as much as possible

     User-friendly tool for creating VMs

     Until the uClibc thing is getting xed, we could switch to
     OpenVZ instead of KVM, providing container-based OS-level
     virtualization

          OpenVZ should be a lot easier to get compiled than the KVM
          tools
          I started working on it, but the progress stalled lately due to
          lack of spare time

                      Cristi M gheru³an    All Virtual All the Time
Motivation   Current Status
                         Implementation    Future work
                  Status and future work   Diculties
                               Summary
Diculties


      The buildrom build system is strange, not a true toolchain

      I had to use lots of GCC CFLAGS tricks to get the stu built

      A few patches had to be created and applied by buildrom to
      most of the programs in order to x compilation errors

      Especially the KVM tools were quite hard to make work on top
      of uClibc, but the other ones were also problematic




                      Cristi M gheru³an    All Virtual All the Time
Motivation
                        Implementation
                 Status and future work
                              Summary
Summary

    The virtualization is getting closer to the hardware

    Putting it in the BIOS would be great for server consolidation




    Outlook

          We need the TLS support from uClibc
          OpenVZ worth being considered as a viable alternative to KVM




                     Cristi M gheru³an    All Virtual All the Time
Appendix    Acknowledgements
                                        For Further Reading

Acknowledgements


     Thanks Google for oering me the opportunity to work on this
     as a Summer of Code project

     Thanks IBM Romania for appreciation and support

     Many thanks to the coreboot team and especially Ron Minnich
     for creating coreboot and mentoring me during this great
     summer




                    Cristi M gheru³an   All Virtual All the Time
Appendix    Acknowledgements
                                       For Further Reading

For Further Reading


     Coreboot website   http://coreboot.org
     AVATT wiki page    http://www.coreboot.org/AVATT
     Google Summer of Code      http://code.google.com/soc




                   Cristi M gheru³an   All Virtual All the Time

Contenu connexe

Tendances

Locally run a FIWARE Lab Instance In another Hypervisors
Locally run a FIWARE Lab Instance In another HypervisorsLocally run a FIWARE Lab Instance In another Hypervisors
Locally run a FIWARE Lab Instance In another HypervisorsJosé Ignacio Carretero Guarde
 
open source virtualization
open source virtualizationopen source virtualization
open source virtualizationKris Buytaert
 
Kvm virtualization in_rhel_7
Kvm virtualization in_rhel_7Kvm virtualization in_rhel_7
Kvm virtualization in_rhel_7Urgen Sherpa
 
Experiences porting KVM to SmartOS
Experiences porting KVM to SmartOSExperiences porting KVM to SmartOS
Experiences porting KVM to SmartOSbcantrill
 
Containers: from development to production at DevNation 2015
Containers: from development to production at DevNation 2015Containers: from development to production at DevNation 2015
Containers: from development to production at DevNation 2015Jérôme Petazzoni
 
LCA 2013 - Baremetal Provisioning with Openstack
LCA 2013 - Baremetal Provisioning with OpenstackLCA 2013 - Baremetal Provisioning with Openstack
LCA 2013 - Baremetal Provisioning with OpenstackDevananda Van Der Veen
 
Scheduler Support for Video-oriented Multimedia on Client-side Virtualization
Scheduler Support for Video-oriented Multimedia on Client-side VirtualizationScheduler Support for Video-oriented Multimedia on Client-side Virtualization
Scheduler Support for Video-oriented Multimedia on Client-side VirtualizationHwanju Kim
 
Virtualization Technology Overview
Virtualization Technology OverviewVirtualization Technology Overview
Virtualization Technology OverviewOpenCity Community
 
Hypervisors and Virtualization - VMware, Hyper-V, XenServer, and KVM
Hypervisors and Virtualization - VMware, Hyper-V, XenServer, and KVMHypervisors and Virtualization - VMware, Hyper-V, XenServer, and KVM
Hypervisors and Virtualization - VMware, Hyper-V, XenServer, and KVMvwchu
 
Transcendent memoryupdate xensummit2010-final
Transcendent memoryupdate xensummit2010-finalTranscendent memoryupdate xensummit2010-final
Transcendent memoryupdate xensummit2010-finalThe Linux Foundation
 
Improving Xen idle power efficiency
Improving Xen idle power efficiencyImproving Xen idle power efficiency
Improving Xen idle power efficiencyThe Linux Foundation
 
5. IO virtualization
5. IO virtualization5. IO virtualization
5. IO virtualizationHwanju Kim
 
Docker: automation for the rest of us
Docker: automation for the rest of usDocker: automation for the rest of us
Docker: automation for the rest of usJérôme Petazzoni
 

Tendances (20)

Kvm setup
Kvm setupKvm setup
Kvm setup
 
Locally run a FIWARE Lab Instance In another Hypervisors
Locally run a FIWARE Lab Instance In another HypervisorsLocally run a FIWARE Lab Instance In another Hypervisors
Locally run a FIWARE Lab Instance In another Hypervisors
 
open source virtualization
open source virtualizationopen source virtualization
open source virtualization
 
Qemu
QemuQemu
Qemu
 
Kvm virtualization in_rhel_7
Kvm virtualization in_rhel_7Kvm virtualization in_rhel_7
Kvm virtualization in_rhel_7
 
Experiences porting KVM to SmartOS
Experiences porting KVM to SmartOSExperiences porting KVM to SmartOS
Experiences porting KVM to SmartOS
 
Containers: from development to production at DevNation 2015
Containers: from development to production at DevNation 2015Containers: from development to production at DevNation 2015
Containers: from development to production at DevNation 2015
 
LCA 2013 - Baremetal Provisioning with Openstack
LCA 2013 - Baremetal Provisioning with OpenstackLCA 2013 - Baremetal Provisioning with Openstack
LCA 2013 - Baremetal Provisioning with Openstack
 
16 roger boesch_xen_client
16 roger boesch_xen_client16 roger boesch_xen_client
16 roger boesch_xen_client
 
Lesson03
Lesson03Lesson03
Lesson03
 
Scheduler Support for Video-oriented Multimedia on Client-side Virtualization
Scheduler Support for Video-oriented Multimedia on Client-side VirtualizationScheduler Support for Video-oriented Multimedia on Client-side Virtualization
Scheduler Support for Video-oriented Multimedia on Client-side Virtualization
 
XS Oracle 2009 Vm Snapshots
XS Oracle 2009 Vm SnapshotsXS Oracle 2009 Vm Snapshots
XS Oracle 2009 Vm Snapshots
 
2. OS vs. VMM
2. OS vs. VMM2. OS vs. VMM
2. OS vs. VMM
 
Virtualization Technology Overview
Virtualization Technology OverviewVirtualization Technology Overview
Virtualization Technology Overview
 
Hypervisors and Virtualization - VMware, Hyper-V, XenServer, and KVM
Hypervisors and Virtualization - VMware, Hyper-V, XenServer, and KVMHypervisors and Virtualization - VMware, Hyper-V, XenServer, and KVM
Hypervisors and Virtualization - VMware, Hyper-V, XenServer, and KVM
 
Building Clouds One 1.4
Building Clouds One 1.4Building Clouds One 1.4
Building Clouds One 1.4
 
Transcendent memoryupdate xensummit2010-final
Transcendent memoryupdate xensummit2010-finalTranscendent memoryupdate xensummit2010-final
Transcendent memoryupdate xensummit2010-final
 
Improving Xen idle power efficiency
Improving Xen idle power efficiencyImproving Xen idle power efficiency
Improving Xen idle power efficiency
 
5. IO virtualization
5. IO virtualization5. IO virtualization
5. IO virtualization
 
Docker: automation for the rest of us
Docker: automation for the rest of usDocker: automation for the rest of us
Docker: automation for the rest of us
 

Similaire à All Virtual All The Time

IT109 Microsoft Windows 7 Operating Systems Unit 02
IT109 Microsoft Windows 7 Operating Systems Unit 02IT109 Microsoft Windows 7 Operating Systems Unit 02
IT109 Microsoft Windows 7 Operating Systems Unit 02blusmurfydot1
 
AnsibleFest 2021 - DevSecOps with Ansible, OpenShift Virtualization, Packer a...
AnsibleFest 2021 - DevSecOps with Ansible, OpenShift Virtualization, Packer a...AnsibleFest 2021 - DevSecOps with Ansible, OpenShift Virtualization, Packer a...
AnsibleFest 2021 - DevSecOps with Ansible, OpenShift Virtualization, Packer a...Mihai Criveti
 
Virtualization
VirtualizationVirtualization
VirtualizationYansi Keim
 
Next in Virtualization Era: Containerization & Docker
Next in Virtualization Era: Containerization & DockerNext in Virtualization Era: Containerization & Docker
Next in Virtualization Era: Containerization & DockerAlper Kanat
 
Virtualizing Testbeds For Fun And Profit
Virtualizing Testbeds For Fun And ProfitVirtualizing Testbeds For Fun And Profit
Virtualizing Testbeds For Fun And Profitmatthew.maisel
 
The Lies We Tell Our Code (#seascale 2015 04-22)
The Lies We Tell Our Code (#seascale 2015 04-22)The Lies We Tell Our Code (#seascale 2015 04-22)
The Lies We Tell Our Code (#seascale 2015 04-22)Casey Bisson
 
virtualization and hypervisors
virtualization and hypervisorsvirtualization and hypervisors
virtualization and hypervisorsGaurav Suri
 
Unikernels: the rise of the library hypervisor in MirageOS
Unikernels: the rise of the library hypervisor in MirageOSUnikernels: the rise of the library hypervisor in MirageOS
Unikernels: the rise of the library hypervisor in MirageOSDocker, Inc.
 
Docker and containers : Disrupting the virtual machine(VM)
Docker and containers : Disrupting the virtual machine(VM)Docker and containers : Disrupting the virtual machine(VM)
Docker and containers : Disrupting the virtual machine(VM)Rama Krishna B
 
Linux container & docker
Linux container & dockerLinux container & docker
Linux container & dockerejlp12
 
Disco: Running Commodity Operating Systems on Scalable Multiprocessors Disco
Disco: Running Commodity Operating Systems on Scalable Multiprocessors DiscoDisco: Running Commodity Operating Systems on Scalable Multiprocessors Disco
Disco: Running Commodity Operating Systems on Scalable Multiprocessors DiscoMagnus Backman
 
Unikernels: Rise of the Library Hypervisor
Unikernels: Rise of the Library HypervisorUnikernels: Rise of the Library Hypervisor
Unikernels: Rise of the Library HypervisorAnil Madhavapeddy
 
Virtualization concept slideshare
Virtualization concept slideshareVirtualization concept slideshare
Virtualization concept slideshareYogesh Kumar
 
LOAD BALANCING OF APPLICATIONS USING XEN HYPERVISOR
LOAD BALANCING OF APPLICATIONS  USING XEN HYPERVISORLOAD BALANCING OF APPLICATIONS  USING XEN HYPERVISOR
LOAD BALANCING OF APPLICATIONS USING XEN HYPERVISORVanika Kapoor
 
Practical Introduction To Linux
Practical Introduction To LinuxPractical Introduction To Linux
Practical Introduction To LinuxZeeshan Rizvi
 
Virtualization, The future of computing (archived)
Virtualization, The future of computing (archived)Virtualization, The future of computing (archived)
Virtualization, The future of computing (archived)Bud Siddhisena
 

Similaire à All Virtual All The Time (20)

IT109 Microsoft Windows 7 Operating Systems Unit 02
IT109 Microsoft Windows 7 Operating Systems Unit 02IT109 Microsoft Windows 7 Operating Systems Unit 02
IT109 Microsoft Windows 7 Operating Systems Unit 02
 
AnsibleFest 2021 - DevSecOps with Ansible, OpenShift Virtualization, Packer a...
AnsibleFest 2021 - DevSecOps with Ansible, OpenShift Virtualization, Packer a...AnsibleFest 2021 - DevSecOps with Ansible, OpenShift Virtualization, Packer a...
AnsibleFest 2021 - DevSecOps with Ansible, OpenShift Virtualization, Packer a...
 
Virtualization
VirtualizationVirtualization
Virtualization
 
QEMU in Cross building
QEMU in Cross buildingQEMU in Cross building
QEMU in Cross building
 
Next in Virtualization Era: Containerization & Docker
Next in Virtualization Era: Containerization & DockerNext in Virtualization Era: Containerization & Docker
Next in Virtualization Era: Containerization & Docker
 
Virtualizing Testbeds For Fun And Profit
Virtualizing Testbeds For Fun And ProfitVirtualizing Testbeds For Fun And Profit
Virtualizing Testbeds For Fun And Profit
 
The Lies We Tell Our Code (#seascale 2015 04-22)
The Lies We Tell Our Code (#seascale 2015 04-22)The Lies We Tell Our Code (#seascale 2015 04-22)
The Lies We Tell Our Code (#seascale 2015 04-22)
 
virtualization and hypervisors
virtualization and hypervisorsvirtualization and hypervisors
virtualization and hypervisors
 
A Xen Case Study
A Xen Case StudyA Xen Case Study
A Xen Case Study
 
Unikernels: the rise of the library hypervisor in MirageOS
Unikernels: the rise of the library hypervisor in MirageOSUnikernels: the rise of the library hypervisor in MirageOS
Unikernels: the rise of the library hypervisor in MirageOS
 
Docker and containers : Disrupting the virtual machine(VM)
Docker and containers : Disrupting the virtual machine(VM)Docker and containers : Disrupting the virtual machine(VM)
Docker and containers : Disrupting the virtual machine(VM)
 
Linux container & docker
Linux container & dockerLinux container & docker
Linux container & docker
 
OSSNA18: Xen Beginners Training
OSSNA18: Xen Beginners Training OSSNA18: Xen Beginners Training
OSSNA18: Xen Beginners Training
 
Disco: Running Commodity Operating Systems on Scalable Multiprocessors Disco
Disco: Running Commodity Operating Systems on Scalable Multiprocessors DiscoDisco: Running Commodity Operating Systems on Scalable Multiprocessors Disco
Disco: Running Commodity Operating Systems on Scalable Multiprocessors Disco
 
Unikernels: Rise of the Library Hypervisor
Unikernels: Rise of the Library HypervisorUnikernels: Rise of the Library Hypervisor
Unikernels: Rise of the Library Hypervisor
 
Virtualization concept slideshare
Virtualization concept slideshareVirtualization concept slideshare
Virtualization concept slideshare
 
LOAD BALANCING OF APPLICATIONS USING XEN HYPERVISOR
LOAD BALANCING OF APPLICATIONS  USING XEN HYPERVISORLOAD BALANCING OF APPLICATIONS  USING XEN HYPERVISOR
LOAD BALANCING OF APPLICATIONS USING XEN HYPERVISOR
 
Practical Introduction To Linux
Practical Introduction To LinuxPractical Introduction To Linux
Practical Introduction To Linux
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
Virtualization, The future of computing (archived)
Virtualization, The future of computing (archived)Virtualization, The future of computing (archived)
Virtualization, The future of computing (archived)
 

Dernier

Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 

Dernier (20)

Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 

All Virtual All The Time

  • 1. Motivation Implementation Status and future work Summary All Virtual All the Time Implementing x86 Virtualization at the BIOS level Cristi M gheru³an 1 Technical University of Cluj-Napoca, Romania 2008-2009 Cristi M gheru³an All Virtual All the Time
  • 2. Motivation Implementation Status and future work Summary Outline 1 Motivation Virtualization - a hot topic these days Virtualization inside the BIOS - Why not? 2 Implementation AVATT components Size constraints Development Toolkit 3 Status and future work Current Status Future work Diculties Cristi M gheru³an All Virtual All the Time
  • 3. Motivation Implementation Virtualization - a hot topic Status and future work Virtualization inside the BIOS - Why not? Summary About Virtualization Modern hardware is getting faster and faster each year Multiple OSes can now symultaneously run on the same machine Most people use it for server consolidation or testing There are quite a few virtualization types Full (QEMU)- emulates a full computer, maybe even another architecture (usually slow) Hardware-assisted full virtualization (KVM)- The CPU provides some special features to make it faster (decent speed) Paravirtualization (XEN)- the guest OS is aware it's being virtualized and provides some optimizations (decent speed) OS virtualization (OpenVZ) - containers, dierent instances of the same kernel (fastest) Cristi M gheru³an All Virtual All the Time
  • 4. Motivation Implementation Virtualization - a hot topic Status and future work Virtualization inside the BIOS - Why not? Summary Getting closer to the bare hardware I There is a tendency to move the virtualization software closer to the bare machine At rst, they were simple user applications (qemu) Then, kernel components were added to enhance speed (KQemu, VMWare, VirtualBox) Hypervisors replaced the OS that ran on the bare machine (Xen, VMWare ESX) Some mainstream OSes got hypervisor capabilities (Linux KVM) Most of the Unices are capable of running chroot-ed containers (chroot, jail, OpenVZ, zones) Cristi M gheru³an All Virtual All the Time
  • 5. Motivation Implementation Virtualization - a hot topic Status and future work Virtualization inside the BIOS - Why not? Summary Getting closer to the bare hardware II If so, why not move it even closer to the machine, and put it inside the BIOS? Yeah, it's possible! The BIOS would start Make all the needed initializations Then automatically run the VMs stored on the disk instead of a single OS Ideal for server consolidation workloads Cristi M gheru³an All Virtual All the Time
  • 6. Motivation AVATT components Implementation Size constraints Status and future work Development Toolkit Summary The coreboot BIOS makes it possible I Ordinary BIOSes are fully written in assembly language, prone to bugs, poorly-designed and quite slow No keyboard detected, press F1 to continue on 1000 cluster nodes is not funny ;-) LinuxBIOS was started back in 1999 by Ron Minnich (then working on the LANL GRID cluster) It aims to provide a fully open source BIOS replacement, and started by using Linux as a BIOS Had a tiny C code used to initialize the hardware, then ran kexec() to start the kernel stored on the disk It's very fast (3 seconds to the Linux payload's prompt) Written mostly in C, not such bug-prone as ASM Cristi M gheru³an All Virtual All the Time
  • 7. Motivation AVATT components Implementation Size constraints Status and future work Development Toolkit Summary The coreboot BIOS makes it possible II Ever since it was re-designed, no longer needs to incorporate Linux and was renamed coreboot soon after Nowadays it initializes the hardware, and runs an executable called payload There are lots of them (even Tetris is available!) Linux can still be run as a payload Currently it supports a few dozens of motherboards, but it's very hard to keep up with the hardware makers Hardware-compatible with most modern CPUs and chipsets, but mainboard makers often induce their own modications Currently supported by some major hardware makers (AMD, VIA, Sun, Acer, SiS), which often help a lot Cristi M gheru³an All Virtual All the Time
  • 8. Motivation AVATT components Implementation Size constraints Status and future work Development Toolkit Summary So what's inside AVATT? The coreboot BIOS, ofcourse A payload that contains the following pieces of software: A Linux kernel compiled with KVM support, providing hardware-assisted virtualization A small Linux userland containing the following embedded-optimized components: uClibc - tiny C library made specically for embedded applications the busybox binary - provides a basic Linux userland (shell, coreutils, and so on) the KVM tools that can be used to create and start virtual machines aditional libraries needed by the KVM tools (currently ncurses) Cristi M gheru³an All Virtual All the Time
  • 9. Motivation AVATT components Implementation Size constraints Status and future work Development Toolkit Summary Size constraints All these, including the kernel, had to t in a 2MB ash image. I achieved this goal, with 1.8MB used, if compressed with LZMA(7zip) Heavily stripped Linux kernel, built with KVM support - 900KB uClibc - 150KB busybox - 150KB KVM tools - 500KB the aditional libraries - remaining 100KB Cristi M gheru³an All Virtual All the Time
  • 10. Motivation AVATT components Implementation Size constraints Status and future work Development Toolkit Summary Development Toolkit I For building the AVATT I had to modify the buildrom utility quite heavily buildrom is a tool provided by the coreboot project It can be used to create ROM images ready to be burned on the mainboard's ash I modied buildrom by adding a few scripts that compiled the tools I needed I created patches that xed the incompatibilities between these tools They were stripped down to minimum size and spartan features The GCC compiler suite was used, version 4.3 Cristi M gheru³an All Virtual All the Time
  • 11. Motivation AVATT components Implementation Size constraints Status and future work Development Toolkit Summary Development Toolkit II For testing I used QEMU, an emulator that can provide the hardware-assistance CPU instructions It can use a BIOS image created by buildrom The developement machine was my laptop running Linux It was tested and should compile under most modern Linux distributions like Gentoo, Ubuntu or Debian Lenny Cristi M gheru³an All Virtual All the Time
  • 12. Motivation Current Status Implementation Future work Status and future work Diculties Summary Current Status All the tools can be built into the same ROM image The system starts and provides a Linux shell The disks can be manually mounted The user can create a VM disk image using a special tool A Virtual machine can be started from a CDROM image but it crashes soon during the boot process The crash is caused by missing Thread Local Storage(TLS) support from uClibc's threading implementations None of the three!!! threading implementations provided by uClibc support TLS on x86 machines The uClibc team is currently working on this issue, and I may help them in my spare time Cristi M gheru³an All Virtual All the Time
  • 13. Motivation Current Status Implementation Future work Status and future work Diculties Summary Future Work Keep the components up to date as they evolve at upstream After the blocker TLS issue is implemented in uClibc, make it work at its full potential Automate as much as possible User-friendly tool for creating VMs Until the uClibc thing is getting xed, we could switch to OpenVZ instead of KVM, providing container-based OS-level virtualization OpenVZ should be a lot easier to get compiled than the KVM tools I started working on it, but the progress stalled lately due to lack of spare time Cristi M gheru³an All Virtual All the Time
  • 14. Motivation Current Status Implementation Future work Status and future work Diculties Summary Diculties The buildrom build system is strange, not a true toolchain I had to use lots of GCC CFLAGS tricks to get the stu built A few patches had to be created and applied by buildrom to most of the programs in order to x compilation errors Especially the KVM tools were quite hard to make work on top of uClibc, but the other ones were also problematic Cristi M gheru³an All Virtual All the Time
  • 15. Motivation Implementation Status and future work Summary Summary The virtualization is getting closer to the hardware Putting it in the BIOS would be great for server consolidation Outlook We need the TLS support from uClibc OpenVZ worth being considered as a viable alternative to KVM Cristi M gheru³an All Virtual All the Time
  • 16. Appendix Acknowledgements For Further Reading Acknowledgements Thanks Google for oering me the opportunity to work on this as a Summer of Code project Thanks IBM Romania for appreciation and support Many thanks to the coreboot team and especially Ron Minnich for creating coreboot and mentoring me during this great summer Cristi M gheru³an All Virtual All the Time
  • 17. Appendix Acknowledgements For Further Reading For Further Reading Coreboot website http://coreboot.org AVATT wiki page http://www.coreboot.org/AVATT Google Summer of Code http://code.google.com/soc Cristi M gheru³an All Virtual All the Time