Virtual Machine (VM) : Assignment On
Virtual Machine (VM) : Assignment On
Assignment On:
Course Code: CSE-3632
Course Title: Operating System Sessional
Assignment: No. (1)
Submitted To:
Instructor: Mr. Shaikh Shariful Habib
Designation: Assistant Professor
Department: CSE, IIUC
Submitted by:
Name: Md Furquan
ID: C183055
Semester: 6th
Section: 6BM
Department: CSE, IIUC
Contents:
1. Overview
2. History
3. Benefits
4. Disadvantage
5. Types of Virtual Machine
6. Application
• Agility and speed—Spinning up a VM is relatively easy and quick and is much simpler
than provisioning an entire new environment for your developers. Virtualization makes the
process of running dev-test scenarios a lot quicker.
• Lowered downtime—VMs are so portable and easy to move from one hypervisor to
another on a different machine—this means that they are a great solution for backup, in the
event the host goes down unexpectedly.
• Scalability—VMs allow you to more easily scale your apps by adding more physical or
virtual servers to distribute the workload across multiple VMs. As a result, you can increase
the availability and performance of your apps.
• Security benefits— Because virtual machines run in multiple operating systems, using a
guest operating system on a VM allows you to run apps of questionable security and
protects your host operating system. VMs also allow for better security forensics, and are
often used to safely study computer viruses, isolating the viruses to avoid risking their host
computer.
A knowledgeable and tenured IT firm can help a company navigate the terrain of choosing the
right virtual machine to suit business demands. A good IT firm can also aid in making sure the
system runs smoothly and efficiently, while constantly monitoring for performance and IT
security.
Most hypervisors support VMs running the Windows OS as a guest. Microsoft’s Hyper-V
hypervisor comes as part of the Windows operating system. When installed, it creates a parent
partition containing both itself and the primary Windows OS, each of which gets privileged access
to the hardware. Other operating systems, including Windows guests, run in child partitions that
communicate with the hardware via the parent partition.
Google’s open-source Android OS is common on mobile devices and connected home devices
such as home entertainment devices. The Android OS runs only on the ARM processor architecture
that is common to these devices, but enthusiasts, Android gamers, or software developers might
want to run it on PCs.
This is problematic because PCs run on an entirely different x86 processor architecture and a
hardware virtualization hypervisor only passes instructions between the VM and the CPU. It
doesn’t translate them for processors with different instruction sets. There are various projects to
address this problem.
Some projects, such as Shashlik or Genymotion, use an emulator that re-creates the ARM
architecture in software. One alternative, the Android-x86 project, ports Android to the x86
architecture instead. To run it, you must install the Android-x86 program as a virtual machine
using the VirtualBox type 2 hypervisor. Another alternative, Anbox, runs the Android operating
system on the kernel of a host Linux OS.
Apple only allows its macOS system to run on Apple hardware, prohibiting people from running
it on non-Apple hardware as a VM or otherwise under its end user license agreement. You can use
Type 2 hypervisors on Mac hardware to create VMs with a macOS guest.
It is not possible to run iOS in a VM today because Apple strictly controls its iOS OS and doesn’t
allow it to run on anything other than iOS devices.
The closest thing to an iOS VM is the iPhone simulator that ships with the Xcode integrated
development environment, which simulates the entire iPhone system in software.
The Java platform is an execution environment for programs written in the Java software
development language. Java’s promise was “write once, run anywhere” functionality. This meant
that any Java program could run on any hardware running the Java platform. To achieve that, the
Java platform includes a Java virtual machine (JVM).
Java programs contain bytecode, which are instructions intended for the JVM. The JVM compiles
this bytecode to machine code, which is the lowest-level language used by the host computer. The
JVM in one computing platform’s Java platform will create a different set of machine code
instructions to the JVM in another’s, based on the machine code that the processor expects.
The JVM, therefore, doesn’t run an entire OS and doesn’t use a hypervisor as other VMs do.
Instead, it translates application-level software programs to run on particular hardware.
Like the JVM, the Python VM doesn’t run on a hypervisor, and it doesn’t contain a guest OS. It is
a tool that enables programs written in the Python programming language to run on a variety of
CPUs.
Similar to Java, Python translates its programs into an intermediate format called bytecode, storing
it in a file ready for execution. When the program runs, the Python VM translates the bytecode
into machine code for fast execution.
Linux is a common guest OS used in many VMs. It is also a common host OS used to run VMs
and even has its own hypervisor called the kernel-based virtual machine (KVM). The mainstream
Linux kernel has included the KVM since 2007. Although it is an open-source project, Red Hat
now owns the original company that developed the KVM.
VMware was an early virtualization software vendor and is now a popular provider of both Type
1 and Type 2 hypervisor and VM software to enterprise customers.
• Cloud computing: For the last 10+ years, VMs have been the fundamental unit of
compute in cloud, enabling dozens of different types of applications and workloads to
run and scale successfully.
• Support DevOps: VMs are a great way to support enterprise developers, who can
configure VM templates with the settings for their software development and testing
processes. They can create VMs for specific tasks such as static software tests, including
these steps in an automated development workflow. This all helps streamline the DevOps
toolchain.
• Test a new operating system: A VM lets you test-drive a new operating system on your
desktop without affecting your primary OS.
• Investigate malware: VMs are useful for malware researchers that frequently need fresh
machines on which to test malicious programs.
• Run incompatible software: Some users may prefer one OS while still needing a
program that is only available in another. One good example is the Dragon range of voice
dictation software. Its vendor, Nuance, has discontinued the macOS version of its
product. However, running a desktop-focused hypervisor—such as VMware Fusion or
Parallels—enables you to run Windows in a VM, giving you access to that version of the
software.
• Browse securely: Using a virtual machine for browsing enables you to visit sites without
worrying about infection. You can take a snapshot of your machine and then roll back to
it after each browsing session. This is something that a user could set up themselves,
using a Type 2 desktop hypervisor. Alternatively, an admin could provide a temporary
virtual desktop located on the server.