(and Docker)
Kernel
Userland
Rings
Gates
Instructions
Privileged Instructions
Software that talks directly with your hardware
Everything not in the kernel
A mechanism to protect data and functionality from errors and malicious behaviour
Allows communication between outer and inner rings
Statements that run directly on your CPU
Statements that run directly on your CPU
that can only be called from the kernel
= Rings
= Gates
= Instructions
= Privileged
Instructions
Monks (privileged instructions) can never leave the monastery (ring 0, kernel land) and can only be addressed in the monastery.
Villagers(instructions) from the neighboring settlement (userland) may come to and from the monastery (ring 0, kernel land).
The creation of simulated resources to logically separate execution environments.
When someone says virtualization, they mean Hardware Virtualization
Hardware Virtualization
Can run multiple virtual computers under a physical one.
Underlying hardware that
provides shared computing resources
Secondary computers whose hardware is really provided by software running on the host
Can run multiple virtual computers under a physical one
Theory: 1959
Practice: 1966
Theory: 1959
Practice: 1974
Theory: 1963
Practice: 1974
Theory: 1959
Practice: 1972
Operating System Level Virtualization
But they have to be the same
Theory: 1974
Practice: 1982
Pros
Cons
Pros
Cons
Some systems are easier to virtualize via hardware than software
Additional layer makes it difficult for suspected bad-actors to interact with other systems
Protect data and functionality from faults (by improving fault tolerance) and malicious behaviour
The creation of simulated resources to logically separate execution environments
Lets you run multiple virtual computers under a physical one
Uses the underlying OS to create siloed userlands
Configuration tool that allows the deployment of containers via cgroups and kernel namespaces