区块链入门系列 | 什么是虚拟机 Virtual Machine ?

栏目: 服务器 · 发布时间: 5年前

内容简介:虚拟机(VM)于20世纪60年代诞生。 这篇我们将回答以下问题:什么是VM? 为什么人们需要虚拟机?虚拟机在区块链项目中扮演什么角色?那么,虚拟机到底是什么? 最早出现在计算机世界中时,VM 的定义是真实计算机的副本。但VM实际上有不同的种类。 第一种称为 System VM ,系统虚拟机(也称为完全虚拟化虚拟机),它可以替代硬件机器。我们可以在上面运行未经修改的操作系统,如 Linux 或 Windows 。 VirtualBox 和 VMware Server 就属于这类虚拟机,也是大家比较熟悉的。第二

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

什么是虚拟机 VM ?

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

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

区块链入门系列 | 什么是虚拟机 Virtual Machine ?

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 。

参考:

本篇的英文版 https://medium.com/nervosnetwork/an-introduction-to-ckb-vm-9d95678a7757 https://en.wikipedia.org/wiki/Ethereum#Virtual_Machine


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

系统程序员成长计划

系统程序员成长计划

李先静 / 人民邮电出版社 / 2010-04 / 45.00

在学习程序开发的过程中,你是否总是为自己遇到的一些问题头疼不已,你是否还在为写不出代码而心急如焚?作为软件开发人员,你是否时时为自己如何成为一名合格的程序员而困惑不已?没关系,本书将为你排忧解难。 这是一本介绍系统程序开发方法的书。书中结合内容详尽的代码细致讲述了不少底层程序开发基础知识,并在逐步深入的过程中介绍了一些简单实用的应用程序,最后还讲述了一些软件工程方面的内容,内容全面,语言生动......一起来看看 《系统程序员成长计划》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

随机密码生成器
随机密码生成器

多种字符组合密码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换