Commit c6cb155

mo khan <mo@mokhan.ca>
2021-02-08 20:48:12
describe virtual machines
1 parent 3728ace
Changed files (1)
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]