[1764] 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<

Origin:https://xkcd.com/1764/

https://www.explainxkcd.com/wiki/index.php/1764:_XKCDE

XKCDE

4. 他們拔掉了宿主機器的插頭,但成千上萬的子 VM 隨風飄散,一落地就長出更多的 instance。

https://xkcd.tw/1764

Randall创建了一个名为XKCDE的理论软件环境(xkcd和CDE(协作开发环境)上的portmanteau),它依赖于用户在彼此内部创建一系列嵌套虚拟机(创建Droste效果的数字版本) ,这可能会对运行它的机器的资源造成极大的压力。该菌株在676中解释:抽象,至少对于正常情况。

“虚拟机”是假装为PC硬件的软件,因此“客户”操作系统可以在“主机”操作系统下运行。嵌套虚拟机是使访客也成为另一位访客的主机的过程。一般来说,这被认为是浪费资源,特别是超过一层或两层深度,并且除非在测试实验室中用于非常特定的目的,否则不会这样做。

“容器”是一种较轻的PC抽象形式。它们不是模拟整个物理硬件,而是模拟位于内核之上的软件堆栈。容器化工具将拥有自己的标准库,软件堆栈和已安装的程序,但会将所有系统调用委托给主机内核。

这样更有效,因为不需要模拟硬件,但缺点是减少了主机和客户机之间的隔离。行为不端的客户可能会导致内核崩溃,导致主机与它们发生冲突。

容器软件最着名的例子是Docker。

兰德尔在嵌套虚拟机的永无止境的分形中重复嵌套广告荒谬的幽默,从而以书呆子狙击的形式永远捕获指令的追随者:任何外部观察者,例如你的老板,看到你这样做是可能会因为浪费公司时间而解雇你(结果是不可取的,但仍然比被卡车击中更好[需要引证])。 [1]

禁用运行它的机器和运行它的用户的软件环境可以被认为是无用的机器。

标题文本是抽象数据结构中使用的词根和叶子上的一个笑话,它绘制了一个类似于切割树(拔掉根机器)散射叶子(嵌套VM)的类比。

“旋转”中隐藏着一种微妙的双关语:几种树种使用旋转叶子来分散它们的种子。由于叶子的特殊形状导致的自转有助于种子从其父树上进一步传播到风中。 Randall将“旋转”的含义与“旋转虚拟机”的行为混合在一起,这是用于启动客户虚拟机新实例的口语措辞。

随着种子长成一棵新的树落在其中,所以分散的VM显然会在它们着陆的地方掀起新的自我。

在这种情况下,一个字面上的解释是,关闭运行VM的计算机会使所有没有运行任何虚拟机的虚拟机通过网络传播,并将自己安装在其他计算机上,这些计算机最终会在是一种非常低效的创建病毒的方法。

现实生活实践[编辑]

在“正常”软件开发中,启动(单个,非嵌套)VM是一种实践,以确保开发人员之间的开发环境相同,从而最大限度地减少因本地机器差异而导致的难以重现的错误,例如不匹配的库版本,区域设置或其他已安装或缺失的软件。

单个VM映像在所有开发人员之间共享,每个开发人员都在自己的个人工作站上启动自己的实例。

在这种情况下,启动VM是启动本地开发环境的第一步,之后其他步骤通常会指示打开哪些程序,更改哪些配置设置等。

有人有4级深度。

Leave a Reply

Your email address will not be published. Required fields are marked *

Categories