为避免合约执行一些恶意行为,智能合约将它们放到一个 虚拟机 内执行,这个虚拟机没有权限访问文件系统、网络、磁盘等等资源。以太坊也很好地展现了虚拟机的可移植性特性,因为以太坊节点可以运行在多种计算机和操作系统上。使用虚拟机 使得智能合约的编写无需考虑将在什么平台运行。 2. LC-3 架构 我们的虚拟机将会模拟...
虚拟机不必很大或者能适应各种场景,老式的视频游戏 经常使用很小的虚拟机来提 供简单的脚本系统(scripting systems)。 虚拟机还适用于在一个安全的或隔离的环境中执行代码。一个例子就是垃圾回收(GC)。要在 C 或 C++ 之上实现一个自动垃圾回收机制并不容易 ,因为程序无法看到它自身的栈或变量。但是,虚拟机是在它...
虚拟机不必很大或者能适应各种场景,老式的视频游戏 经常使用很小的虚拟机来提 供简单的脚本系统(scripting systems)。 虚拟机还适用于在一个安全的或隔离的环境中执行代码。一个例子就是垃圾回收(GC)。要在 C 或 C++ 之上实现一个自动垃圾回收机制并不容易 ,因为程序无法看到它自身的栈或变量。但是,虚拟机是在它...
在计算领域,VM(虚拟机)是一个术语,指的是模拟/虚拟化计算机系统/架构的系统。 从广义上讲,有两类虚拟机: 系统虚拟机,可完全替代真实机器。它们实现了足够的功能,允许操作系统在它们上运行。他们可以共享和管理硬件,有时多个环境可以在同一台物理机器上运行而不会相互阻碍。 进程虚拟机更简单,旨在在与平台无关的...
现在我实现了虚拟机的读取、解码、执行的过程。但是要记住,我没有解码任何东西,因为我给出的是原始指令。 获取当前指令 因为我已将程序存储为一个数组,所以获取当前指令很简单。虚拟机有一个计数器,通常称为程序计数器,不过有时也叫做指令指针等,通常它们分别缩写为PC或IP。
虚拟机不必很大或者能适应各种场景,老式的视频游戏 经常使用很小的虚拟机来提 供简单的脚本系统(scripting systems)。 虚拟机还适用于在一个安全的或隔离的环境中执行代码。一个例子就是垃圾回收(GC)。要在 C 或 C++ 之上实现一个自动垃圾回收机制并不容易 ,因为程序无法看到它自身的栈或变量。但是,虚拟机是在它...
这与专用寄存器不同,例如在x86上,ip, flag, ds, …程序是只读指令集。如果虚拟机是一个基于栈的虚拟机,这意味着它有一个我们可以压栈和弹出值的栈,另外,该虚拟机还有一些我们也可以使用的寄存器。基于栈的虚拟机比基于寄存器的虚拟机实现起来要简单得多。
…程序是只读指令集。如果虚拟机是一个基于栈的虚拟机,这意味着它有一个我们可以压栈和弹出值的栈,另外,该虚拟机还有一些我们也可以使用的寄存器。基于栈的虚拟机比基于寄存器的虚拟机实现起来要简单得多。 下面是我将要实施的一个指令集的示例: PSH 5 ; pushes 5 to the stack ...
本文将教你编写一个自己的虚拟机(VM),这个虚拟机能够运行汇编语言编写的程序, 例如我朋友编写的 2048 或者我自己的 Roguelike。