1764: XKCDE
XKCDE |
Title text: 4. They unplug the root machine but the thousands of leaf VMs scatter in the wind and start spinning up new instances wherever they land |
Explanation
This explanation may be incomplete or incorrect: Barebones and possibly inaccurate. If you can address this issue, please edit the page! Thanks. |
Randall has created a theoretical software environment named XKCDE (a pun on XKCD + CDE = Collaborative Development Environment), which relies on the user creating a series of nested virtual machines inside each other, which would likely cause extreme strain on the resources of the machine running it. Virtual Machines are software which pretend to be PC hardware so that a "guest" operating system can run inside of them, under a "host" operating system. Nesting VMs is the process of making a guest also be a host to yet another guest. Generally this is considered quite wasteful of resources, especially beyond one or two layers deep, and is not done except in a test lab for very specific purposes. Randall's theoretical XKCDE requires it for its required use, by its very nature.
He suggests continuing that process until the user gets fired, which will very likely lead to the environment not having many active users, a very counter-productive approach to software development.
A software environment which disables both the machine it runs on and the user that runs it could be thought of as a useless machine.
Transcript
- [Some text is displayed above a box, listing some steps.]
- Installing the xkcd development environment
- 1. Spin up a VM
- 2. Spin up a VM inside that VM
- 3. Continue spinning up nested VMs and containers until you get fired
Discussion
The title text reminds me of the Dust Theory in Greg Egan's _Permutation City_. 141.101.104.72 07:45, 25 November 2016 (UTC)
It reminds me of Mushroom Spawns.--162.158.91.71 11:52, 25 November 2016 (UTC)
Nested virtualization to three layers... --162.158.133.150 09:46, 25 November 2016 (UTC)
Possible pun on existing desktop environments: KDE, CDE, LXDE, XFCE,... -> XKCDE (relies on conics using only upper-case letters). --JakubNarebski (talk) 10:51, 25 November 2016 (UTC)
^ This is a more plausible explanation ([CDE: Common Desktop Environment: https://en.wikipedia.org/wiki/Common_Desktop_Environment) than "Collaborative Development Environment) mentioned in the explanation above. SabreWolfy (talk) 09:44, 26 November 2016 (UTC)
The title text is a take on poetry. It extends from the abstract tree (which is a digram and a datastructure type) to an actual tree with unpluggable roots and leafs which scatter in the wind and finally land spinning. Sebastian --162.158.91.97 11:00, 25 November 2016 (UTC)
Title text may bear an oncology reference, with the "root machine" being a primary tumor and the "leaf VMs" its metastases, which also (can) proliferate to form a new tumor on whatever tissue they land (even long after the primary tumor is destroyed). 162.158.234.218 13:26, 25 November 2016 (UTC)
The "Pastels.com" link is already broken, and this comic is new for today??? Either somebody forgot to check the link or whoever owned the domain brought it down rather abruptly. --162.158.75.95 18:39, 25 November 2016 (UTC)
Humans have used similar stacking arrangements in many different ways before. From Shakespeare's plays within plays, TV shows within shows, or characters within a story writing about an author writing a book. In the case of a book author, the 4th step might actually work - other authors, or fan-fiction writers might continue to tell stories about a character long after the original author is dead. A webcomic might be made satirizing a Krillin fanfic, that is referring to the character from Dragonball, a story whose main character is Goku, based on Sun Goku from the Journey to the West which is a retelling of Xuanzang's own account, Great Tang Records on the Western Regions which contains Buddist parables that describe a Master teaching a Student about the nature of Buddha a state of being exemplified by the achievements of Siddhartha Buddha who gain enlightenment after meditating on the lives of thousands of people. I think we as humans are good at stacking such virtual environments because it is a prerequisite of properly developed empathy, which requires tracing, sometimes long and elaborate, chains of relationships based on what someone else thinks another person might think of somebody else's behavior. 162.158.214.231 19:42, 25 November 2016 (UTC)
I wonder how many xkcd comics contain lowercase letters (like 's' in "VMs")... --172.68.54.123 19:36, 25 November 2016 (UTC)
we need to go deeper162.158.59.173 04:27, 27 November 2016 (UTC)Guest User that doesn't know what they're doing
The current explanation doesn't clarify "containers;" I expect Randall is thinking of a software container which allows you to deploy a service such as a database engine in isolation from other services using a minimum of resources. This comic makes me think of my experience trying to use Docker on Windows. Docker is among the most popular software container systems, but is tightly bound to Linux, so deploying a Docker container under Windows (or Mac OS X) requires that you first deploy a virtual machine, thus negating some of the benefit of using containers and pushing the software running in the container down yet another level. Davidhbrown (talk) 19:11, 27 November 2016 (UTC)
Protecting seeds, especially light ones that autorotate, from fall damage seems pretty far-fetched. The autorotation of seeds more likely serves to increase the time they take to fall, thus increasing the distance they travel in the wind. 108.162.241.53 13:14, 28 November 2016 (UTC)
I wrote this a while back which nests KVM indefinitely -- or at least in theory, in practice I can only get to L4 on hardware I have available. http://git.annexia.org/?p=supernested.git;a=summary 141.101.98.219 18:12, 28 November 2016 (UTC)
A slightly simpler, but more error prone script.
#!/bin/bash # If you hate yourself, (DO NOT DO THIS) set file=/dev/sda and add this script to init. Expect corruption. # Untested, though I came close to running it on accident. VM_Drive='format=raw,file=__Enter_A_Modified_Run_From_Ram_Img__,if=virtio' MemAvail=$(free -m | grep '^Mem:' | awk '{print $7}') MemUsed=$(free -m | grep '^Mem:' | awk '{print $3}') VM_Mem=$(echo "$MemAvail - 10" | bc -l) ProcessorCnt=$(grep '^processor' /proc/cpuinfo | wc -l) if [[ "$VM_Mem" -ge "$MemUsed" ]] ; then echo "-------------Still have ${MemAvail}M and only using ${MemUsed}M. Spinning up another!-------------" qemu-system-x86_64 --enable-kvm -cpu host -smp $ProcessorCnt -m $VM_Mem -drive $VM_Drive else echo "!!!!!!!!!!!!!Only have ${MemAvail}M and using ${MemUsed}M. Not spinning up any more!!!!!!!!!!!!!!" fi
108.162.221.117 13:27, 29 November 2016 (UTC)
See also https://www.pcsteps.com/508-nested-virtualization/ where someone actually tried this and got four layers deep.