Virtual Machines

KS3 Computer Science

11-14 Years Old

48 modules covering EVERY Computer Science topic needed for KS3 level.

GCSE Computer Science

14-16 Years Old

45 modules covering EVERY Computer Science topic needed for GCSE level.

A-Level Computer Science

16-18 Years Old

66 modules covering EVERY Computer Science topic needed for A-Level.

GCSE Networking Resources (14-16 years)

  • An editable PowerPoint lesson presentation
  • Editable revision handouts
  • A glossary which covers the key terminologies of the module
  • Topic mindmaps for visualising the key concepts
  • Printable flashcards to help students engage active recall and confidence-based repetition
  • A quiz with accompanying answer key to test knowledge and understanding of the module

A-Level Internet technologies (16-18 years)

  • An editable PowerPoint lesson presentation
  • Editable revision handouts
  • A glossary which covers the key terminologies of the module
  • Topic mindmaps for visualising the key concepts
  • Printable flashcards to help students engage active recall and confidence-based repetition
  • A quiz with accompanying answer key to test knowledge and understanding of the module

Overview of virtual machines

The virtual machine gives a deliberation of the hidden physical framework to the visitor working framework running on it. You can classify virtual machines into different types based on the level of abstraction provided by VMM and whether the host and guest systems use the same ISA. There are two main development methods for system virtual machines: complete system virtualization and Para virtualization. Virtual machines have great potential in various research fields because they can provide ideal functions such as software flexibility, enhanced protection, and independence from hardware.

What is a virtual machine?

A standard computer system is constructed hierarchically by three features: hardware, operating system and application programming. So as to upgrade the elements of the product, a standard guidance set engineering (ISA) has been proposed, which unequivocally characterizes the interface among equipment and programming. As it were, ISA is essential for the processor known to software engineers or compiler creators. Contains client and framework steps. Client guidelines are a lot of directions that can be gotten to at the same time by the working framework and application programs. Then again, framework directions are extraordinary advantaged guidelines used to oversee and secure shared equipment assets (processor, memory, I/O framework, and so forth.). Applications can only access these resources through system calls.

The standard architecture has many advantages. A well-defined interface allows application developers to ignore hardware details such as I/O and memory allocation, as well as separate hardware and software design.


For applications running concurrently on the operating system, isolation alone is not enough. All protection and shared management is managed by a single operating system. When sharing system hardware, malicious programs have the opportunity to exploit security holes.


Applications that share a single operating system cannot exclusively access system assets. They will inescapably connect with each other. For instance, creating an application on the same computer where the application is deployed usually causes the computer to restart. Therefore, the stability of the system is weakened. Considering all the limitations of standard computing systems, virtual machines give a new way to solve all problems. The virtual machine was first created by IBM in the 1960s and was very famous in the 1970s. Around then, PC frameworks were tremendous and costly, so IBM created the idea of virtual machines, time-sharing hosts, and dispensing PC assets to various clients. A virtual machine is characterized as a disengaged and completely ensured duplicate of the hidden physical machine equipment.

In this article, we’ll start with the basic idea of implementing a virtual machine. Next, I described two main methods used for real-world virtual machine development: full system virtualization and para virtualization. We introduced many applications of virtual machines in the present field of systems research and their possible future trends.

Principle of Virtual Machine

The idea of the virtual machine was created; it has been an intriguing issue. Particularly as of late, it has reappeared and assumed a significant function in framework research.

This section introduces common virtual machine design and deployment issues, and introduces system taxonomy.

Uses of Virtual Machine

The virtual machine provides an isolated and fully protected copy Basic physical system. To achieve this goal, a layered approach is required. To abstract physics, you need a new layer on top of the original bare system Providing an interface for resources and operating systems running on them. VMM is Virtual machine deployment. This is, Virtualized infrastructure platform and bare metal: virtual processor products, Virtual memory and I/O devices. The same basic hardware, the virtual machine monitor must also provide Protect each virtual machine as a separate copy.

Illustration of Virtual Machine and its usage.

The fundamental virtual machine model ought to be like that appeared in Figure 1, where the virtual machine screen is situated between the xposed framework equipment and the working framework. All in all, the primary stage, which comprises a virtual machine screen and an uncovered metal that gives a virtual machine condition, is known as a “have PC”, the working framework and the applications running on it are “visitors”. In addition, the abstract interfaces provided by the VMM can be of various types. Some virtual machine monitors digitize the entire system, i.e. the guest operating system can run on the digitized system fleet without any changes, while other VMMs do not require full system digitization, so we need to change some code. The visitor working framework makes it reasonable for unique interfaces. This kind of virtual machine system is called para virtualization.

An Early View of Virtual Machine

Robert Goldberg summed up his research on virtual machines in 1960-70 [3] and summarized the principles of virtual machines. As you said, the main purpose of a virtual machine is to solve the program’s portability, perform debugging of the operating system, and perform tests and diagnostics. The architecture of 3rd-generation computers cannot be directly virtualized and must be completed by software manipulation, which is very hard. Here, many scientists have suggested a way to solve this problem that directly supports virtual machines, including Goldberg’s hardware virtualization (a virtualizable architecture).


 The machine abstraction is a layer, it defines all the layers below and provides an indication of the surface layer, so the degree of fabric wear may be a good standard for designing a machine. There are two ideas about what a car is. One comes from one system and the other comes from the whole system. Due to the system configuration, the program is a storage location, instructions and user accounts. The system cannot directly access storage and storage on the disk, nor can it directly access other input/output sources, and can only access input/output sources from system calls. Provide a complete environment for the entire system, which supports multiple systems at the same time, and can separate physical storage and input/output sources and configurations. In addition, the OS, as a part of the system, manages the working methods and resources of the system. Therefore, depending on the level of abstraction, there are virtual machine systems and virtual machine systems. As the name implies, the system virtual machine can support a single system, while the system digital machine can support a complete operating system and environment. We conclude that machine-level systems provide ABI in applications. If the host and the guest are the same ISA, you can configure different operating systems according to whether they support ABI or ISA.


Multi-writing computer programs are a standard element of present-day working frameworks. The working framework gives a repeated ABI to each cycle, and each cycle expects it possesses the whole PC. Subsequently, truth be told, the application is running simultaneously at the cycle level virtual machine. In this sort of VM, the visitor framework and host framework are on the equivalent ISA and a similar working framework.


This is the 2nd type of process level virtual machine is to run a compiled binary program on the source ISA, but the underlying hardware is another ISA. The VMM executes some native ISA statements and interprets all source statements. This method obviously performs poorly. Therefore, binary conversion is used more often. It converts source statements to native statements with the same functions, and can be cached and reused after the statement block is converted.

High Level Virtual Machine

Due to the popularity of Java, the latter type of process level VM is the most common. In addition to the dynamic optimizer, the purpose of the above three virtual machines is to improve portability between platforms. However, for all ISAs, these methods require a lot of effort, so a good way to promote virtualization to a next level is to upgrade the virtual machine from the process level to high-level language design.

Full System Virtualization- VMWare

There are a few different ways to actualize a VM. The majority of them can be partitioned into 2 classifications: full virtualization and Para virtualization. Full virtualization gives a consistent dream/reflection for the fundamental physical framework, and expects to make a total virtual framework that the visitor working framework can run. The objective of full virtualization is to wipe out those progressions while moving the visitor working framework and the applications running on it to a VM. The deliberation given by full virtualization must be actually equivalent to the physical equipment so the visitor working framework and applications don’t know that the visitor working framework and applications are running in a virtual machine, not in a virtual machine.

There are two types of fully virtualized VMWare solutions: managed architecture and hypervisor architecture. Both are suitable for the IA-32 architecture and support the operation of basically unchanged operating systems, such as Windows 2000, XP and Linux Red hat. VMWare workstations use the hosting method to install virtual machines and guest operating systems and run them on standard operating systems. It uses the host operating system to support various hardware devices. In contrast, the hypervisor architecture directly installs a software layer called hypervisor on the underlying hardware. VMWare ESX Server stands for hypervisor architecture. Next, we will compare and contrast the above two VMWare products to illustrate the technology used for full virtualization.

Hosted Approach – VMWare Workstation

The main two benefits for this hosted architecture are as follow:

  • The “open” architecture of the PC creates a variety of hardware devices that must be managed by virtual machines. This hosting method allows you to use existing device drivers for standard operating systems and avoids the hassle of migrating hundreds of device drivers to a virtual controller.
  • Most PC users have correctly installed and configured a large amount of software in their existing operating systems. The hosting method permits the original OS/software to coexist with the virtual machine/guest OS.

Types of Hypervisor Approach- VMWare ESX Server

Not at all like VMWare workstations based on existing working frameworks, VMWare ESX Server runs legitimately on physical equipment. For CPU virtualization, it utilizes a similar innovation as VMWare Workstation: direct execution through unique paired change. To stay away from reiteration, it would be ideal if you skirt the conversation about CPU use and build up the inventive memory virtualization innovation of VMWare ESX Server.

Shadow page table for memory virtualization: There are three sorts of addresses in the VM world: virtual locations, which are the obvious locations of uses in the visitor working framework; virtual locations. The physical location is a 0-line straight location field extricated from the VMM and moved to the visitor OS; The machine address is the location of the equipment memory got by the physical processor. An unaltered visitor working framework accepts that it is running on equipment that has a straight location space, beginning straightforwardly without any preparation. VMM’s obligation is to give this figment to the visitor working framework.

Ballooning in reclamation for over commitment: Abuse is viewed as one of the primary benefits of utilizing VM. Memory pages can be changed between virtual machines based on configuration and workload. In most cases, different guest operating systems have different levels of memory requirements so that they can use limited memory resources more efficiently. The more memory allocated to the more demanding guest operating system, the better the overall performance. The reason is how to find the page to be retrieved. ESX Server’s decision to allow the guest operating system to make a decision is based on the fact that only the guest operating system knows the best information about the most valuable pages.

Content Base transparent memory sharing: The previous table makes it simple to swap pages between different virtual machines. You can assign multiple virtual page numbers to one-page machine numbers. This can reduce the total memory, and in some cases, you can delete copies to reduce overhead. ESX Server uses advanced memory mirroring technology. Transparent, which means that the virtual machine doesn’t know that the pages are separate, they all look like private pages. Disk will warn about sharing pages to create pages, but the guest operating system needs to be changed, and ESX Server does not support it. It turns out that the comparison between each page shows the complexity of the comparison page O(n2).

Facts of Para Virtualization- Xen

In contrast to full virtualization, Para virtualization doesn’t totally cover the deliberation of the hidden physical framework, accordingly lessening pointless execution corruption. It gives a reflection to each virtual machine that can be successfully actualized on explicit equipment. This reflection is different from the first equipment interface, so the visitor working framework must be adjusted to run in a VM. However, by design, the ABI (Application Binary Interface) remains the same, and applications can be run without changing the guest operating system. The relaxation of abstraction significantly increases the design space of the VM monitor, reduces overhead, and improves presentation. Nowadays, Para virtualization is receiving more and more attention, because its performance loss is very low:

  • Support for unchanged binary applications. Although the guest operating system must be changed, the existing standard ABI must remain unchanged. Otherwise, users will not switch to Xen.
  • Supports a complete operating system for multiple applications. Xen specifically distinguishes itself from VMM Denali. The application is tailored and directly connected to a special guest operating system in Denali, such as libOS in ExoKernel.
  • Para virtualization. It is difficult to achieve strong solder isolation and good presentation at the same time, especially in non-cooperative x86 architectures.
  • The conclusion is for appropriate performance and VM presentation. In some cases, the guest operating system is required to view virtual and real sources. For example, if virtual and real-time functions can be provided for the guest operating system, TCP can better handle urgent tasks, such as timeouts.

Application of Virtual machines

As present day PC frameworks become less expensive and less expensive, the first utilization of virtual machines shared by costly PC frameworks does not make any difference anymore. In any case, virtual machines have remarkable attributes that are consistently important to framework analysts. Programming adaptability, between application assurance, equipment freedom and Suitable condition for framework improvement and troubleshooting. Dwindle Chen proposed supplanting the present working framework and programming shape with another three-level system of virtual machine working framework programming, which gives secure logging, interruption anticipation, and location and relocation.

System logger-ReVirt

System logs provide direct information for intrusion analysis after system attacks occur. Ironically, the reliability of the registry at the OS level depends on the integrity of OS itself.


Since VMM is a software application host, it can take over various destructive environments, including the host system and all operating systems, package them and ship them to the network -range can be restarted remotely. Recipient.

Comparison between Container vs Virtual Machine

Like virtual machines, holder innovation, for example, Kubernetes is comparable in the feeling of running segregated applications on a solitary stage. While virtual machines virtualize the equipment layer to make a “PC,” compartments bundle up only a solitary application alongside its conditions. Virtual machines are regularly overseen by a hypervisor, while compartment frameworks give shared working framework administrations from the hidden host and seclude the applications utilizing virtual-memory equipment.

A key advantage of compartments is that they have less overhead contrasted with virtual machines. Holders incorporate just the pairs, libraries and other required conditions, and the application. Compartments that are on a similar host share a similar working framework bit, making holders a lot littler than virtual machines. Therefore, compartments boot quicker, augment worker assets, and make conveying applications simpler. Holders have become popular for use cases, for example, web applications, DevOps testing, micro services and amplifying the quantity of applications that can be conveyed per worker.

Virtual machines are bigger and more slow to boot than compartments. They are sensibly disengaged from each other, with their own working framework piece, and offer the advantages of a totally independent working framework. Virtual machines are best for running numerous applications together, solid applications, disengagement among applications, and for inheritance applications running on more established working frameworks. Holders and virtual machines may likewise be utilized together.


  • Many framework schemes can be used on similar PCs.
  • The virtual machine can provide a different direction set design (ISA) structure than the real PC. ISA acts as an interface between programmers and teams.
  • When creating a virtual machine, create a virtual hard disk. Therefore, everything on the computer may crash, but even if it does not happen, it will not affect the host.
  • Running virtual machines has security advantages. For example, if you need to use wrong security, you can do it in the visitor frame. In this way, if the app is indeed damaged, it will be temporary shortly after the visitor closes it. Similarly, the virtual machine considers the adoption of better security methods by observing the visitor’s defect frame and allowing the client to isolate it for inspection.


  • Virtual machines are not as capable as legitimate virtual machines because they bypass access to the computer. Running the plan at the beginning of the mainframe frame means that you must ask the administrator from the mainframe to the device. It reduces convenience.
  • If some virtual machines are running on similar hosts, and the running PC needs enough power, it may crash. The virtual machine actually uses the host’s assets. The higher the attention of the host PC, the faster the virtual machine will run.
  • The virtual machine may be contaminated by defects in the host. For example, the measurement limit is a common element in the framework. However, there is an error to ignore it. It only affects ordinary PCs without virtual machines. However, PCs with multiple virtual machines can also pollute these “computers.”


  1. Creasy, R. J. (1981). The origin of the VM/370 time-sharing system. IBM Journal of Research and Development, 25(5), 483-490.
  2. Sugerman, J., Venkitachalam, G., & Lim, B. H. (2001, June). Virtualizing I/O Devices on VMware Workstation’s Hosted Virtual Machine Monitor. In the USENIX Annual Technical Conference, General Track (pp. 1-14).
  3. Smith, J. E. (2017). Space-time computing with temporal neural networks. Synthesis Lectures on Computer Architecture, 12(2), i-215.
  4. Bugnion, E., Devine, S., Govil, K., & Rosenblum, M. (1997). Disco: Running commodity operating systems on scalable multiprocessors. ACM Transactions on Computer Systems (TOCS), 15(4), 412-447.
  5. Staff, V. (2012). Virtualization overview. White Paper, http://www. vmware. com/pdf/virtualization. pdf.
  6. Waldspurger, C. A. (2002). Memory resource management in VMware ESX server. ACM SIGOPS Operating Systems Review, 36(SI), 181-194.
  7. Huang, Q. (2006). An Introduction to Virtual Machines Implementation and Applications (Doctoral dissertation, The University of British Columbia).
  8. Barham, P., Dragovic, B., Fraser, K., Hand, S., Harris, T., Ho, A., … & Warfield, A. (2003). Xen and the art of virtualization. ACM SIGOPS operating systems review, 37(5), 164-177.
  9. Hardt, M., & Berlich, R. Xen Grid Site-the Art of Consolidation.
  10. Garfinkel, T., Pfaff, B., Chow, J., Rosenblum, M., & Boneh, D. (2003, October). Terra: A virtual machine-based platform for trusted computing. In Proceedings of the nineteenth ACM symposium on Operating systems principles (pp. 193-206).
  11. Huang, Q. (2006). An Introduction to Virtual Machines Implementation and Applications (Doctoral dissertation, The University of British Columbia).
  12. King, S. T., & Chen, P. M. (2003, October). Backtracking intrusions. In Proceedings of the nineteenth ACM symposium on Operating systems principles (pp. 223-236).