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.
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.
- Software Testing
- Archival/Preservation - emulation, legacy-systems for legacy software, etc
- Cloud Execution (and their platforms)
(not important here, but possiblity important in a classroom setting)
Modern hypervisors: Xen, KVM, VirtualBox/VMWare
UltraSPARC vs X86 (architectural challenges to virtualization: caching, complexity)
LXC, Docker, other efforts
If you'd like to make a donation, I don't know what is best for that. Let me know.
All content off of this domain, unless otherwise noted or linked from a different domain, is licensed as CC0