311 (1) VIRTUAL MACHINE

Page 2: Operating Systems

  • Definition of an operating system (OS)

    • Software that manages machine hardware and provides interface and abstractions for user applications and systems software

  • Types of machines/hardware

    • Desktops, laptops, servers, mobile devices

  • Examples of OSs

    • Windows, macOS, Linux, FreeBSD, Android, iOS

  • OS dominance by sector

    • Desktop/laptops: Windows > macOS > Linux

    • Server: no reliable source, probably Linux

    • Mobile: Android > iOS

Page 3: Why learn systems programming on Linux?

  • Reasons to learn systems programming on Linux

    • It is free and ubiquitous

    • Ideal for running a tech company on Linux

Page 4: How to run Linux on your machines?

  • Running Linux on machines with Windows or macOS

    • Use VirtualBox/VMware as a hypervisor or virtual machine monitor

    • Create a virtual machine (VM) to run Linux alongside the host OS

Page 5: More on hypervisors

  • Types of hypervisors

    • Type 1: runs on bare physical machine

    • Type 2: runs on an operating system

  • Examples of type 2 hypervisors

    • VMware Workstation (Fusion), QEMU, VirtualBox, Parallels Desktop for Mac, UTM

  • Examples of type 1 hypervisors

    • VMware ESXi, Xen

Page 6: Benefits of Virtualization

  • Benefits of virtualization

    • Without virtualization: OS tightly coupled to hardware, one point of failure

    • With virtualization: provide virtual machine image (VMI), OS as a portable file, backups of entire OS (snapshot)

Page 7: Virtual Machine Image (VMI)

  • Characteristics of VMI

    • Secure, portable, not dependent on physical server

Page 8: What We Need

  • Required tools and resources

    • Virtual machine: VMware

    • Guest OS: Ubuntu

    • Github account for lab assignments

    • SSH keys for Github account

Page 9: FAQs

  • Frequently asked questions

    • Q1: Can we use VirtualBox instead of VMware?

      • Answer: VirtualBox is allowed, but VMware is recommended for lab assignments and grading.

    • Q2: Is there a reason to use a virtual machine if we already have Ubuntu on a separate computer?

      • Answer: Using a virtual machine ensures consistency and avoids compatibility issues when testing/grading lab submissions.

Page 10: Creating Virtual Machine for Windows or Intel based MacBooks

  • Steps to create a virtual machine

    • Install and run VMware Workstation Player (or Fusion for older MacBooks)

    • Select the downloaded Ubuntu 22.04 ISO as the installer disk image

    • Create a username and password

    • Customize virtual disk size and type (at least 35 GB)

    • Customize hardware settings (at least 4 GB RAM)

Page 11: Installing Ubuntu on VMWare for Windows or Intel based MacBooks

  • Steps to install Ubuntu on VMware

    • Start the virtual machine and follow the installation instructions

    • Remove the Ubuntu ISO file in the virtual machine settings if prompted to try or install Ubuntu

    • After logging in, install the required packages: build-essential and libssl-dev

    • Create SSH keys for the GitHub account