Onboarding Resources

Various links to useful resources for learning about virtual machines and the technology behind crosvm.

Talks

Chrome University by zachr (2018, 30m)

  • Life of a Crostini VM (user click -> terminal opens)
  • All those French daemons (Concierge, Maitred, Garcon, Sommelier)

NYULG: Crostini by zachr / reveman (2018, 50m)

  • Overlaps Chrome University talk
  • More details on wayland / sommelier from reveman
  • More details on crostini integration of app icons, files, clipboard
  • Lots of demos

Introductory Resources

OS Basics

Rust

KVM Virtualization

Virtio (device emulation)

VFIO (Device passthrough)

Virtualization History and Basics

  • By the end of this section you should be able to answer the following questions
    • What problems do VMs solve?
    • What is trap-and-emulate?
    • Why was the x86 instruction set not “virtualizable” with just trap-and-emulate?
    • What is binary translation? Why is it required?
    • What is a hypervisor? What is a VMM? What is the difference? (If any)
    • What problem does paravirtualization solve?
    • What is the virtualization model we use with Crostini?
    • What is our hypervisor?
    • What is our VMM?
  • CMU slides go over motivation, why x86 instruction set wasn’t “virtualizable” and the good old trap-and-emulate
  • Why Intel VMX was needed; what does it do (Link)
  • What is a VMM and what does it do (Link)
  • Building a super simple VMM blog article (Link)

Relevant Specs