diff options
author | Elizabeth Hunt <elizabeth.hunt@simponic.xyz> | 2023-09-25 10:36:23 -0600 |
---|---|---|
committer | Elizabeth Hunt <elizabeth.hunt@simponic.xyz> | 2023-09-25 10:36:23 -0600 |
commit | 58c73fd511b77cb94124b71a4bb75c7ab6a6d8bc (patch) | |
tree | 25ae52afe365de29973efbb10fdecf2712deb430 /homeworks/virtualization | |
parent | 2e284b71500a1f8dc6cc46ecf21eb1e9389ea780 (diff) | |
download | cmath-58c73fd511b77cb94124b71a4bb75c7ab6a6d8bc.tar.gz cmath-58c73fd511b77cb94124b71a4bb75c7ab6a6d8bc.zip |
add september notes & hw2 code / pdf
Diffstat (limited to 'homeworks/virtualization')
-rw-r--r-- | homeworks/virtualization/hw1.pdf | bin | 0 -> 62372 bytes | |||
-rw-r--r-- | homeworks/virtualization/img/htop.png | bin | 0 -> 36968 bytes | |||
-rw-r--r-- | homeworks/virtualization/img/no_virtualization.png | bin | 0 -> 37567 bytes | |||
-rw-r--r-- | homeworks/virtualization/virtual_machines.md | 41 | ||||
-rw-r--r-- | homeworks/virtualization/virtualization.md | 103 |
5 files changed, 144 insertions, 0 deletions
diff --git a/homeworks/virtualization/hw1.pdf b/homeworks/virtualization/hw1.pdf Binary files differnew file mode 100644 index 0000000..00d84a4 --- /dev/null +++ b/homeworks/virtualization/hw1.pdf diff --git a/homeworks/virtualization/img/htop.png b/homeworks/virtualization/img/htop.png Binary files differnew file mode 100644 index 0000000..880befa --- /dev/null +++ b/homeworks/virtualization/img/htop.png diff --git a/homeworks/virtualization/img/no_virtualization.png b/homeworks/virtualization/img/no_virtualization.png Binary files differnew file mode 100644 index 0000000..2322456 --- /dev/null +++ b/homeworks/virtualization/img/no_virtualization.png diff --git a/homeworks/virtualization/virtual_machines.md b/homeworks/virtualization/virtual_machines.md new file mode 100644 index 0000000..c6d3e12 --- /dev/null +++ b/homeworks/virtualization/virtual_machines.md @@ -0,0 +1,41 @@ +* Elizabeth Hunt (A02364151), MATH 4610 + +## Virtual Machines + +**Question 1** + +Run the Linux OS as a virtual machine, or run the application in a containerized Linux environment (which +is the same abstraction). + +**Question 2** + +A native system virtual machine has dedicated hardware to run the hypervisor, while a hosted system +virtual machine runs a hypervisor as a process in the operating system. + +**Question 3** + +A virtual machine hosts an entire operating system and requires users to perform configuration if they +want to run an application, whereas a Virtual Appliance is built to provide an easy plug-and-play virtual +machine image built to run some specific software stack. + +**Question 4** + +In a large application sense, containerizing services into their own virtual machines allows for easier +replication, scaling, and networking. Instead of running several smaller servers, one large server can +host several applications in parallel. This provides a good seperation of concern. And, if one service +goes down, the whole system does not go down with it. + +Locally, it can help in development when targeting another operating system. Virtual machines can be +used to verify builds without installing a whole other operating system. + +**Question 5** + +A virtual machine monitor is just another term for a hypervisor, so, see question 2. + +**Question 6** + +The three components of a virtual machine are: + +1. The host +2. The virtualization layer +3. The guest diff --git a/homeworks/virtualization/virtualization.md b/homeworks/virtualization/virtualization.md new file mode 100644 index 0000000..4d03637 --- /dev/null +++ b/homeworks/virtualization/virtualization.md @@ -0,0 +1,103 @@ +## Virtualization + +**Question 1** + +I use an Apple Silicon Mac which is based on the ARM architecture - so it's necessary to use +[Multipass](https://multipass.run/), as native virtualization is _not available to us_. + + + +**Question 2** + +One of the downsides of running a virtual machine, as opposed to a hosted virtual instance, is that local +resources are used. On a laptop especially, this increases power draw, draining the battery. Additionally, +the security of mind provided by "faster disaster recovery", as discussed in the article, is not as +necessary for consumer applications on personal machines as servers. Finally, virtual machines are +inherently slower in compute due to general overhead. + +**Question 3** + + + +**Question 4** + +In a large application sense, containerizing services into their own virtual machines allows for easier +replication, scaling, and networking. Instead of running several smaller servers, one large server can +host several applications in parallel. + +Locally, it can help in development when targeting another operating system. Virtual machines can be +used to verify builds without installing a whole other operating system. + +**Question 5** + +A native system virtual machine has dedicated hardware to run the hypervisor, while a hosted system +virtual machine runs a hypervisor as a process in the operating system. + +**Question 6** + +1. Easier networking between "servers" +2. Efficient resource use + +**Question 7** + +A Virtual Appliance is built to provide an easy plug-and-play virtual machine image built to run some +specific software stack. + +**Question 8** + +A Virtual Appliance would be desirable to eliminate maintenance and configuration overhead when running an +application. In my own experience, I've used a form of virtual appliances - "Docker Containers", to easily +spin up multiple versions of small services at work. + +**Question 9** What are 2 benefits of Virtualization? + +See question 6. + +**Question 10** + +See question 4. + +**Question 11** + +See question 8. + +**Question 12** What are the three main types of virtualization? + +1. Full virtualization +2. Para virtualization +3. OS-level virtualization + +**Question 13** What you should know about virtualization? + +How to create a virtual machine, and maintain it. + +**Question 14** What is the weakness of virtualization? + +Inherent overhead in all system operations. + +**Question 15** What are the six areas of virtualization? + +Source: [HiTechNectar](https://www.hitechnectar.com/blogs/virtualization-types) + +1. Application - run individual applications in a seperate environment than a host OS +2. Data - abstract exact location and formatting information away from retrieval of data +3. Desktop - hosts a desktop environment virtually on another machine (reminds me of mainframes). +4. Network - physical networking tools are abstracted into software resources +5. Server - division of a server into multiple guest operating systems +6. Storage - abstraction over multiple storage arrays into a single pool + +**Question 16** What is the biggest challenge in virtualization? + +Resource distribution is a big one; it's difficult to keep track of several resources on a host machine +and ensure a Virtual Machine accesses them correctly. + +**Question 17** What is the risk of using virtualization? + +The biggest risk of using virtualization is sandbox escape vulnerabilities. Although mostly research and +proof-of-concept, highly skilled engineers can theoretically craft exploits to escape the sandbox of the +VM and directly mess with the host operating system. + +**Question 18** + +When (question 17) is trusted; sandboxing. Virtualization should supply no access to resources within the +host operating system. |