drawer logo

What is a Virtual Machine?

A virtual machine (VM) is a software representation of a computer and VM technology that’s related to DLT as a platform for digital transformation, business innovation and industry disruption. A VM can run software that’s independent from the underlying machine (aka the host) that it runs on.

Related Terms:

Ethereum Virtual Machine (EVM)

Source Code

A virtual machine (VM) is a software representation of a computer and VM technology that’s significantly relevant to Distributed Ledger Technology (DLT) as a platform for digital transformation, business innovation and industry disruption. A VM is able to run software that is completely independent from the underlying machine, aka “the host,” that it runs on. For instance, even though Microsoft’s Windows operating system and the applications that are written for it are technically incompatible with Apple computers, VM technology can use an Apple computer to virtually create the same Intel-based environment as the one Windows expects in order to run itself and the Windows-based applications it supports. In this example, an installation of Windows (and the applications that are installed to run on that copy of Windows) would be completely unaware that it’s running on Apple hardware.

To the extent that a virtual, software-based environment represents the equivalent of some other machine, that environment is referred to as a VM. Virtualizating a machine in this way typically requires a hypervisor; middleware (also known as a VM monitor) that serves as a bridge between the host’s operating system (e.g., Mac OS X); and a layer of software that emulates the type of virtualized machine (e.g., an Intel-based server).

When a VM is running on a host in this fashion, it is referred to as the guest VM or just the “guest.”

One physical host computer can support several guests, each of which can contain their own operating system and applications. Amazon’s Elastic Compute service relies heavily on machine virtualization to make one computer look like ten or more computers, each of which run independent of each other and could be running completely different operating systems. Whereas one VM may be running a Windows Server, another could be running Ubuntu Linux, both of which, thanks to the hypervisor, are running independently of the underlying host server’s hardware and operating system.

One of the chief value propositions of VM technology is the portability of the guests; the ability to move whatever operating system, applications or other software that has been installed into a guest VM — collectively known as the VM’s image (essentially a file in a folder on your hard drive) — to another host system with a hypervisor that is 100% compatible with the one found on the original system.

In the early 2000’s, this portability was a key factor in the growth of the Java software ecosystem. The existence of the same Java Virtual Machine (JVM) for differently architected host systems made it possible for enterprises to write their business logic in the Java programming language once, and run it, unchanged, almost anywhere that a JVM was present. Not only did this portability make it possible for enterprises to target multiple customer environments with the same code base, it also enabled enterprises to make wholesale swaps of the underlying host hardware and operating systems that powered their server-based installations of the JVM (known previously as Java 2 Enterprise Edition or J2EE). The JVM’s emergence as a standard form of middleware resulted in enormous rivalries between the different providers of J2EE servers such as Sun (eventually acquired by Oracle) and IBM. Meanwhile, businesses could write or buy software intended to run on the JVM and pit the competing J2EE server providers against one another on hardware, software and support pricing.

VM technology is critical to a distributed ledger’s ability to programmatically unlock the unique capabilities and functionalities of blockchain using custom-developed business logic. This business logic — packaged in special-purpose DLT applications known as smart contracts — invariably depends on the presence of a VM on the nodes that are responsible for a distributed ledger’s operation.

As with all VM technologies, the VMs that support smart contracts are typically isolated from the host operating systems and hardware found on those nodes. However, not all distributed ledgers rely on the same VM technology to run their smart contracts. Similar to the way the JVM and its companion Java programming language emerged as de facto standards for custom business logic development in the application server industry, the Ethereum Virtual Machine (EVM) and its companion programming language Solidity are emerging as the de facto standard in the smart contract-enabled distributed ledger industry. But not all smart contract-enabled distributed ledgers natively offer EVM or Solidity compatibility. Some depend on non-EVM compatible VMs and lesser known companion languages.

Related Blockchain Journal Articles

interview

Hyperledger Open Source Blockchain Project Looks To Make Enterprise Inroads With New Java Offering
footer logo

© 2024 Blockchain Journal