虚拟机(VM):类型、用途及在区块链项目中的角色

释放双眼,带上耳机,听听看~!
了解虚拟机(VM)的类型、用途以及在区块链项目中扮演的角色。探索EVM和CKB-VM在区块链中的应用,以及虚拟机在不同平台上的编程语言支持。

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

什么是虚拟机 VM ?

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

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

虚拟机(VM):类型、用途及在区块链项目中的角色

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

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

VM 有什么用?

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

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

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

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

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

区块链和 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 。

教程

渐进式荷兰拍卖(GDA):NFT和代币销售的新拍卖机制解析

2024-1-22 20:57:00

教程

区块链类型及应用解析:公有链、私有链、联盟链

2024-1-22 21:04:00

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索