SPLVM Virtualized System Meetup

Host: Mossaka

  1. Community hosted meetup for discussing anything related to distributed systems, operating systems, database, and networking. Currently focusing on virtualization, tracking course UCSD CSE 291.
  2. Schedule
  3. Biweekly Zoom meeting on Monday at 5pm PDT
  4. Code of Conduct
  5. Please use “Raise Hands” feature on Zoom
  6. Welcome to unmute or comment in chat at ANY TIME!

Operating Systems

  1. Multiplexing (time-sharing)
  2. Strong isolation
  3. Interaction (IPC)

An operating system has total control of the hardware it’s running on. Whenever the applications need to access or modify hardware resources, they invoke syscalls into the kernel (a form of software-based interrupt). The kernel then handles the requests and returns the result to the caller in the user space.

Virtualization is the process of creating a virtual version of hardware, software, storage, or network resources.

OS essentially virtualizes

  1. CPUs. It creates an illusion of nearly endless supply of CPUs by abstracting over running programs as Process / scheduling as Threads and using a technique called context switch (timer interrupt to prevents a program running forever)

    <aside> ⚠️ There is no distinction between process and thread in Linux. Everything is a runnable Task. the syscall clone() clones a task. Both fork() and pthread_create() calls clone.

    </aside>

  2. Memory. It creates an illusion of large, sparse, private address space for each running program. OS turns virtual memory into physical memory and relies on a hardware feature called TLB (translation lookaside buffer part of chip’s MMU) for efficiency.

  3. I/O. hardware specific details are virtualized with device drivers. Linux treats most I/O resources as file descriptors. “everything is a file”

    files, directories, device files, sockets, pipes, links are all files.

Virtual Machine Monitor (Hypervisor)

The VMM sits between the hardware and OSes. The VMM has total control of the hardware it’s running on and multiplex OSes across the same hardware. It is designed to be transparent

Motivations

  1. Consolidation of resources

    hardware costs are lowered due to the reduces # of physical servers

  2. Scalability and portability

    Easy addition and removal of virtual machines to different hardware and each VM can be replicated for fault tolerant. Allocate memory, network, compute and storage across multiple servers as needed.

  3. User functionality

    running a different OS on the same machine