> For the complete documentation index, see [llms.txt](https://davidjosearaujo.gitbook.io/notes-miect/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://davidjosearaujo.gitbook.io/notes-miect/computacao-distribuida/containers/vms-vs-containers.md).

# VM's vs Containers

OS-level virtual machines (e.g. Xen):

* Do not make virtualization completely available at the OS level:
  * Only the OS services are virtual.
  * *Host Kernel*: Virtualizes its services in isolation from its tenants.

## **Container**

**Isolates the execution environment** of one or more processes.

To consider:

* **Isolation/Visibility:** limit what can be seen by the tenants.
* **Resource control:** limit resource consumption.
* **Portability:** can reconstruct the same environment in multiple hosts.

<figure><img src="https://2387753953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9sVneYw7epWOEEPKsfCf%2Fuploads%2F2hqwGertNF5iCiDsBt9x%2Fa.png?alt=media&amp;token=82316054-c8be-481b-bc19-c8ffec2f9591" alt=""><figcaption></figcaption></figure>

Container-based virtualization depends on OS mechanisms to reach application isolation.
