什么是虚拟机 Virtual Machine ?

虚拟机(VM)于20世纪60年代诞生。这篇我们将回答以下问题:什么是VM?为什么人们需要虚拟机?虚拟机在区块链项目中扮演什么角色?

那么,虚拟机到底是什么?最早出现在计算机世界中时,VM 的定义是真实计算机的副本。

但VM实际上有不同的种类。第一种称为 System VM ,系统虚拟机(也称为完全虚拟化虚拟机),它可以替代硬件机器。我们可以在上面运行未经修改的操作系统,如 Linux 或 Windows 。VirtualBox 和 VMware Server 就属于这类虚拟机,也是大家比较熟悉的。第二种是 Process VM,进程 VM ,它被设计为在独立于平台的环境中执行计算机程序。众所周知的 JVM 就是这种类型,我们可以在 JVM 上运行 Java 程序。

赵长鹏:Twitter价格可能略高,无论马斯克做出什么决定都会支持:金色财经消息,币安CEO赵长鹏在社交媒体回复网友时表示,Twitter的价格可能略高。但无论如何马斯克的决定如何,他都会支持。[2022/7/24 2:34:08]

Host 是一个跟 VM 紧密相关的概念。VM 毕竟是软件,所以必须要有真正的机器来运行它。上面运行了 VM 的真实机器,就叫做 Host ,宿主机。

声音 | Joseph Young:价格大跌或大涨不意味着什么 不应感到意外:加密货币分析师Joseph Young发推称,在过去的几个月里,加密市场的趋势没有任何改变。自去年11月以来,加密货币一直表现出较低的价格波动幅度。因此出现大幅下跌或上涨也不应感到意外,这并不意味着什么。[2019/1/10]

总而言之,VM 个运行在真实机器上的软件,提供操作系统(在系统VM的情况下)或应用程序(在进程 VM的情况下)的运行环境。

什么是 VM 聊完了,下面来聊 VM 能干些什么事。

第一个使用场景。当我的硬件 CPU 是 A 架构的,但是我要运行的程序只能在 B 架构的 CPU 上运行, VM 就会派上用场。

摩根大通CEO杰米戴蒙:关于比特币自己“不会再说什么了”:摩根大通CEO杰米戴蒙周三在达沃斯论坛期间接受CNBC采访时称,关于比特币自己“不会再说什么了”( “I’m not going to say anymore”)。去年十月戴蒙也有类似的承诺,在他把比特币定义为局后不久,戴蒙发誓不再谈论比特币。然而到了第二天,他就公开抨击比特币投资者是“愚蠢的”。今年一月初,他又称后悔说比特币是局。[2018/1/25]

第二个使用场景。当我只能买得起一台计算机,但是需要同时运行多个操作系统。比如,我在我的硬件机器上安装了Linux 桌面版,现在我想要运行 Linux 服务器来托管我的 Web 应用,还需要一个 Windows 来测试 Web 应用。这样,我就可以选择一个可以安装到 Linux 上的 VM 软件,比如 Virtual Box,把它安装到我的电脑上,然后启动两个 VM 实例就可以运行我需要的另外两个操作系统了。

第三个使用场景。让我的程序可以在各种平台上运行。为了不用给每个平台都写一个版本的代码并且专门编译一下, 我需要在每个操作系统之上添加一层来磨平平台差异,这时候 VM 就可以作为这一层来使用。比如,我只要编写一次 Java 程序,然后就可以在安装了 JVM 的任何平台上运行程序了。

VM 在实际工作中被广泛使用,以上其实还不是所有情形。

VM 在区块链领域也很常用。

如果你也搞区块链,所以大概率是已经知道以太坊虚拟机(EVM)了。EVM 可以让我们在以太坊上运行智能合约。大家可以在 EVM 上运行用一种名为 Solidity 的语言编写的程序。这让我们想起了刚才提到的 JVM ,JVM 和 EVM 都是进程 VM。

Nervos CKB 区块链也有自己的 VM,名为 CKB-VM 。CKB-VM 运行智能合约的方式跟 EVM 不一样。CKB-VM不为特定高级语言编写的程序提供支持,而是一个模仿 RISC-V CPU 硬件的 System VM。[RISC-V](https://zhuanlan.zhihu.com/p/53565685)是一个开源 CPU 架构。这种方式的好处是,可以用我们想要的任何高级编程语言写智能合约,然后将它编译为 RISC-V CPU 的二进制格式,就可以运行了。挺 Cool 的。

现在对区块链上的虚拟机原理是不是清晰了一些了呢。

关于 VM ,主体内容就是这些了。总结一下,VM 分为两种,系统 VM 和进程 VM 。EVM 可以归类为进程 VM ,CKB-VM 则属于系统 VM 。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

银河链

[0:46ms0-1:841ms