Commit c6cb155
Changed files (1)
doc
doc/assignment1.md
@@ -276,9 +276,70 @@ Instructions: Please answer the following questions in about 1-2 pages each.
[execute system call]-|
```
-
1. Describe the overall structure of virtual machines, and compare VMware and JVM. (15 marks)
+ A virtual machine creates an abstraction over hardware to present
+ the illusion that the guest operating system is running on bare
+ metal hardware. The virtual machine provides an interface that
+ looks the same as the hardware that the guest operating system
+ thinks that it is interacting with.
+ This capability allows a host operating system to run multiple
+ guest operating systems on a single system.
+
+ A regular system would usually have a single operating sytem
+ like the following example:
+
+ ```plaintext
+ -------------
+ | |
+ | |
+ | processes |
+ | |
+ | |
+ -------------
+ | kernel |
+ -------------
+ | hardware |
+ -------------
+ ```
+
+ Virtual machines allow multiple operating systems
+ to run simultaneously while using the same hardware.
+ Each guest operating system is unaware that it
+ is sharing hardware with other guest operating systems.
+
+ ```plaintext
+ -------------
+ | | -------------
+ | |-----------| |
+ | processes | processes | processes |
+ | | | |
+ |-----------|-----------|-----------|
+ | kernel | kernel | kernel |
+ |-----------|-----------|-----------|
+ | VM1 | VM2 | VM3 |
+ -------------------------------------
+ | hypervisor |
+ -------------------------------------
+ | hardware |
+ -------------------------------------
+ ```
+
+ VMWare is a company that build virtual machine
+ technology to allow multiple guest operating systems
+ on a single machine.
+
+ The JVM is the Java Virtual Machine which acts
+ as a different type of virtual environment. The
+ JVM takes bytecode and converts it into architecture
+ specific instructions are run time using just in
+ time compilation. This type of virtual machine
+ allows programmers to write software in multiple
+ languages that compile down to JVM bytecode.
+ The same JVM bytecode can be used to conver it
+ to architecture specific instructions for different
+ platforms such as Microsoft Windows, Linux and macOS.
+
# Sources:
* [Wikipedia][wiki-von-neumann]