Virtualization

An History and Primer


I am tasked to lecture about the topic of "virtualization" in an Advanced Operating Systems course geared toward undergrads. Immediately, I am faced with a strange dilemma as I reread that course title. The words are vague! Certainly, the idea of "advanced" is challenging within a field, particularly this subfield, that moves as quickly as it does. Are obsolete systems no longer "advanced" as they become aged or obscure? Are they less rigorous, assuming the nature of "advanced" within the academy, when tooling abstracts them in some way?

Yet, it is the rest of the course title that, and you might think I'm joking and I'm certainly not, keeps me up at night. What is an "operating system" anyway? If Linux is an operating system and you run it inside a virtual machine, does it remain an operating system? If you put something inside a shell, where does the classical boundary between system and application get drawn? It is here, at this ambiguous frontier, that virtualization becomes both perilous and empowering. It is here that we are faced with redefining what operating systems actually are.

History

Mainframes: thought to be the only needed machine. Took up large rooms. Yet, the need to use the same machine for many purposes became common.

Timesharing -> virtualization (application isolation)

Ok, memory virtualization was first, as there wasn't much point to virtualizing anything else.

When computers get a bit more complicated... we need to virtualize more.

What is more expensive? Software or hardware. The great delimma.

Use-cases:

Software Licensing

(not important here, but possiblity important in a classroom setting)

Types

Full Virtualization

Para-virtualization

Hardware-assisted Virtualization

Hybrids

Modern hypervisors: Xen, KVM, VirtualBox/VMWare

UltraSPARC vs X86 (architectural challenges to virtualization: caching, complexity)

Meltdown/Spectre??

Containerization

Tags

programming, programming/systems, programming/c

Comments

If you'd like to comment, just send me an email at wilkie@xomb.org or on either Twitter or via my Mastodon profile. I would love to hear from you! Any opinions, criticism, etc are welcome.

Donations

If you'd like to make a donation, I don't know what is best for that. Let me know.

Copyright

All content off of this domain, unless otherwise noted or linked from a different domain, is licensed as CC0