nLab
virtual machine

In computer science, a virtual machine is a simulation of a fixed architecture executing some sort of signaling or software. It can abstract an entire or part of hardware, firmware, a file system with some ports, devices and/or CPU and installed operating system, but it can be simply an isolated environment executing some specified class of software, or simply any installation in hardware or in another virtual machine of a specified execution model. For example, Java Virtual Machine executes formally specified “bytecode” to ensure identical execution on all hardware.

See also certified programming, WebAssembly

Virtual machines for cloud

Virtual machine simulating machine with operating system

Containers

Blockchain runtimes for multiple blockchains

Microsoft Azure develops a runtime framework intended to work on various blockchains. This is the CoCo project (see whitepaper 2017 at github pdf, announcement and a presentation on Medium).

Languages for simulation of devices

Bytecode virtual machines

Java Virtual Machine

Java VM has a specification which executes Java bytecode. Several languages compile to JVM including Java, Kotlin and Scala.

WebAssembly VM

WebAssembly is optimized for small compiling time and near native execution time on major architectures (like 86 series). It appeared first as new VM standard on web browsers, backed by major internet companies; it is also used or planned on a number of blockchain projects.

Rust has small runtime, which is desirable in common applications of WebAssembly. Thus Rust commonly compiles either to native code or to wasm.

  • Rust & WebAssembly with Nick Fitzgerald yt

Ethereum flavoured version of wasm VM specification is at github/ewasm, see also github/ewasm/design. eWasm has a testnet. According to article ewasm explained,

The ewasm specification consists of a subset of WebAssembly components suitable for Ethereum’s needs, namely determinism and relevant features. It also includes a number of system smart contracts that provide access to Ethereum platform features.

IELE

Part of Cardano project, IELE executes and verifies smart contracts as well as providing a human-readable language for blockchain developers.

  • IELE, Semantics based compilation, at iohkdev.io

Ethereum VM

Primarily used for smart contract execution on Ethereum blockchain (and some others blockchains, like Hyperledger Fabric). Ethereum community has plans to supercede it with Ethereum version of wasm VM (ewasm).

TON VM

Used for executing smart contracts on Telegram Open Network. See

CKB VM (Nervos)

This is a RISC-V VM for a Nervos blockchain design. “Uses rv64imc architecture: it is based on core RV64I ISA with M standard extension for integer multiplication and division, and C standard extension for RCV(RISC-V Compressed Instructions).” No floating point.

Created on May 1, 2019 at 11:34:53. See the history of this page for a list of all contributions to it.