Survey
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
• Virtual Machine
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Application programming interface API sharing and reuse via virtual machine
1
Some languages like those running in a
virtual machine (e.g. .NET CLI compliant
languages in the Common Language
Runtime and JVM compliant languages in
the Java Virtual Machine) can share API.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Application programming interface API sharing and reuse via virtual machine
1
In this case the virtual machine enables
the language interoperation thanks to the
common denominator of the virtual
machine that abstracts from the specific
language using an intermediate bytecode
and its language binding.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine
1
Kernel-based Virtual Machine (KVM) is a
virtualization infrastructure for the Linux
kernel which turns it into a hypervisor.
KVM requires a processor with hardware
virtualization extension. KVM has also
been ported to FreeBSD and Illumos in the
form of loadable kernel modules.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine
1
KVM originally supported x86 processors
and has been ported to S/390, PowerPC,
and IA-64. An ARM port was merged
during the 3.9 kernel merge window.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine
1
A wide variety of guest Operating Systems
work with KVM, including many flavours of
Linux, BSD, Solaris, Windows, Haiku,
ReactOS, Plan 9, and AROS Research
Operating System. In addition Android 2.2,
GNU/Hurd (Debian K16), Minix 3.1.2a,
Solaris 10 U3, Darwin 8.0.1 and more OSs
and some newer versions of these with
limitations are known to work. A modified
version of QEMU can use KVM to run Mac
OS X.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine
Paravirtualization support for certain
devices is available for Linux, OpenBSD,
FreeBSD, NetBSD, Plan 9 and Windows
guests using the VirtIO framework. This
supports a paravirtual Ethernet card, a
paravirtual disk I/O controller, a balloon
device for adjusting guest memory usage,
and a VGA graphics interface using SPICE
or VMware drivers.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine
1
KVM uses SeaBIOS.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine
Linux 2.6.20 (released February
2007) was the first to include KVM.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine - Design
By itself, KVM does not perform any
emulation. Instead, it simply exposes the
/dev/kvm interface, with which a userspace host can then:
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine - Design
1
Set up the guest VM's address space. The
host must also supply a firmware image
(usually a custom BIOS when emulating
PCs) with which the guest can bootstrap
into its main OS.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine - Design
1
Feed it simulated I/O.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine - Design
1
On Linux, QEMU versions 0.10.1 and later
is one such host. It will use KVM when
available to virtualize guests at near-native
speeds, but otherwise fall back to
software-only emulation.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine - Licensing
1
KVM's parts are licensed
under various GNU
licenses:
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine - Licensing
QEMU virtual CPU core
library (libqemu.a) and
QEMU PC system emulator:
LGPL
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine - Licensing
Linux user mode
QEMU emulator: GPL
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine - Licensing
BIOS files (bios.bin,
vgabios.bin and vgabioscirrus.bin): LGPL v2 or later
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine - History
1
Avi Kivity began the development of KVM
at Qumranet, a technology startup
company. Red Hat bought Qumranet in
2008. KVM is maintained by Paolo Bonzini
and Gleb Natapov.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine - Graphical management tools
Archipel – An opensource libvirt-based
Web UI, which uses XMPP to
communicate with its "agents" installed on
servers
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine - Graphical management tools
Virtual Machine Manager – Supports
creating, editing, starting, and stopping
KVM-based virtual machines, as well as
live or cold drag-and-drop migration of
VMs between hosts.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine - Graphical management tools
ConVirt – Manages creating, editing,
starting, and stopping KVM-based virtual
machines, as well as live or cold drag-anddrop migration of VMs between hosts.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine - Graphical management tools
Proxmox Virtual Environment – Free
virtualization management package
including KVM and OpenVZ. It has a baremetal installer, a web-based remote
management GUI, and optional
commercial support.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine - Graphical management tools
1
OpenNode – RHEL/CentOS-based opensource server virtualization and
management solution with a simple baremetal installer, providing KVM+OpenVZ
host and standard libvirt, func
management interfaces together with
standard CLI tools like virsh and vzctl.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine - Graphical management tools
1
OpenQRM - Management platform for managing
heterogeneous data center infrastructures.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine - Graphical management tools
SolusVM – Supports the management of KVMbased virtual machines as well as Xen and OpenVZ.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine - Graphical management tools
Virtualizor – Supports the management of KVMbased virtual machines as well as Xen and OpenVZ.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine - Emulated hardware
1
Video card Cirrus CLGD 5446 PCI VGA card or
dummy VGA card with Bochs VESA extensions
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine - Emulated hardware
1
Input devicePS/2 Mouse
and Keyboard
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine - Emulated hardware
1
Sound card Sound Blaster 16, ENSONIQ AudioPCI
ES1370, Gravis Ultrasound GF1, CS4231A
compatible
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine - Implementations
1
Illumos based distributions
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine - Implementations
Red Hat Enterprise
Linux (RHEL) 5.4 and
above
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine - Implementations
1
SUSE Linux Enterprise Server
(SLES) 11 SP1 and above
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual Machine Manager - Features
see performance &
utilization statistics for
each VM
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual Machine Manager - Features
1
view all running VMs and hosts and their live
performance & resource utilization statistics.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual Machine Manager - Features
1
use KVM, Xen or QEMU
virtual machines, running
either locally or remotely.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual Machine Manager - Distributions including Virtual Machine Manager
1
Virtual Machine Manager comes as
the virt-manager package in:
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual Machine Manager - Distributions including Virtual Machine Manager
1
Opensuse (since release 10.3)
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual Machine Manager - Distributions including Virtual Machine Manager
1
Ubuntu (version 8.04
and above)
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual Machine Manager - Distributions including Virtual Machine Manager
1
Oracle Linux
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual Machine Manager - Documentation
1
Documentation exists both inside
Virtual Machine Manager and at its
website.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual Machine Manager - Documentation
1
Red Hat Enterprise Linux virtualization
documentation comes as three guides
Administration, Getting Started and Host
Configuration and Guest Installation.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual Machine Manager - Documentation
Ubuntu 8.04 virtualization
documentation comes with the
Ubuntu Server Guide.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine
A virtual machine (VM) is a software
based, fictive computer. Virtual machines
may be based on specifications of a
hypothetical computer or emulate the
computer architecture and functions of a
real world computer.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - Definitions
A virtual machine (VM) is a software
implementation of a machine (i.e. a
computer) that executes programs like a
physical machine. Virtual machines are
separated into two major classifications,
based on their use and degree of
correspondence to any real machine:
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - Definitions
These usually emulate an existing
architecture, and are built with the purpose of
either providing a platform to run programs
where the real hardware is not available for
use (for example, executing software on
otherwise obsolete platforms), or of having
multiple instances of virtual machines leading
to more efficient use of computing resources,
both in terms of energy consumption and cost
effectiveness (known as hardware
virtualization, the key to a cloud computing
environment), or both.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - Definitions
An essential characteristic of a virtual
machine is that the software running inside
is limited to the resources and abstractions
provided by the virtual machine—it cannot
break out of its virtual environment.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - Definitions
1
A virtual machine was originally defined by
Popek and Goldberg as "an efficient,
isolated duplicate of a real machine".
Current use includes virtual machines
which have no direct correspondence to
any real hardware.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - System virtual machines
1
multiple OS environments can co-exist on the same
computer, in strong isolation from each other
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - System virtual machines
the virtual machine can provide an
instruction set architecture (ISA) that is
somewhat different from that of the real
machine
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - System virtual machines
when multiple VMs are concurrently
running on the same physical host, each
VM may exhibit a varying and unstable
performance (Speed of Execution, and not
results), which highly depends on the
workload imposed on the system by other
VMs, unless proper techniques are used
for temporal isolation among virtual
machines.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - System virtual machines
Multiple VMs each running their own
Operating System (called guest Operating
System) are frequently used in server
consolidation, where different services that
used to run on individual machines to
avoid interference are instead run in
separate VMs on the same physical
machine.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - System virtual machines
Unlike virtual memory, a system virtual
machine allowed the user to use privileged
instructions in his code
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - System virtual machines
This is particularly useful for read-only
pages, such as those ones containing
code segments, especially in the case of
multiple virtual machines running the same
or similar software, such as the Operating
System, software libraries, web server,
middleware components, etc..
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - System virtual machines
1
The guest OSes do not have to be compliant
with the hardware making it possible to run
different OSes on the same computer (e.g.,
Microsoft Windows and Linux, or older
versions of an OS to support software that
has not yet been ported to the latest version).
The use of virtual machines to support
different guest OSes is becoming popular in
embedded systems; a typical use is to
support a real-time Operating System at the
same time as a high-level OS such as Linux
or Windows.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - System virtual machines
1
Another use is to sandbox an OS that is
not trusted, possibly because it is a
system under development. Virtual
machines have other advantages for OS
development, including better debugging
access and faster reboots.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - Process virtual machines
A process VM, sometimes called an
application virtual machine, or Managed
Runtime Environment (MRE), runs as a
normal application inside a host OS and
supports a single process. It is created when
that process is started and destroyed when it
exits. Its purpose is to provide a platformindependent programming environment that
abstracts away details of the underlying
hardware or operating system, and allows a
program to execute in the same way on any
platform.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - Process virtual machines
A process VM provides a high-level
abstraction — that of a high-level
programming language (compared to the
low-level ISA abstraction of the system
VM). Process VMs are implemented using
an interpreter; performance comparable to
compiled programming languages is
achieved by the use of just-in-time
compilation.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - Process virtual machines
1
This type of VM has become popular with
the Java programming language, which is
implemented using the Java virtual
machine. Other examples include the
Parrot virtual machine, which serves as an
abstraction layer for several interpreted
languages, and the .NET Framework,
which runs on a VM called the Common
Language Runtime.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - Process virtual machines
1
A special case of process VMs are
systems that abstract over the
communication mechanisms of a
(potentially heterogeneous) computer
cluster
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - Process virtual machines
1
Unlike other process VMs, these systems do
not provide a specific programming language,
but are embedded in an existing language;
typically such a system provides bindings for
several languages (e.g., C and FORTRAN).
Examples are PVM (Parallel Virtual Machine)
and MPI (Message Passing Interface). They
are not strictly virtual machines, as the
applications running on top still have access
to all OS services, and are therefore not
confined to the system model.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - Emulation of the underlying raw hardware (native execution)
This approach is described as full
virtualization of the hardware, and can be
implemented using a Type 1 or Type 2
hypervisor. (A Type 1 hypervisor runs directly
on the hardware; a Type 2 hypervisor runs on
another Operating System, such as Linux).
Each virtual machine can run any Operating
System supported by the underlying
hardware. Users can thus run two or more
different "guest" Operating Systems
simultaneously, in separate "private" virtual
computers.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - Emulation of the underlying raw hardware (native execution)
1
Some installations use Linux for zSeries to
run Web servers, where Linux runs as the
Operating System within many virtual
machines.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - Emulation of the underlying raw hardware (native execution)
Full virtualization is particularly helpful in
Operating System development, when
experimental new code can be run at the
same time as older, more stable, versions,
each in a separate virtual machine. The
process can even be recursive: IBM
debugged new versions of its virtual machine
Operating System, VM, in a virtual machine
running under an older version of VM, and
even used this technique to simulate new
hardware.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - Emulation of the underlying raw hardware (native execution)
1
The standard x86 processor architecture
as used in the modern PCs does not
actually meet the Popek and Goldberg
virtualization requirements. Notably, there
is no execution mode where all sensitive
machine instructions always trap, which
would allow per-instruction virtualization.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - Emulation of the underlying raw hardware (native execution)
1
Despite these limitations, several software
packages have managed to provide
virtualization on the x86 architecture, even
though dynamic recompilation of privileged
code, as first implemented by VMware,
incurs some performance overhead as
compared to a VM running on a natively
virtualizable architecture such as the IBM
System/370 or Motorola MC68020
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - Emulation of the underlying raw hardware (native execution)
1
Intel and AMD have introduced features to
their x86 processors to enable
virtualization in hardware.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - Emulation of the underlying raw hardware (native execution)
1
As well as virtualization of the resources of
a single machine, multiple independent
nodes in a cluster can be combined and
accessed as a single virtual NUMA
machine.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - Emulation of a non-native system
1
Virtual machines can also perform the role
of an emulator, allowing software
applications and Operating Systems
written for another computer processor
architecture to be run.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - Emulation of a non-native system
1
Some virtual machines emulate hardware that only
exists as a detailed specification. For example:
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - Emulation of a non-native system
1
One of the first was the p-code machine
specification, which allowed programmers
to write Pascal programs that would run on
any computer running virtual machine
software that correctly implemented the
specification.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - Emulation of a non-native system
1
The specification of the
Java virtual machine.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - Emulation of a non-native system
The Common Language Infrastructure virtual
machine at the heart of the Microsoft .NET initiative.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - Emulation of a non-native system
1
Open Firmware allows plug-in hardware to
include boot-time diagnostics,
configuration code, and device drivers that
will run on any kind of CPU.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - Emulation of a non-native system
1
This technique allows diverse computers
to run any software written to that
specification; only the virtual machine
software itself must be written separately
for each type of computer on which it runs.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - Operating system-level virtualization
1
Operating System-level
virtualization
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - Operating system-level virtualization
1
Operating System-level virtualization is a
server virtualization technology which
virtualizes servers on an Operating
System (kernel) layer. It can be thought of
as partitioning: a single physical server is
sliced into multiple small partitions
(otherwise called virtual environments
(VE), virtual private servers (VPS), guests,
zones, etc.); each such partition looks and
feels like a real server, from the point of
view of its users.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - Operating system-level virtualization
For example, Solaris Zones supports
multiple guest OSes running under the
same OS (such as Solaris 10). All guest
OSes have to use the same kernel level
and cannot run as different OS versions.
Solaris native Zones also requires that the
host OS be a version of Solaris; other
OSes from other manufacturers are not
supported. However one would need to
use Solaris Branded zones to use other
OSes as zones.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - Operating system-level virtualization
Another example is System Workload
Partitions (WPARs), introduced in the IBM
AIX 6.1 Operating System. System
WPARs are software partitions running
under one instance of the global AIX OS
environment.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - Operating system-level virtualization
1
The Operating System level architecture
has low overhead that helps to maximize
efficient use of server resources
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - List of hardware with virtual machine support
1
Alcatel-Lucent 3B20D/3B21D emulated on
commercial off-the-shelf computers with
3B2OE or 3B21E system
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - List of hardware with virtual machine support
1
Boston Circuits gCore (grid-on-chip) with
16 ARC 750D cores and Time-machine
hardware virtualization module.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - List of hardware with virtual machine support
1
IBM System/360 Model 145
Hardware emulator for
Honeywell 200/2000
systems
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - List of hardware with virtual machine support
Honeywell Level 6
minicomputers
emulated predecessor
316/516/716 minis
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - List of hardware with virtual machine support
Sun Microsystems sun4v
(UltraSPARC T1 and T2) – utilized
by Logical Domains
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - List of hardware with virtual machine support
1
Xerox Sigma 6 CPUs were
modified to emulate
GE/Honeywell 600/6000
systems
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - List of virtual machine software
1
Process (application) virtual
machine software
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - List of virtual machine software
1
Common Language Infrastructure, C#, Visual Basic
.NET, J#, C++/CLI (formerly Managed C++)
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - List of virtual machine software
1
Dalvik virtual machine,
part of Android
Operating Systems
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - List of virtual machine software
1
Dis, Inferno Operating System and
its Limbo language
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - List of virtual machine software
DynamoRIO, a dynamic
instrumentation tool platform
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - List of virtual machine software
1
EiffelStudio for the Eiffel
language
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - List of virtual machine software
1
Forth virtual machine, Forth
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - List of virtual machine software
1
Low Level Virtual Machine (LLVM),
currently C, C++, Stacker
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - List of virtual machine software
1
Memory Array Redcode Simulator (MARS), virtual
machine that executes Corewars programs
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - List of virtual machine software
Neko virtual machine,
currently Neko and haXe
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - List of virtual machine software
1
Ngaro, a dual stack VM
which is the base of
RetroForth
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - List of virtual machine software
1
SQLite virtual machine,
SQLite opcodes
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - List of virtual machine software
1
Valgrind, checking of memory accesses and leaks in
x86/x86-64 code under Linux
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - List of virtual machine software
1
Virtual Processor (VP)
from Tao Group (UK).
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - List of virtual machine software
VX32 virtual machine,
application-level
virtualization for native code
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - List of virtual machine software
1
Waba, virtual machine for
small devices, similar to
Java
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - List of virtual machine software
1
libJIT Just-In-Time compilation
library, libJIT bytecode
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - List of virtual machine software
1
System (hardware)
virtual machine
software
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - List of virtual machine software
1
ATLAS Transformation Language
(ATL), an MTL virtual machine
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - List of virtual machine software
1
CHARON-AXP, virtualizes AlphaServer to migrate
OpenVMS or Tru64 applications to x86 hardware
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - List of virtual machine software
1
CHARON-VAX, virtualizes PDP-11 or VAX
hardware to migrate OpenVMS or Tru64
applications to x86 or HP integrity
hardware
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - List of virtual machine software
1
CoWare Virtual
Platform
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - List of virtual machine software
1
Denali, uses paravirtualization of x86 for running
para-virtualized PC Operating Systems.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - List of virtual machine software
1
Hercules emulator, free
System/370, ESA/390,
z/Mainframe
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - List of virtual machine software
1
Sun Logical Domains,
now also known as
Oracle VM Server for
SPARC
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - List of virtual machine software
1
LynxSecure uses the MILS architecture to provide
high assurance for embedded systems on x86
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - List of virtual machine software
1
Windows Virtual PC (formerly Microsoft Virtual PC)
and Microsoft Virtual Server
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - List of virtual machine software
OVPsim is a freely available virtual
platform simulator designed to simulate
complex multiprocessor systems at very
high speeds
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - List of virtual machine software
Palacios is an OS independent
embeddable VMM, it is an open source
virtual machine monitor for modern
architectures
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - List of virtual machine software
1
Parallels Workstation, virtualizes x86 to run
unmodified PC Operating Systems
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - List of virtual machine software
1
Parallels Desktop for Mac, virtualizes x86 to run
virtual machines on Mac OS X
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - List of virtual machine software
1
QEMU, is a simulator
based on a virtual
machine
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - List of virtual machine software
VMware (ESX Server,
Fusion, Virtual Server,
Workstation, Player and
ACE)
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - List of virtual machine software
1
TransVirtual Systems
emulation of Wang
Laboratories VS
hardware.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - Further reading
James E. Smith, Ravi Nair, Virtual
Machines: Versatile Platforms For
Systems And Processes, Morgan
Kaufmann, May 2005, ISBN 1-55860-9105, 656 pages (covers both process and
system virtual machines)
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine - Further reading
1
Craig, Iain D. Virtual Machines. Springer,
2006, ISBN 1-85233-969-1, 269 pages
(covers only process virtual machines)
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual Machine lifecycle management
1
Virtual Machine Lifecycle management is
the class of management that looks at the
life cycle of a virtual machine from the
viewpoint of the application vs one
focused on roles within an organization. A
number of major software vendors,
including Microsoft and Novell, have
begun to release software products aiming
at simplifying the administration of larger
virtual machine deployments.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual Machine lifecycle management
Virtualized environments are
fundamentally different from physical
environments in architecture and
capabilities. The flexibility they provide is
derived from three fundamental
characteristics:
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual Machine lifecycle management
1
Motion: Unlike physical servers, virtual machines
easily relocate around the data-center.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual Machine lifecycle management
1
Transparency: With no physical presence,
virtual machines cannot be seen,
identified, touched or often, missed.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual Machine lifecycle management
These characteristics come together to
define all the benefits of virtualization, from
cost-savings to disaster recovery.
However, they also change the nature of
management of the infrastructure itself.
The emerging space of Virtual Machine
Lifecycle Management is the result of the
time, motion and transparency qualities of
virtual environments. This need cuts
across software development and
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual Machine lifecycle management
Service Strategy – As virtualization
extends from a transparent back-end
alternative to a full infrastructure offering
within the organization, Virtual Machine
Lifecycle Management provides the
granular controls to enable wholly new
delivery models, from short-term
provisioning to outsourced virtual machine
hosting.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual Machine lifecycle management
Service Design – When designing the
virtual infrastructure services,
administrators consider both the structure
of the individual virtual machine given to
the customer as well as the interactions
between all of the virtual machines in the
environment, as they come online, move,
and expire
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual Machine lifecycle management
Service Transition – Virtual Machine
Lifecycle Management augments the
traditional set of requirements built into
delivering an infrastructure component to
the business. Best practices and specific
tools can be used to create the right
controls within each virtual machine,
ensuring the behavior of all the machines
is in line with the design.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual Machine lifecycle management
1
Service Operation – Once operational,
virtual environments are extraordinarily
dynamic, by design. Above and beyond
the complexity of a traditional operating
environment, management needs can be
minimized with strong controls set in the
transition phase and ongoing monitoring
and alerting specifically designed to
address the unique characteristics of the
virtual infrastructure.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual Machine lifecycle management
1
Virtual Machine Lifecycle Management
tools, with their innate understanding of
the environment and its transient and
mobile nature, will deliver the metrics
needed to demonstrate success to all the
constituents.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual Machine lifecycle management - Vendors
1
Virtual Machine Lifecycle Management is
an emerging technology market. A few
start-ups have entered the space:
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual Machine lifecycle management - Vendors
Embotics - The
Virtualization Lifecycle
Management Company
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Parallel Virtual Machine
Parallel Virtual Machine (PVM) is a
software tool for parallel networking of
computers. It is designed to allow a
network of heterogeneous Unix and/or
Windows machines to be used as a single
distributed parallel processor. Thus large
computational problems can be solved
more cost effectively by using the
aggregate power and memory of many
computers. The software is very portable;
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Parallel Virtual Machine
1
PVM enables users to exploit their existing
computer hardware to solve much larger
problems at less additional cost
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Parallel Virtual Machine
1
PVM was a step towards modern trends in
distributed processing and grid computing
but has, since the mid-1990s, largely been
supplanted by the much more successful
MPI standard for message passing on
parallel machines. PVM is free software,
released under both the BSD License and
the GNU General Public License.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Parallel Virtual Machine - Design
1
PVM is a software system that enables a
collection of heterogeneous computers to
be used as a coherent and flexible
concurrent computational resource, or a
"parallel virtual machine".
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Parallel Virtual Machine - Design
1
The individual computers may be sharedor local-memory multiprocessors, vector
supercomputers, specialized graphics
engines, or scalar workstations and PCs,
that may be interconnected by a variety of
networks, such as Ethernet or FDDI.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Parallel Virtual Machine - Design
1
PVM consists of a run-time environment
and library for message-passing, task and
resource management, and fault
notification. While PVM will not
automatically make a commercial software
package run faster, it does provide a
powerful set of functions for manually
parallelizing an existing source program,
or for writing new parallel/distributed
programs.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Parallel Virtual Machine - Design
The PVM software must be specifically
installed on every machine that is to be
used in a given "virtual machine". There is
no "automatic" installation of executables
onto remote machines in PVM, although
simply copying the pvm3/lib and pvm3/bin
directories to another similar machine (and
setting $PVM_ROOT and $PVM_ARCH)
is sufficient for running PVM programs.
Compiling or building PVM programs
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Parallel Virtual Machine - Design
1
User programs written in C, C++, or Fortran can
access PVM through provided library routines.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Parallel Virtual Machine - Design
PVM also supports broadcasting
(PVM_bcast) which sends to all processes
in a group and multicasting (PVM_mcast)
which sends to a specific list of processes.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Windows 9x - Virtual Machine Manager
1
It runs multiple applications simultaneously
by sharing CPU (central processing unit)
time between the threads in which the
applications and virtual machines run.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Windows 9x - Virtual Machine Manager
1
The VMM is also responsible for creating
MS-DOS environments for system
processes and Windows applications that
still need to run in MS-DOS mode. It is the
replacement for Win386 in Windows 3.x,
and the file vmm32.vxd is a compressed
archive containing most of the core VxD,
including VMM.vxd itself and ifsmgr.vxd
(which facilitates file system access
without the need to call the real mode file
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Comparison of Java and Android API - Android's Process Virtual machine
There is no Java Virtual Machine in the
Android platform. Java byte code is not
executed. Instead Java classes are
compiled into Dalvik executables and run
on Dalvik (software)|Dalvik, a specialized
virtual machine (VM) designed specifically
for Android. Unlike Java Virtual
Machine|Java VMs, which are stack
machines, the Dalvik VM is a Register
machine|register-based architecture.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Comparison of Java and Android API - Android's Process Virtual machine
1
* The VM was designed to use less
space.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Comparison of Java and Android API - Android's Process Virtual machine
1
* The Class (file format)#The constant
pool|constant pool has been modified to
use only 32-bit indexes to simplify the
Interpreter (computing)|interpreter.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Comparison of Java and Android API - Android's Process Virtual machine
1
* Standard Java bytecode executes 8-bit
stack instructions. Local variables must
be copied to or from the operand stack by
separate instructions. Dalvik instead uses
its own 16-bit instruction set that works
directly on local variables. The local
variable is commonly picked by a 4-bit
'virtual register' field.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Comparison of Java and Android API - Android's Process Virtual machine
Because the bytecode loaded by the
Dalvik virtual machine is not Java
bytecode, and of the specific way Dalvik
load classes, it is not possible to load Java
libraries packages as JAR (file format)|jar
files, and even a specific logic must be
used to load Android libraries (specifically
the content of the underlying dex file must
be copied in the application private internal
storage area, before being able to be
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Dalvik (software) - Android's ART virtual machine
1
Android 4.4 introduced a new
experimental runtime virtual
machine, ART.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Dalvik (software) - Android's ART virtual machine
It uses Ahead-of-time (AOT) process in
which the bytecode is pre-compiled into
machine language at the time of
installation. This new runtime can
decrease the execution time down to half,
compared to Dalvik. But there will also be
some disadvantages like the applications
will take much longer to install. Moreover
the running processes will occupy 10-20%
more storage space because of its precompiled bytecode.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Apache Harmony - Virtual machine support
Harmony currently has seven virtual
machine implementations that run
Harmony Class Library, all of which were
donations by external groups:
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Apache Harmony - Virtual machine support
* JC Harmony Edition VM, JCHEVM,
based on the JC virtual machine|JCVM's
interpreter (computing)|interpreter,
contributed by the author, Archie Cobbs.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Apache Harmony - Virtual machine support
* BootJVM, a simple bootstrapping
(computing)|bootstrapping virtual machine,
contributed by Daniel Lydick.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Apache Harmony - Virtual machine support
* SableVM, an advanced, portable
interpreter, contributed by authors from the
Sable Research Group; and the Dynamic
Runtime Layer Virtual Machine.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Apache Harmony - Virtual machine support
1
* DRLVM, a just-in-time
compiler contributed by
Intel.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Apache Harmony - Virtual machine support
1
* BEA announced the availability of an
evaluation version of JRockit VM running
Apache Harmony Class Library.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Apache Harmony - Virtual machine support
1
* JikesRVM, an open-source meta-circular
evaluator|meta-circular JVM that use the
Apache Harmony Class Library.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Apache Harmony - Virtual machine support
* Ja.NET SE, an open source project
providing a Java 5 JDK (class libraries,
tools, etc.) that run on the .NET
Framework CLR. Ja.NET SE is based on
the Apache Harmony Class Libraries.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Apache Harmony - Virtual machine support
In the end of November, 2006, the
language support provided by these virtual
machine was still incomplete, and the build
instructions recommended to use IBM's
proprietary software|proprietary J9 instead
to run the class library test suite. However,
this is not necessary anymore (as of July
2007).
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Apache Harmony - Virtual machine support
1
As for the rest of the project, DRLVM virtual machine
development has now stalled (as of May 2011).
https://store.theartofservice.com/the-virtual-machine-toolkit.html
HipHop for PHP - HipHop Virtual Machine (HHVM)
1
In these respects, HHVM has similarties to
virtual machines for other languages
including C Sharp (programming
language)|C#/Common Language
Runtime|CLR and Java/JVM.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
HipHop for PHP - HipHop Virtual Machine (HHVM)
1
HHVM brings with it many benefits over
HPHPc. There is near full support for the
entire 5.4 PHP language (including the
create_function() and eval() functions).
There is one execution engine for both
production and development (i.e., no need
to maintain HPHPi any longer). There is
both production and development
integration with HPHPd. And the push
process becomes much simpler; no more
https://store.theartofservice.com/the-virtual-machine-toolkit.html
HipHop for PHP - HipHop Virtual Machine (HHVM)
However, the key question is around
performance. As a virtual machine, HHVM
has the ability to use live type information
to produce more efficient native code,
leading to higher webserver throughput
and lower Latency (engineering)|latency.
In Q4 2012, the performance of
facebook.com running on HHVM achieved
parity with HPHPc. In Q1 2013, the
production version of facebook.com
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Comparison of platform virtual machines - Features
1
* Providing any virtual environment usually requires
some overhead of some type or another
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Comparison of platform virtual machines - Features
1
* OS-level virtualization is described as
native speed, however some groups have
found overhead as high as 3% for some
operations, but generally figures come
under 1%, so long as secondary effects do
not appear.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Comparison of platform virtual machines - Features
1
* See for a paper comparing performance
of paravirtualization approaches (e.g. Xen)
with OS-level virtualization
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Comparison of platform virtual machines - Features
* Requires
patches/recompiling.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Comparison of platform virtual machines - Features
* Exceptional for lightweight,
paravirtualized, single-user VM/CMS
interactive shell: largest customers run
several thousand users on even single
prior models. For multiprogramming OSes
like Linux on zSeries and z/OS that make
heavy use of native supervisor state
instructions, performance will vary
depending on nature of workload but is
near native. Hundreds into the low
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Comparison of platform virtual machines - Other features
* Windows Server 2008 R2 SP1 and
Windows 7 SP1 have limited support for
redirecting the USB protocol over Remote
Desktop Protocol|RDP using RemoteFX.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Comparison of platform virtual machines - Other features
* Windows Server 2008 R2 SP1 adds
accelerated graphics support for certain
editions of Windows Server 2008 R2 SP1
and Windows 7 SP1 using RemoteFX.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Comparison of platform virtual machines - Restrictions
1
This table is meant to outline restrictions in the
software dictated by licensing or capabilities.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines
1
A 'virtual machine' ('VM') is a softwarebased emulation of a computer. Virtual
machines operate based on the computer
architecture and functions of a real or
hypothetical computer.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - Definitions
These usually emulate an existing
architecture, and are built with the purpose
of either providing a platform to run
programs where the real hardware is not
available for use (for example, executing
software on otherwise obsolete platforms),
or of having multiple instances of virtual
machines leading to more efficient use of
computing resources, both in terms of
energy consumption and cost
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - Definitions
An essential characteristic of a virtual
machine is that the software running inside
is limited to the resources and abstractions
provided by the virtual machine—it cannot
break out of its virtual environment.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - Definitions
1
A VM was originally defined by Popek and
Goldberg virtualization
requirements|Popek and Goldberg as an
efficient, isolated duplicate of a real
machine. Current use includes virtual
machines which have no direct
correspondence to any real hardware.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - System virtual machines
1
* multiple OS environments can co-exist on the
same computer, in strong isolation from each other
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - System virtual machines
* the virtual machine can provide an
instruction set architecture (ISA) that is
somewhat different from that of the real
machine
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - System virtual machines
1
* application provisioning, maintenance,
high availability and disaster recovery[
http://www.vmware.com/solutions/busines
s-critical-apps/ VMware Application
Virtualization for Enterprise Software
Applications]. Vmware.com. Retrieved on
2013-06-14.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - System virtual machines
* when multiple VMs are concurrently
running on the same physical host, each
VM may exhibit a varying and unstable
performance (speed of execution, and not
results), which highly depends on the
workload imposed on the system by other
VMs, unless proper techniques are used
for temporal isolation among virtual
machines.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - System virtual machines
Multiple VMs each running their own
Operating System (called guest Operating
System) are frequently used in server
consolidation, where different services that
used to run on individual machines to
avoid interference are instead run in
separate VMs on the same physical
machine.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - System virtual machines
Another use is to Sandbox (software
development)|sandbox an OS that is not
trusted, possibly because it is a system under
development. Virtual machines have other
advantages for OS development, including
better debugging access and faster reboots.[
http://www.vmwarez.com/2006/05/super-fastserver-reboots-another.html Super Fast
Server Reboots – Another reason
Virtualization rocks]. vmwarez.com (2006-0509). Retrieved on 2013-06-14.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - Process virtual machines
1
This type of VM has become popular with
the Java (programming language)|Java
programming language, which is
implemented using the Java virtual
machine. Other examples include the
Parrot virtual machine, which serves as an
abstraction layer for several interpreted
languages, and the .NET Framework,
which runs on a VM called the Common
Language Runtime.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - Process virtual machines
1
Unlike other process VMs, these systems
do not provide a specific programming
language, but are embedded in an existing
language; typically such a system provides
bindings for several languages (e.g., C
(programming language)|C and
FORTRAN). Examples are PVM (Parallel
Virtual Machine) and MPI (Message
Passing Interface). They are not strictly
virtual machines, as the applications
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - Emulation of the underlying raw hardware (native execution)
1
Some installations use Linux for zSeries to
run Web servers, where Linux runs as the
Operating System within many virtual
machines.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - Emulation of the underlying raw hardware (native execution)
The process can even be
Recursion#Recursion in
computing|recursive: IBM debugged new
versions of its virtual machine Operating
System, VM (Operating System)|VM, in a
virtual machine running under an older
version of VM, and even used this
technique to simulate new hardware.See
History of CP/CMS for IBM's use of virtual
machines for Operating System
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - Emulation of the underlying raw hardware (native execution)
1
Despite these limitations, several software
packages have managed to provide x86
virtualization|virtualization on the x86
architecture, even though dynamic
recompilation of privileged code, as first
implemented by VMware, incurs some
performance overhead as compared to a
VM running on a natively virtualizable
architecture such as the IBM System/370
or Motorola 68020|Motorola MC68020
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - Emulation of the underlying raw hardware (native execution)
1
Intel and AMD have introduced Intel VTx|features to their x86 processors to
enable virtualization in hardware.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - Emulation of the underlying raw hardware (native execution)
1
As well as virtualization of the resources of a
single machine, multiple independent nodes
in a cluster can be combined and accessed
as a single virtual Non-Uniform Memory
Access|NUMA machine.Matthew Chapman
and Gernot Heiser. vNUMA: A virtual sharedmemory multiprocessor. Proceedings of the
2009 USENIX Annual Technical Conference,
San Diego, CA, USA, June, 2009
[http://www.ertos.nicta.com.au/publications/p
apers/Chapman_Heiser_09.pdf]
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - Emulation of a non-native system
1
* One of the first was the p-code machine
specification, which allowed programmers
to write Pascal programming
language|Pascal Computer
program|programs that would run on any
computer running virtual machine software
that correctly implemented the
specification.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - Emulation of a non-native system
1
* The specification of the Java
virtual machine.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - Emulation of a non-native system
1
* The Common Language Infrastructure
virtual machine at the heart of the .NET
Framework|Microsoft .NET initiative.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - Emulation of a non-native system
1
* Open Firmware allows plug-in hardware
to include boot-time diagnostics,
configuration code, and device drivers that
will run on any kind of CPU.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - Operating system-level virtualization
1
Operating System-level virtualization is a
server Platform virtualization|virtualization
technology which virtualizes Server
(computing)|servers on an Operating
System (kernel) layer. It can be thought of
as partitioning: a single physical server is
sliced into multiple small partitions
(otherwise called virtual environments
(VE), virtual private servers (VPS), guests,
zones, etc.); each such partition looks and
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - Operating system-level virtualization
Another example is Workload
partitions#System WPAR|System
Workload Partitions (WPARs), introduced
in the IBM AIX 6.1 Operating System.
System WPARs are software partitions
running under one instance of the global
AIX OS environment.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of hardware with virtual machine support
1
* Alcatel-Lucent 3B21D|3B20D/3B21D
emulated on commercial off-the-shelf
computers with 3B2OE or 3B21E system
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of hardware with virtual machine support
1
* ARM architecture|ARM TrustZone
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of hardware with virtual machine support
1
* Boston Circuits gCore (grid-on-chip) with
16 ARC International|ARC 750D cores and
Time-machine hardware virtualization
module.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of hardware with virtual machine support
* IBM System/360 Model
145 Hardware emulator for
Honeywell 200/2000
systems
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of hardware with virtual machine support
* Network access server|NAS
CPUs emulated IBM and Amdahl
machines
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of hardware with virtual machine support
* Honeywell Level 6
minicomputers emulated
predecessor 316/516/716
minis
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of hardware with virtual machine support
1
* Sun Microsystems sun4v (UltraSPARC T1 and
UltraSPARC T2|T2) – utilized by Logical Domains
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of hardware with virtual machine support
* Xerox Sigma 6 CPUs were
modified to emulate GE/Honeywell
600/6000 systems
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of virtual machine software
1
;Process (application)
virtual machine
software
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of virtual machine software
1
* Baan Corporation|Baan
Bshell Virtual Machine,
Baan 4GL
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of virtual machine software
* Common Language Infrastructure, C
Sharp (programming language)|C#, Visual
Basic .NET, J Sharp|J#, C++/CLI (formerly
Managed Extensions for C++|Managed
C++)
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of virtual machine software
1
* Dalvik virtual machine, part of Android (Operating
System)|Android Operating Systems
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of virtual machine software
* Dis virtual machine|Dis, Inferno
(Operating System)|Inferno Operating
System and its Limbo (programming
language)|Limbo language
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of virtual machine software
* DynamoRIO, a
dynamic
instrumentation tool
platform
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of virtual machine software
1
* EiffelStudio for the
Eiffel (programming
language)|Eiffel
language
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of virtual machine software
* Erlang (programming
language)|Erlang language
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of virtual machine software
1
* Forth virtual machine,
Forth (programming
language)|Forth
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of virtual machine software
1
* Glulx, Z-machine|Z-code
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of virtual machine software
1
* Low Level Virtual Machine (LLVM), currently C
(programming language)|C, C++, Stacker
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of virtual machine software
1
* Lua (programming
language)|Lua
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of virtual machine software
1
* Memory Array Redcode Simulator (MARS), virtual
machine that executes Corewars programs
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of virtual machine software
1
* Neko virtual machine,
currently Neko
(programming
language)|Neko and
haXe
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of virtual machine software
*[
http://retroforth.org/docs/The_Ngaro_Virtu
al_Machine.html Ngaro], a dual stack VM
which is the base of RetroForth
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of virtual machine software
* p-code machine,
Pascal (programming
language)|Pascal
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of virtual machine software
* Parrot virtual
machine|Parrot, Perl 6
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of virtual machine software
1
* CPython, Python (programming
language)|Python
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of virtual machine software
1
* Rubinius, Ruby (programming
language)|Ruby
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of virtual machine software
* SQLite virtual
machine, SQLite
opcodes
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of virtual machine software
1
* Valgrind, checking of memory accesses and leaks
in x86/x86-64 code under Linux
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of virtual machine software
* Virtual Processor
(VP) from Tao Group
(United Kingdom|UK).
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of virtual machine software
1
* VX32 virtual machine,
application-level
virtualization for native
code
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of virtual machine software
1
* Waba, virtual machine for
small devices, similar to
Java
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of virtual machine software
1
* Warren Abstract Machine, Prolog, Computer
Sciences Corporation|CSC GraphTalk
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of virtual machine software
* libJIT|libJIT Just-In-Time
compilation library, libJIT|libJIT
bytecode
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of virtual machine software
1
;System (hardware) virtual machine
software
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of virtual machine software
1
* ATLAS Transformation Language (ATL), an Model
Transformation Language|MTL virtual machine
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of virtual machine software
1
* CHARON-AXP, virtualizes AlphaServer to migrate
OpenVMS or Tru64 applications to x86 hardware
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of virtual machine software
1
* CHARON-VAX, virtualizes PDP-11 or
VAX hardware to migrate OpenVMS or
Tru64 applications to x86 or HP integrity
hardware
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of virtual machine software
1
* CoWare Virtual
Platform
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of virtual machine software
1
* Denali (Operating System)|Denali, uses
paravirtualization of x86 for running paravirtualized PC Operating Systems.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of virtual machine software
* Hercules emulator, free
System/370, ESA/390, z/Mainframe
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of virtual machine software
1
* Sun Logical Domains, now also
known as Oracle VM Server for
SPARC
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of virtual machine software
* LynxSecure uses the Multiple
Independent Levels of Security|MILS
architecture to provide high assurance for
embedded systems on x86
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of virtual machine software
1
* Windows Virtual PC (formerly Microsoft Virtual PC)
and Microsoft Virtual Server
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of virtual machine software
* OVPsim is a freely available virtual
platform simulator designed to simulate
complex multiprocessor systems at very
high speeds
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of virtual machine software
* Palacios (VMM)|Palacios is an OS
independent embeddable VMM, it is an
open source virtual machine monitor for
modern architectures
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of virtual machine software
1
* Parallels Workstation, virtualizes x86 to run
unmodified PC Operating Systems
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of virtual machine software
1
* Parallels Desktop for Mac, virtualizes x86 to run
virtual machines on Mac OS X
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of virtual machine software
1
* QEMU, is a simulator based on a
virtual machine
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of virtual machine software
* VM (Operating
System)|VM from
International Business
Machines|IBM
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of virtual machine software
1
* VMware (VMware ESX|ESX Server,
VMware Fusion|Fusion, VMware
Server|Virtual Server, VMware
Workstation|Workstation, VMware
Player|Player and VMware ACE|ACE)
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of virtual machine software
1
*[
http://www.transvirt.com TransVirtual Systems]
emulation of Wang Laboratories VS hardware.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machines - List of virtual machine software
1
; Operating System level
virtualization software
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Xen - Virtual machine migration
1
Similar technology can serve to suspend
running virtual machines to disk, freezing
their running state for resumption at a later
date.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Application programming interfaces - API sharing and reuse via virtual machine
Some languages like those running in a
virtual machine (e.g. List of CLI
languages|.NET CLI compliant languages
in the Common Language Runtime (CLR),
and List of JVM languages|JVM compliant
languages in the Java Virtual Machine)
can share an API. In this case, a virtual
machine enables language interoperability,
by abstracting a programming language
using an intermediate bytecode and its
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual Machine Manager
1
In computing, the Red Hat 'Virtual Machine
Manager' is a desktop-driven
hypervisor|virtual-machine manager
application with which users can manage
virtual machines (VMs).
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual Machine Manager - Features
* see performance
utilization statistics for
each VM
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual Machine Manager - Features
1
* view all running VMs and hosts and their live
performance resource utilization statistics.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual Machine Manager - Features
1
* use Kernel-based Virtual Machine|KVM,
Xen or QEMU virtual machines, running
either locally or remotely.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual Machine Manager - Distributions including Virtual Machine Manager
1
* Opensuse (since
release 10.3)
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual Machine Manager - Distributions including Virtual Machine Manager
1
* Red Hat Enterprise Linux (since
version 5)
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual Machine Manager - Distributions including Virtual Machine Manager
* Ubuntu (Operating
System)|Ubuntu (version 8.04 and
above)
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual Machine Manager - Distributions including Virtual Machine Manager
1
* Oracle Linux
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual Machine Manager - Documentation
Red Hat Enterprise Linux virtualization
documentation comes as three guides [
http://docs.redhat.com/docs/enUS/Red_Hat_Enterprise_Linux/6/html/Virt
ualization_Administration_Guide/index.htm
l Administration], [
http://docs.redhat.com/docs/enUS/Red_Hat_Enterprise_Linux/6/html/Virt
ualization_Getting_Started_Guide/index.ht
ml Getting Started] and [
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual Machine Manager - Documentation
1
Ubuntu 8.04 virtualization documentation
comes with the [
http://doc.ubuntu.com/ubuntu/serverguide/
C/virtualization.html Ubuntu Server Guide].
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine
1
'KVM (Kernel-based Virtual Machine)' is a
virtualization infrastructure for the Linux
kernel which turns it into a hypervisor.
KVM requires a processor with hardwareassisted virtualization|hardware
virtualization extension.[ http://www.linuxkvm.org/page/FAQ#What_do_I_need_to_
use_KVM.3F KVM FAQ: What do I need to
use KVM?] KVM has also been ported to
FreeBSD and Illumos in the form of
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine
1
KVM originally supported x86 processors
and has been port (computer
software)|ported to S/390,[
http://article.gmane.org/gmane.comp.emul
ators.kvm.devel/2570 Gmane - Mail To
News And Back Again] PowerPC,[
http://news.gmane.org/gmane.comp.emula
tors.kvm.devel/2595 Gmane Loom] and
IA-64. An ARM architecture|ARM port was
merged during the 3.9 kernel merge
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine
1
A wide variety of guest Operating Systems
work with KVM, including many flavours of
Linux, BSD, Solaris (Operating
System)|Solaris, Microsoft
Windows|Windows, Haiku (Operating
System)|Haiku, ReactOS, Plan 9 from Bell
Labs|Plan 9, and AROS Research
Operating System
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine
Paravirtualization support for certain
devices is available for Linux, OpenBSD,
FreeBSD, NetBSD, Plan 9 and Windows
guests using the VirtIO framework. This
supports a paravirtual Ethernet card, a
paravirtual disk I/O controller, a balloon
device for adjusting guest memory usage,
and a VGA graphics interface using SPICE
(protocol)|SPICE or VMware drivers.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine - Design
1
* Set up the guest VM's address space.
The host must also supply a firmware
image (usually a custom BIOS when
emulating PCs) with which the guest can
bootstrap into its main OS.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine - Design
1
* Feed it simulated I/O.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine - Design
1
On Linux, QEMU versions 0.10.1 and later
is one such host. It will use KVM when
available to virtualize guests at near-native
speeds, but otherwise fall back to
software-only emulation.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine - Licensing
1
KVM's parts are licensed under various
GNU licenses:Licensing info from Ubuntu
7.04 /usr/share/doc/kvm/copyright
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine - Licensing
1
* QEMU virtual CPU core library (libqemu.a) and
QEMU PC system emulator: LGPL
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine - Licensing
1
* Linux user mode QEMU
emulator: GPL
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine - Licensing
1
* BIOS files (bios.bin, vgabios.bin and vgabioscirrus.bin): LGPL v2 or later
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine - History
Red Hat bought Qumranet in
2008.[http://www.redhat.com/about/news/p
rarchive/2008/qumranet.html Red Hat
press release on Qumranet purchase]
KVM is maintained by Paolo Bonzini and
Gleb Natapov.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine - Graphical management tools
*[
http://www.univention.de/en/products/ucs/
ucs-components/virtualization/ucs-virtualmachine-manager/ UCS Virtual Machine
Manager] - web-based virtualization
management tool for different virtualization
technologies like KVM and Xen under
Microsoft Windows and numerous Linux
distributions; Integrated by default in the
Enterprise Linux solution Univention
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine - Graphical management tools
1
* [ http://archipelproject.org/ Archipel] – An
opensource libvirt-based Web UI, which
uses XMPP to communicate with its
agents installed on servers
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine - Graphical management tools
1
* [ http://witsbits.com/ Witsbits] – Simplified SaaS
based centralized management with web UI.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine - Graphical management tools
1
* Virtual Machine Manager – Supports
creating, editing, starting, and stopping
KVM-based virtual machines, as well as
live or cold drag-and-drop migration of
VMs between hosts.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine - Graphical management tools
* [ http://convirture.com/ ConVirt] –
Manages creating, editing, starting, and
stopping KVM-based virtual machines, as
well as live or cold drag-and-drop
migration of VMs between hosts.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine - Graphical management tools
1
* [ http://proxmox.com/ Proxmox Virtual
Environment] – Free virtualization
management package including KVM and
OpenVZ. It has a bare-metal installer, a
web-based remote management GUI, and
optional commercial support.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine - Graphical management tools
1
* [ http://opennodecloud.com/ OpenNode]
– RHEL/CentOS-based open-source
server virtualization and management
solution with a simple bare-metal installer,
providing KVM+OpenVZ host and
standard libvirt, func management
interfaces together with standard CLI tools
like virsh and vzctl.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine - Graphical management tools
1
* OpenQRM - Management platform for managing
heterogeneous data center infrastructures.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine - Graphical management tools
* [ http://solusvm.com/ SolusVM] –
Supports the management of KVM-based
virtual machines as well as Xen and
OpenVZ.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine - Graphical management tools
1
* [ http://www.virtualizor.com/ Virtualizor] –
Supports the management of KVM-based
virtual machines as well as Xen and
OpenVZ.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine - Implementations
1
* Illumos based distributions
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine - Implementations
* SUSE Linux Enterprise
Server (SLES) 11 SP1 and
above
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Kernel-based Virtual Machine - Implementations
1
* Univention Corporate
Server
https://store.theartofservice.com/the-virtual-machine-toolkit.html
History of IBM mainframe operating systems - Early time-sharing and virtual machine
systems
1
:For an explanation of time-sharing, virtual
memory or virtual machines, see the
#Technical notes|Technical notes near the
end of this article.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
History of IBM mainframe operating systems - Early time-sharing and virtual
machine systems
1
MIT's Fernando Corbató produced the first
experimental time-sharing systems, such
as Compatible Time-Sharing
System|CTSS, from 1957 to the early
1960s, using slightly modified IBM 704
and IBM 7090 mainframes; these systems
were based on a proposal by John
McCarthy (computer scientist)|John
McCarthy.John McCarthy, [ http://wwwformal.stanford.edu/jmc/history/timesharin
https://store.theartofservice.com/the-virtual-machine-toolkit.html
History of IBM mainframe operating systems - Early time-sharing and virtual
machine systems
1
These experimental systems were too late
to be incorporated into the System/360
series which IBM announced in 1964, but
encouraged the company to add virtual
memory and virtual machine capabilities to
its System/370 mainframes and their
Operating Systems in 1972:
https://store.theartofservice.com/the-virtual-machine-toolkit.html
History of IBM mainframe operating systems - Early time-sharing and virtual
machine systems
*The M44/44X showed that a partial
approach to virtual machines was not
good enough, and that thrashing
(computer science)|thrashing could
severely reduce the speed of virtual
memory systems. Thrashing is a condition
in which the system runs very slowly
because it spends a lot of its time shuffling
virtual memory pages between physical
memory and disk files.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
History of IBM mainframe operating systems - Early time-sharing and virtual
machine systems
1
*IBM learned from CP-40 and CP-67: how
to make the thrashing problem
manageable; that its other virtual memory
and virtual machine technologies were
sufficiently fast and reliable to be used in
the high-volume commercial systems
which were its core business. In particular
IBM's David Sayre convinced the company
that automated virtual memory
management could consistently perform at
https://store.theartofservice.com/the-virtual-machine-toolkit.html
History of IBM mainframe operating systems - Early time-sharing and virtual
machine systems
1
In 1968 a consulting firm called Computer
Software Systems used the released
version of CP-67 to set up a commercial
time-sharing service
https://store.theartofservice.com/the-virtual-machine-toolkit.html
History of IBM mainframe operating systems - Early time-sharing and virtual
machine systems
1
Universities produced three other S/360 timesharing Operating Systems in the late 1960s:
https://store.theartofservice.com/the-virtual-machine-toolkit.html
History of IBM mainframe operating systems - Early time-sharing and virtual
machine systems
1
*The 'Michigan Terminal System' (MTS)
was developed in 1967 by a consortium of
universities led by the University of
Michigan. All versions ran on IBM
mainframes which had virtual memory
capability, starting with the IBM
System/360 Model 67|S/360-67. MTS
remained in use until 1999.[
http://www.everything2.com/index.pl?node
_id=1404097lastnode_id=0 MTS History]
https://store.theartofservice.com/the-virtual-machine-toolkit.html
History of IBM mainframe operating systems - Early time-sharing and virtual
machine systems
1
*McGill University in Montreal started
developing 'MUSIC/SP|MUSIC' (McGill
University System for Interactive
Computing) in 1969
https://store.theartofservice.com/the-virtual-machine-toolkit.html
History of IBM mainframe operating systems - Early time-sharing and virtual
machine systems
1
* 'ORVYL and WYLBUR' were developed
by Stanford University in 1967-68 for the
IBM S/360-67.[
http://www.slac.stanford.edu/spires/explain
/manuals/ORVMAN.HTML ORVYL/370
Timesharing System Functional
Description], Stanford University,
1978WYLBUR Reference Manual,
Stanford University, 1984 They provided
some of the first time-sharing capabilities
https://store.theartofservice.com/the-virtual-machine-toolkit.html
History of IBM mainframe operating systems - Virtual machine
1
Virtual machine techniques enable several
Operating Systems (guest Operating
Systems) or other software to run on the
same computer so that each thinks it has
a whole computer to itself, and each of
these simulated whole computers is called
a virtual machine. The Operating System
which really controls the computer is
usually called a hypervisor. Two of the
major components of the hypervisor are:
https://store.theartofservice.com/the-virtual-machine-toolkit.html
History of IBM mainframe operating systems - Virtual machine
*Virtual memory management. Each
virtual machine appears to have a
complete range of addresses from 0 to
some large number, and virtual memory
techniques prevent different virtual
machines from confusing each other.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
History of IBM mainframe operating systems - Virtual machine
1
*Simulating privileged functions on
behalf of the guest Operating
Systems
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Windows Virtual PC - Virtual machine integration components
Windows Virtual PC may enable guest
operating systems running inside virtual
machines to interact with their host
operating system beyond what is feasible
between two physical computers, such as
sharing physical hardware components or
exchanging data
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Windows Virtual PC - Virtual machine integration components
1
* Mouse cursor sharing: Mouse cursor can be
moved freely between the machines.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Windows Virtual PC - Virtual machine integration components
1
* Host-initiated shutdown: Virtual machine
can be shut down, restarted or put into
standby or hibernation via a set of API
functions.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Windows Virtual PC - Virtual machine integration components
1
* Time synchronization: The virtual
machine's clock will be automatically
synchronized with the host operating
system's clock.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Windows Virtual PC - Virtual machine integration components
1
* Process responsiveness monitoring:
Host operating system will be able to
detect whether the software on the guest
operating system is responsive or hung.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Windows Virtual PC - Virtual machine integration components
1
* Dynamic screen resolution: The screen
resolution of the guest operating system
can be changed by simply resizing the
window in which it is running. However,
the VM can be configured to allow only
standard resolutions.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Windows Virtual PC - Virtual machine integration components
1
In addition to features described above,
guest operating systems may also take
advantage of the following integration
features but only when the administrator
activates them:
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Windows Virtual PC - Virtual machine integration components
1
* Audio sharing: Audio played on the guest
operating system may be brought to the
host operating system and played on it.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Windows Virtual PC - Virtual machine integration components
1
* Clipboard sharing: Contents such as text,
picture or everything that is cut or copied
to Clipboard (software)|Windows
Clipboard maybe pasted in other
machines.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Windows Virtual PC - Virtual machine integration components
1
* Printer sharing: Guest operating systems
may print on the host operating system's
printer. This feature should not be
confused with File and Printer Sharing
over an emulated network connection.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Windows Virtual PC - Virtual machine integration components
* Smart card sharing: Smart cards
connected to host operating system may
be accessed on guest operating systems.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Windows Virtual PC - Virtual machine integration components
1
* File sharing: Windows Virtual PC can
also share disk partitions and disk drives
of the host operating system with guest
operating systems. This includes USB
mass storage devices that are connected
later.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Windows Virtual PC - Virtual machine integration components
In Windows Virtual PC, enabling
integration features automatically makes
the virtual machine user account
accessible using Remote Desktop
Connection.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
VMware Workstation - Ready-to-use virtual machines
1
Many ready-made virtual machines (VMs)
which run on VMWare Player, Workstation,
and other virtualization software are
available for specific purposes, either for
purchase or free of charge; for example a
free Linux-based browser appliance with
the Firefox browser installed which can be
used for safe Web browsing; if infected or
damaged it can be discarded and replaced
by a clean copy
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Java (software platform) - Java Virtual Machine
The heart of the Java platform is the
concept of a virtual machine that executes
Java bytecode programs. This bytecode is
the same no matter what hardware or
operating system the program is running
under. There is a JIT (Just In Time)
compiler within the Java Virtual Machine,
or JVM. The JIT compiler translates the
Java bytecode into native processor
instructions at run-time and caches the
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Java (software platform) - Java Virtual Machine
1
The use of bytecode as an intermediate
language permits Java programs to run on
any platform that has a virtual machine
available. The use of a JIT compiler
means that Java applications, after a short
delay during loading and once they have
warmed up by being all or mostly JITcompiled, tend to run about as fast as
native programs.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Java (software platform) - Java Virtual Machine
Since JRE version 1.2, Sun's JVM
implementation has included a just-in-time
compilation|just-in-time compiler instead of
an interpreter.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Java (software platform) - Java Virtual Machine
Although Java programs are crossplatform or platform independent, the code
of the Java Virtual Machines (JVM) that
execute these programs is not. Every
supported operating platform has its own
JVM.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Microsoft Java Virtual Machine
It was the fastest Windows-based
implementation of a Java virtual machine
for the first two years after its release.John
Neffenger [http://www.javaworld.com/javaworld/jw08-1998/jw-08-volanomark.html Which
Java VM scales best?], JavaWorld, August
1, 1998 Quote:Microsoft SDK 2.02 still
stands alone as the only fast and scalable
Java virtual machine
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Microsoft Java Virtual Machine - Performance
1
The Microsoft JVM won the PC Magazine
Editor's choice awards in 1997 and 1998
for best Java support. In 1998 a new
release included the Java Native Interface
which supplemented Microsoft's
proprietary Raw Native Interface (RNI) and
J/Direct. Microsoft claimed to have the
fastest Java implementation for Windows,
although IBM also made that claim in 1999
and beat the Microsoft and Sun virtual
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Microsoft Java Virtual Machine - Antitrust trial
1
Microsoft's proprietary extensions to Java
were used as evidence in the United
States v. Microsoft antitrust civil actions.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Microsoft Java Virtual Machine - Antitrust trial
1
A Memorandum of the United States in
Support of Motion for Preliminary
Injunction in the case of United States of
America vs. Microsoft claimed that
Microsoft wanted to kill Java in the
marketplace.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Microsoft Java Virtual Machine - Antitrust trial
In short, Microsoft feared and sought to
impede the development of network
effects that cross-platform technology like
Netscape Navigator and Java might enjoy
and use to challenge Microsoft's monopoly
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Microsoft Java Virtual Machine - Sun vs. Microsoft
1
In October 1997, Sun Microsystems, the
creator of Java, sued Microsoft for
incompletely implementing the Java 1.1
standard.http://www.javaworld.com/javawo
rld/jw-10-1997/jw-10-lawsuit.html
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Microsoft Java Virtual Machine - Sun vs. Microsoft
In January 2001, Sun and Microsoft
settled the suit. Microsoft paid Sun $20
million and the two agreed to a plan for
Microsoft to phase out products that
included the older version of Microsoft
Java that allegedly infringed on Sun's Java
copyrights and trademarks.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Microsoft Java Virtual Machine - Sun vs. Microsoft
1
*Office 2000 Premium
Service Release 1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Microsoft Java Virtual Machine - Sun vs. Microsoft
1
*Internet Security and
Acceleration
Server(ISA) 2000
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Microsoft Java Virtual Machine - Sun vs. Microsoft
1
*Visual Studio 6 Microsoft
Developer Edition
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Microsoft Java Virtual Machine - Sun vs. Microsoft
1
The Microsoft Java Virtual Machine was
discontinued in 2003 in response to the
Sun Microsystems lawsuit. Microsoft
continued to offer support until December
31,
2007.http://www.microsoft.com/mscorp/jav
a/default.mspx
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Microsoft Java Virtual Machine - Windows XP
1
The initial release of Windows XP in 2001
did not ship with a Java virtual machine,
because of the settlement with Sun. The
settlement required people who wanted to
run Java Applets in Internet Explorer to
download and install either the standard
HotSpot|Sun Java virtual machine, or to
download a copy of the Microsoft Java
virtual machine.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Microsoft Java Virtual Machine - Windows XP
1
Service Pack 1 (SP1) for Windows XP was
released on September 9, 2002. It contained
post-RTM security fixes and hot-fixes,
compatibility updates, optional .NET
Framework support, and enabled
technologies for new devices such as Tablet
PCs. It also included the Microsoft Java
virtual machine. On February 3, 2003,
Microsoft re-released Service Pack 1 (SP1)
as Service Pack 1a (SP1a). This release
removed Microsoft's Java virtual machine in
compliance with the lawsuit with Sun
Microsystems.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
HP Integrity Virtual Machines
1
'Integrity Virtual Machines' is software from
Hewlett-Packard that allows multiple
virtual machines to run concurrently on
any Itanium Server (computing)|server
running HP-UX, notably the HP Integrity
line. It is part of HP's Virtual Server
Environment suite.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
HP Integrity Virtual Machines - History
1
A prototype of Integrity Virtual Machines
was then developed between 2000 and
2003 by Christophe de Dinechin, Todd
Kjos and Jonathan Ross (Integrity Virtual
Machines)|Jonathan Ross
https://store.theartofservice.com/the-virtual-machine-toolkit.html
HP Integrity Virtual Machines - History
1
* Version 1.0 and 1.2, released in
2005, ran HP-UX in virtual
machines.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
HP Integrity Virtual Machines - History
1
* Version 2.0, released in November 2006,
additionally supports Windows Server
2003, CD Burner|CD and DVD burners,
tape drives and VLAN.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
HP Integrity Virtual Machines - History
* Version 3.0, released in June 2007,
supports Linux Red Hat Enterprise
Linux[https://www.redhat.com/apps/isv_cat
alog/AppProfile.html?application_id=4633
redhat.com | Application Profile Display]
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
HP Integrity Virtual Machines - History
* Version 3.5, released in late 2007,
supports SUSE Linux Enterprise Server,[
http://developer.novell.com/yes/92318.htm
HPVM 3.5] HP-UX 11i v3 guests, new
service packs for Windows and Linux
guests, and accelerated virtual I/O for HPUX guests,[
http://bizsupport2.austin.hp.com/bc/docs/s
upport/SupportManual/c02018669/c02018
669.pdf New Features and Enhancements
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
HP Integrity Virtual Machines - History
* Version 4.0, released in September
2008, runs on HP-UX 11.31 (also known
as 11i v3), supports 8 virtual CPUs,
capped CPU allocation (in addition to CPU
entitlement as in previous releases),
additional support for accelerated virtual
I/O (AVIO), and a new VM performance
analysis tool. Version 4.0 also includes
beta functionality such as on-line migration
and support for OpenVMS guests.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
HP Integrity Virtual Machines - History
* Version 4.1, released in April 2009,
supports Online VM Migration which
allows customers to migrate active guests
from one VM Host to another VM Host
without service interruption. It also
provides support for SSH third-party
alternatives for secure communications,
accelerated virtual I/O (AVIO) for
networking on Windows and Linux guests,
support for ignite and VxVM backing
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
HP Integrity Virtual Machines - History
* Version 4.2, released March 2010,
supports encryption during a VM
migration, brings support for newer
Itanium hardware and VM Guest OS
versions, contains software allowing for
VMs as Serviceguard packages and
Serviceguard Nodes, and support for
automatic memory reallocation.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
HP Integrity Virtual Machines - History
1
* Version 4.2.5, released September 2010,
brings support for the HP Superdome|HP
Integrity Superdome 2, as well as suspend
and resume support for a VM.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
HP Integrity Virtual Machines - History
1
* Version 4.3, released March 2011, brings
support for the Tukwila (processor)|Intel®
Itanium® Tukwila processor, an NVRAM
Edit utility, a Virtual iLO Remote Console,
16 virtual CPUs for guests, 128GB for
guest memory, 256 AVIO storage devices,
the support for Fibre Channel over
Ethernet|Fiber Channel over Ethernet, and
the support of Network File System|NFS
backing stores. .
https://store.theartofservice.com/the-virtual-machine-toolkit.html
HP Integrity Virtual Machines - History
1
* Version 6.1, released March 2012 brings
support for management of Hp vPar,
Direct Input Output (DIO) feature for
improved I/O functionality, manageability
and performance .
https://store.theartofservice.com/the-virtual-machine-toolkit.html
HP Integrity Virtual Machines - Capabilities
Exact specifications
depend on the precise
version and system
configuration.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
HP Integrity Virtual Machines - Capabilities
1
* The host configurations are the same as
those supported by HP-UX, and can
include 128 physical cores and 1TB of
main memory.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
HP Integrity Virtual Machines - Capabilities
* More than 250 guests can run
concurrently, although the optimal number
is generally lower, depending on host
memory and processor configuration.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
HP Integrity Virtual Machines - Capabilities
* Guests can have Symmetric
multiprocessing|multiple virtual CPUs, the
maximum number in supported
configurations being 4 with releases
before 4.0, then 8 with release 4.0, and 16
with release 4.3.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
HP Integrity Virtual Machines - Capabilities
* Guests can be configured with up to
128G of memory with version 4.3. In
recent releases, memory can be adjusted
dynamically for HP-UX guests.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
HP Integrity Virtual Machines - Capabilities
1
* Virtual devices can be added or removed
dynamically. The number of virtual devices
allowed in supported configurations
depends on the release. Versions after 4.3
support up to 256 when accelerated virtual
I/Os are used.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
HP Integrity Virtual Machines - Capabilities
1
* The CPU allocation for virtual machines
can be adjusted dynamically with a
granularity of 1% or 1MHz. CPU time is
allocated by a Fair-share scheduling|fairshare scheduler, which delivers better
CPU utilization for Symmetric
multiprocessing|SMP guests than a more
simplistic Gang scheduling|gang
scheduler.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
HP Integrity Virtual Machines - User interface
1
Integrity Virtual Machines can be created
and managed using a command line
interface or a graphical user interface
accessed using a web browser.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
HP Integrity Virtual Machines - User interface
1
Essential commands
include:
https://store.theartofservice.com/the-virtual-machine-toolkit.html
HP Integrity Virtual Machines - User interface
1
* hpvmcreate to create
virtual machines
https://store.theartofservice.com/the-virtual-machine-toolkit.html
HP Integrity Virtual Machines - User interface
* hpvmstart and
hpvmstop to start and
stop virtual machines
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
HP Integrity Virtual Machines - User interface
1
* hpvmmodify to modify existing
virtual machines
https://store.theartofservice.com/the-virtual-machine-toolkit.html
HP Integrity Virtual Machines - User interface
1
* hpvmconsole to simulate a
hardware console
https://store.theartofservice.com/the-virtual-machine-toolkit.html
HP Integrity Virtual Machines - User interface
1
* hpvmmigrate to perform
on-line or off-line guest
migration
https://store.theartofservice.com/the-virtual-machine-toolkit.html
HP Integrity Virtual Machines - User interface
1
* hpvmsar to show performance
information about the running
guests.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
HP Integrity Virtual Machines - User interface
* hpvmsuspend and
hpvmresume to suspend
and resume virtual
machines
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
HP Integrity Virtual Machines - User interface
1
The user interface is integrated in the HP
Integrity Virtual Machines
Manager.[http://h20000.www2.hp.com/bc/
docs/support/SupportManual/c02536236/c
02536236.pdf HP Integrity Virtual
Machines Manager]
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Squawk virtual machine
(This is called a Meta-circular
evaluator|meta-circular interpreter.) A Java
implementation provides ease of
portability, and a seamless integration of
virtual machine and application resources
such as objects, threads, and operatingsystem interfaces.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Squawk virtual machine
1
* Write as much of the VM in Java
as possible
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Squawk virtual machine
1
* Targeting small, resource
constrained devices
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Squawk virtual machine
Squawk has a Java Platform, Micro
Edition|Java ME heritage and features a
small memory
footprint.[http://research.sun.com/projects/
squawk/docs/lctes03.pdf A Java Virtual
Machine Architecture for Very Small
Devices] It was developed to be simple
with minimal external dependencies
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
JRuby - Multiple virtual machine collaboration
1
On February 27, 2008, Sun Microsystems
and the University of Tokyo announced a
joint-research project to implement a
virtual machine capable of executing more
than one Ruby (programming
language)|Ruby or JRuby application on
one interpreter.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
JRuby - Dynamic invocation on Java Virtual Machines
1
JSR 292 (Supporting Dynamically Typed
Languages on the JavaTM Platform) [
http://www.jcp.org/en/jsr/detail?id=292 see
JSR 292] proposes:
https://store.theartofservice.com/the-virtual-machine-toolkit.html
JRuby - Dynamic invocation on Java Virtual Machines
1
* adding a new invokedynamic instruction
at the JVM level, allowing method
invocation using dynamic Type
system#Type checking|type checking,
https://store.theartofservice.com/the-virtual-machine-toolkit.html
JRuby - Dynamic invocation on Java Virtual Machines
1
* dynamically changing
classes and methods at
runtime.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
JRuby - Dynamic invocation on Java Virtual Machines
1
The Sun Microsystems|Sun Open source
project Da Vinci Machine|Multi Language
Virtual Machine aims to prototype this
JSR. The first working prototype,
developed as a patch on OpenJDK, was
announced and made available on end of
August 2008.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
JRuby - Dynamic invocation on Java Virtual Machines
The JRuby team has implemented
dynamic invocation into their codebase.
Dynamic invocation initially shipped with
the 1.1.5 release in a primitive form.
Version 1.7.0 enabled it by default on Java
8 builds.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
GNU Classpath - Virtual machine integration
1
Such libraries are provided by the authors
of a Java virtual machine, hence GNU
Classpath can be connected to nearly any
Java virtual machine if the sources of such
virtual machine are available and can be
modified.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Comparison of platform virtual machines
'Platform virtualization software',
specifically emulators and hypervisors, are
application software|software packages
that emulate the whole physical computer
machine, often providing multiple virtual
machines on one physical platform. The
table below compares basic information
about Hardware virtualization|platform
virtualization hypervisors.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Web2py - Operating systems, Python versions implementations, virtual
machines, hardwares
web2py runs on Microsoft
Windows|Windows, Windows CE phones,
Macintosh|Mac, Unix/Linux, Google App
Engine, Amazon EC2, and almost any web
hosting via Python 2.4[
http://www.web2py.com/AlterEgo/default/s
how/219 How to run web2py with Python
2.4]/2.5/2.6/2.7.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Web2py - Operating systems, Python versions implementations, virtual
machines, hardwares
Release versions of web2py include
Python 2.5, but the source version can be
run on 2.4 through 2.7.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Web2py - Operating systems, Python versions implementations, virtual machines,
hardwares
1
web2py since v1.64.0 runs unmodified on
Java (software platform)|Java with Jython
2.5, without any known limitation.[
http://www.web2py.com/AlterEgo/default/s
how/228 Web2py runs fully on Java and
J2EE using Jython]
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Web2py - Operating systems, Python versions implementations, virtual
machines, hardwares
1
web2py code can run with IronPython on
.NET Framework|.NET.[
http://stackoverflow.com/questions/437160
/ironpython-webframework Web2py runs
with IronPython on .NET, with limitations]
Limitations:
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Web2py - Operating systems, Python versions implementations, virtual
machines, hardwares
1
* no csv module (so no database
I/O);
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Web2py - Operating systems, Python versions implementations, virtual machines,
hardwares
1
* no built-in web server (unless you cripple it by
removing signals and logging).
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Web2py - Operating systems, Python versions implementations, virtual
machines, hardwares
The web2py binary will[
http://www.web2py.com/AlterEgo/default/s
how/133 MySQL with web2py Windows
binary on a USB thumb-drive] run from a
USB flash drive|USB drive or a portable
Hard Drive without dependencies, like [
http://www.portablepython.com/ Portable
Python].
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Java Virtual Machine
A 'Java Virtual Machine' ('JVM') is a
Virtual_machine#Process_virtual_machine
s | process virtual machine that can
execute Java bytecode. It is the code
execution component of the Java platform.
Sun Microsystems has stated that there
are over 5.5 billion JVM-enabled
devices.[http://www.java.com/en/about/
Learn about Java Technology]
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Java Virtual Machine - Overview
1
JIT compiling, not interpreting, is used in most JVMs
today to achieve greater speed.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Java Virtual Machine - JVM languages
1
Although the JVM was primarily aimed at
running compiled Java programs, many
other languages can now run on top of it.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Java Virtual Machine - JVM languages
1
The JVM has currently no built-in support
for Dynamic typing|dynamically typed
languages: the existing Java
bytecode|JVM instruction set is Static
typing|statically typed, although the JVM
can be used to implement interpreters for
dynamic languages. Java 7 supports
dynamically typed languages which
started as Sun's Da Vinci Machine project.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Java Virtual Machine - Bytecode verifier
A basic philosophy of Java is that it is
inherently safe from the standpoint that no
user program can crash the host machine
or otherwise interfere inappropriately with
other operations on the host machine, and
that it is possible to protect certain
methods and data structures belonging to
trusted code from access or corruption by
untrusted code executing within the same
JVM
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Java Virtual Machine - Bytecode verifier
1
The JVM verifies all bytecode before it is
executed. This verification consists
primarily of three types of checks:
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Java Virtual Machine - Bytecode verifier
The first two of these checks take place
primarily during the verification step that
occurs when a class is loaded and made
eligible for use. The third is primarily
performed dynamically, when data items
or methods of a class are first accessed by
another class.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Java Virtual Machine - Bytecode verifier
1
The verifier permits only some
bytecode sequences in valid
programs, e.g
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Java Virtual Machine - Bytecode verifier
1
Code verification also ensures that arbitrary
bit patterns cannot get used as an address.
Memory protection is achieved without the
need for a memory management unit (MMU).
Thus, JVM is an efficient way to get memory
protection on simple architectures that lack
an MMU. This is analogous to managed code
in Microsoft's .NET Common Language
Runtime, and conceptually similar to
capability architectures such as the Plessey
250, and IBM System/38.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Java Virtual Machine - Bytecode verifier
1
The original specification for the bytecode
verifier used natural language that was
incomplete or incorrect in some respects
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Java Virtual Machine - Bytecode instructions
The JVM has instruction (computer
science)|instructions for the following groups of
tasks:
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Java Virtual Machine - Bytecode instructions
* dynamic memory
allocation|Object creation
and manipulation
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Java Virtual Machine - Bytecode instructions
* branch (computer
science)|Control transfer
(branching)
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Java Virtual Machine - Bytecode instructions
1
* subroutine|Method
invocation and return
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Java Virtual Machine - Bytecode instructions
* monitor
(synchronization)|Monit
or-based concurrency
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Java Virtual Machine - Bytecode instructions
The aim is binary compatibility. Each
particular host operating system needs its
own implementation of the JVM and
runtime. These JVMs interpret the
bytecode semantically the same way, but
the actual implementation may be
different. More complex than just
emulating bytecode is compatibly and
efficiently implementing the Java Class
Library|Java core API that must be
mapped to each host operating system.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Java Virtual Machine - Heap
1
The Java virtual machine heap is the area
of memory used by the JVM, specifically
HotSpot, for dynamic memory allocation.
The heap is divided into generations:
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Java Virtual Machine - Heap
1
* The young generation stores short-lived
object (computer science)|objects that are
created and immediately garbage
collection (computer science)|garbage
collected.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Java Virtual Machine - Heap
1
* Objects that persist longer are moved to the old
generation (also called the tenured generation).
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Java Virtual Machine - Heap
1
The permanent generation (or permgen) is
used for class (file format)|class definitions
and associated metadata. Permanent
generation is not part of the heap.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Java Virtual Machine - Heap
Originally there was no permanent
generation, and objects and classes were
stored together in the same area. But as
class unloading occurs much more rarely
than objects are collected, moving class
structures to a specific area allows
significant performance improvements.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Java Virtual Machine - Secure execution of remote code
1
A virtual machine architecture allows very
fine-grained control over the actions that
code within the machine is permitted to
take
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Java Virtual Machine - C to bytecode compilers
1
From the viewpoint of a compiler, the Java
virtual machine is just another processor with
an instruction set, Java bytecode, for which
code can be generated. The JVM was
originally designed to execute programs
written in the Java language. However, the
JVM provides an execution environment in
the form of a bytecode instruction set and a
runtime system that is general enough that it
can be used as the target for compilers of
other programming language|languages.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Java Virtual Machine - C to bytecode compilers
1
Because of its close association with the
Java language, the JVM performs the
strict runtime checks mandated by the
Java specification
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Java Virtual Machine - C to bytecode compilers
1
* [ http://nestedvm.ibex.org/ NestedVM]
translates C to MIPS machine language
first before converting to Java bytecode.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Java Virtual Machine - C to bytecode compilers
1
* [ http://cibyl.googlecode.com Cibyl] works similarly
to NestedVM but targets J2ME devices.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Java Virtual Machine - C to bytecode compilers
* [ http://www.novosoftus.com/solutions/product_c2j.shtml C2J] is
also GCC-based, but it produces
intermediary Java source code before
generating bytecode. Supports the full
ANSI C runtime. Available as a Win32
binary or as a Java executable.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Java Virtual Machine - C to bytecode compilers
*[
http://www.itee.uq.edu.au/~cristina/uqbt.ht
ml#gcc-jvm Java Backend for GCC],
possibly the oldest project of its kind, was
developed at The University of
Queensland in 1999.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Java Virtual Machine - C to bytecode compilers
1
* [ http://sourceforge.net/projects/javum/
Javum] is an attempt to port the full GNU
environment to the JVM, and includes one
of the above compilers packaged with
additional utilities.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Java Virtual Machine - C to bytecode compilers
1
Compilers targeting Java bytecode have
been written for other programming
languages, including Ada (programming
language)|Ada and COBOL.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Java Virtual Machine - Licensing
1
The specification for the JVM is published
in book form,[
http://java.sun.com/docs/books/vmspec/
The Java Virtual Machine Specification]
(the [
http://java.sun.com/docs/books/vmspec/ht
ml/VMSpecTOC.doc.html first] and [
http://java.sun.com/docs/books/vmspec/2n
d-edition/html/VMSpecTOC.doc.html
second] editions are also available online)
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Java Virtual Machine - Licensing
1
One of Oracle's JVMs is named HotSpot.
clean room design|Clean-room Java
implementations include Kaffe and IBM J9.
Oracle retains control over the Java
trademark, which it uses to certify
implementation suites as fully compatible
with Oracle's specification.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Maxine Virtual Machine
It is one of a growing number of Java
Virtual Machines written entirely in Java in
a Meta-circular evaluator|meta-circular
style (for example, Squawk virtual
machine|Squawk and Jikes RVM).
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Maxine Virtual Machine
Oracle has stopped development of
Maxine with the release of Maxine
2.0.https://kenai.com/projects/maxine/lists/
users/archive/2013-09/message/0
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Maxine Virtual Machine - Architecture
1
The Maxine VM is characterized internally
by aggressive use of advanced language
features in Java 1.5 and 1.6, by modular
subsystems coordinated through Java
interfaces, and by the absence of an
interpreter.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Maxine Virtual Machine - Compatibility
Maxine is plug compatible with an
unmodified JDK. Maxine can be
developed, built, and run in standard Java
Integrated development
environment|IDEs, including Netbeans,
Eclipse, and IntelliJ.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Maxine Virtual Machine - Systems programming in Java
A secondary goal of the project is
development of methodologies and tools
for systems programming in Java.
Compiler extensions, configured in VM
source code using Java annotations,
permit the use, without performance
penalty, of low-level operations that are
not otherwise allowed in Java.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Maxine Virtual Machine - The Maxine Inspector
Specialized debugging support for the
Maxine VM is provided by the Maxine
Inspector:[
http://wikis.oracle.com/display/MaxineVM/
The+Maxine+Inspector Maxine Inspector]
a companion tool that acts as a combined
object, class, and method browser, as well
as a machine-level debugger. The
Inspector runs out-of-process, requires no
active VM support, and leverages code
shared with the VM for specialized
developer services.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Process virtual machine - System virtual machines
1
* application provisioning, maintenance,
high availability and disaster
recovery[http://www.vmware.com/solutions
/business-critical-apps/ VMware
Application Virtualization for Enterprise
Software Applications]. Vmware.com.
Retrieved on 2013-06-14.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Process virtual machine - List of virtual machine software
* LLVM, currently C
(programming language)|C,
C++, Stacker
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Process virtual machine - List of virtual machine software
*[
http://retroforth.org/docs/The_Ngaro_Virtu
al_Machine.html Ngaro], a dual stack VM
which is the base of RetroForth
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Process virtual machine - List of virtual machine software
1
*[
http://www.transvirt.com TransVirtual Systems]
emulation of Wang Laboratories VS hardware.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
OSx86 - Virtual machine
1
It is also possible to run the Mac OS as a
virtual machine inside of other operating
systems installed on standard PC
hardware, by using virtualization software
such as Oracle Corporation|Oracle's
VirtualBox (though this is not officially
supported by Oracle). This method
typically utilizes some of the modified OS
software listed above to perform the actual
install.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Qubes OS - Application Virtual Machines (AppVM)
1
AppVMs are the virtual machines used for
hosting user applications, such as a web
browser, an e-mail client or a text editor.
For security purpose, these applications
can be grouped in different domains, such
as “personal”, “work”, “shopping”, “bank”,
etc. The security domains are
implemented as separate, Virtual
Machines (VMs), thus being isolated from
each other as if they were executing on
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Qubes OS - Application Virtual Machines (AppVM)
1
Some documents or application can be
run in disposable VMs through an action
available in the file manager. The
mechanism follows the idea of Sandbox
(computer security)|sandboxes: after
viewing the document or application, then
the whole Disposable VM will be
destroyed.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Qubes OS - Application Virtual Machines (AppVM)
Each security domain is labelled by a
color, and each window is marked by the
color of the domain it belongs to. So it is
always clearly visible to which domain a
given window belongs.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
System Center Virtual Machine Manager
[
http://www.microsoft.com/systemcenter/sc
vmm/evaluation/faq.mspx Virtual Machine
Manager FAQ] A standalone version for
small and medium business customers is
available.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
System Center Virtual Machine Manager
1
VMM enables rapid provisioning of new
virtual machines by the administrator and
end users using a self-service provisioning
tool
https://store.theartofservice.com/the-virtual-machine-toolkit.html
System Center Virtual Machine Manager
1
Microsoft System Center Virtual Machine
Manager 2008 R2 was released in 2010,
which added Live Migration and other new
features.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
System Center Virtual Machine Manager
1
The latest release is System Center Virtual
Machine Manager 2012 SP1, which was
released in December 2012.[
http://social.technet.microsoft.com/Forums
/enUS/dataprotectionmanager/thread/35a8d3
4e-1891-47c4-b1f864f4511c14ee/#765fd360-b5ac-4a3481bc-25f62aed83ab System Center 2012
SP1 RTM] This product enables the
https://store.theartofservice.com/the-virtual-machine-toolkit.html
System Center Virtual Machine Manager
SCVMM 2012 SP1 provides the
framework to import Add-ins created by
external vendors, so that vendors can
provide their product specific features and
details. HP Storage Management Add-ins
is one of the free add-ins available from
HP Storage to provide context sensitive indepth information on their storage arrays.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Baan Corporation - Baan Virtual Machine - bshell
Bshell is the core component of Baan
application server. It is a process virtual
machine to run Baan 4GL language.
Bshell were ported to different server
platforms and make Baan program scripts
platform independent. For example, a
Baan session developed on Windows
platform can be copied to Linux platform
without re-compiling the application code.
Bshell is similar to nowaday's Java VM or
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Parrot virtual machine
'Parrot' is a register machine|registerbased Application virtual machine|process
virtual machine designed to abstraction
layer|run dynamic languages efficiently. It
is possible to compile Parrot assembly
language and Parrot intermediate
representation|PIR (an intermediate
language) to Parrot bytecode and execute
it. Parrot is free software|free and open
source software.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Parrot virtual machine
Parrot was started by the Perl|Perl
programming community and is developed
with help from the free software
community|open source and free software
communities
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Parrot virtual machine - History
1
The name Parrot came from an April Fool's
joke which announced a hypothetical
language, named Parrot, that would unify
Python (programming language)|Python and
Perl. The name was later adopted by this
project (initially a part of the Perl 6
development effort) which aims to support
Perl 6, Python, and other programming
languages. Several languages are being
Porting|ported to run on the Parrot virtual
machine.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Parrot virtual machine - History
The Parrot Foundation was created in
2008 to hold the copyright and trademarks
of the Parrot project, to help drive
development of Programming language
implementation|language implementations
and the core codebase, to provide a base
for growing the Parrot community, and to
reach out to other language
communities.[http://www.parrotblog.org/20
08/06/announcing-parrot-foundation.html ]
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Parrot virtual machine - Languages
1
The goal of the Parrot virtual machine is to
host client languages and allow interoperation between them. Several hurdles
exist in accomplishing this goal, in
particular the difficulty of mapping highlevel concepts, data, and data structures
between languages.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Parrot virtual machine - Static and dynamic languages
The differing properties of Type
checking|statically and dynamically typed
languages have motivated the design of
Parrot. Current popular virtual machines
such as the Java virtual machine and the
Common Language Runtime, for the .NET
platform, have been designed for statically
typed languages, while the languages
targeted by Parrot are dynamically typed.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Parrot virtual machine - Static and dynamic languages
Other register-based virtual machines
have inspired parts of Parrot's design,
including LLVM, the Lua (programming
language)#Internals|Lua VM and Inferno's
Dis virtual machine|Dis.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Parrot virtual machine - Functional concepts
1
Parrot has rich support for several features of
functional programming including Closure
(computer science)|closures and
continuations, both of which can be
particularly difficult to implement correctly and
portably, especially in conjunction with
exception handling and thread (computer
science)|threading. Implementing solutions to
these problems at the virtual machine level
prevents repeated efforts to solve these
problems in the individual client languages.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Parrot virtual machine - Compiler tools
1
Parrot provides a suite of Parrot compiler
toolchain|compiler-writing
tools[http://docs.parrot.org/parrot/latest/ht
ml/docs/book/ch04_compiler_tools.pod.ht
ml ] which includes the Parser Grammar
Engine (PGE), a hybrid parser-generator
that can express a recursive descent
parser as well as an operator-precedence
parser, allowing free transition between
the two in a single grammar
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Parrot virtual machine - Existing client languages
Many languages already have compiler
front-ends designed for Parrot; however,
many of them are still only partially
functional. As of July 2013, actively
maintained languages
are:[http://parrot.org/languages Parrot.Org:
Languages]
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Parrot virtual machine - Existing client languages
1
* Java (programming
language)|Java
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Parrot virtual machine - Existing client languages
1
* Joy (programming
language)|Joy
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Parrot virtual machine - Existing client languages
1
* Perl 6 (via Rakudo Perl 6)
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Parrot virtual machine - Existing client languages
1
* Python (programming
language)|Python
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Parrot virtual machine - Existing client languages
1
* Ruby (programming
language)|Ruby (via
Cardinal)
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Parrot virtual machine - Existing client languages
* Scheme
(programming
language)|Scheme
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Parrot virtual machine - Existing client languages
* Shakespeare
(programming
language)|Shakespeare
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Parrot virtual machine - Existing client languages
1
* the Wikibooks:Parrot Virtual Machine/Squaak
Tutorial|squaak tutorial language
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Parrot virtual machine - Existing client languages
1
Inactive languages, as of July 2013,
are the following:
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Parrot virtual machine - Existing client languages
1
* Arc (programming
language)|Arc
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Parrot virtual machine - Existing client languages
1
* APL (programming language)|APL
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Parrot virtual machine - Existing client languages
1
* Lisp (programming
language)|Lisp
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Parrot virtual machine - Existing client languages
1
* Forth (programming
language)|Forth
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Parrot virtual machine - Existing client languages
1
* Jako (programming
language)|Jako
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Parrot virtual machine - Existing client languages
1
* Common Intermediate
Language|.NET bytecode
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Parrot virtual machine - Internals
*
Bytecodehttp://www.parrotcode.org/docs/p
arrotbyte.html is binary and is natively
interpreted by Parrot. Bytecode is usually
stored in files with the filename extension
.pbc.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Parrot virtual machine - Internals
1
* Parrot Assembly Language (PASM) is
the low level language that
Compiler|compiles down to bytecode.
PASM code is usually stored in files with
the filename extension .pasm.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Parrot virtual machine - Internals
1
* Parrot intermediate representation|Parrot
Intermediate Representation
(PIR[http://docs.parrot.org/parrot/latest/html/d
ocs/book/ch03_pir.pod.html ]) is a slightly
higher level language than PASM and also
compiles down to bytecode. It is the primary
target of language implementations. PIR
transparently manages Parrot's inter-routine
calling conventions, provides improved
syntax, register allocation, and more. PIR
code is usually stored in files with the
filename extension .pir.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Parrot virtual machine - Registers
Parrot is register-based like most
hardware Central processing unit|CPUs,
and unlike most virtual machines, which
are stack-based. Parrot provides four
types of registers:
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Parrot virtual machine - Registers
* N: floating
point|floating-point
numbers
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Parrot virtual machine - Registers
1
* S: advanced String (computer science)|string
registers with Unicode support
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Parrot virtual machine - Registers
1
Parrot provides an arbitrary number of
registers; this number is fixed at compile
time per subroutine.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Parrot virtual machine - Development
1
Until late 2005, Dan Sugalski was the lead
designer and chief architect of Parrot.
Chip Salzenberg, a longtime Perl, Linux
kernel, and C++ hacker, took over until
mid-2006, when he became the lead
developer. Allison Randal, the lead
developer of Punie and chief architect of
Parrot's compiler tools, was the chief
architect until mid-October 2010 when she
stepped down and chose Christoph Otto
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Parrot virtual machine - Development
Development discussions take place
primarily on the #parrot channel on
irc.perl.org. In addition, there are weekly
moderated meetings for Parrot and
language developers hosted in
#parrotsketch on the same network. Much
discussion also occurs on the parrot-dev
mailing list, hosted by parrot.org.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Parrot virtual machine - Development
Design discussions exist in the form of
Parrot Design Documents, or PDDs, in the
Parrot repository. The chief architect or
another designated designer produces
these documents to explain the philosophy
of a feature as well as its interface and
design notes. Parrot hackers turn these
documents into executable tests, and then
existing features.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Parrot virtual machine - Development
The Parrot team releases a new stable
version of the software on the third
Tuesday of every month. Core committers
take turns producing releases in a
revolving schedule, where no single
committer is responsible for multiple
releases in a row. This practice has
improved the project's velocity and
stability.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Perl virtual machine
The 'Perl virtual machine' is a Stack
machine|stack-based Application virtual
machine|process virtual machine
implemented as an opcodes Interpreter
(computing)|interpreter which runs
previously compiled programs written in
the Perl language
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Perl virtual machine - Opcodes
The Perl compiler outputs a compiled
program into memory as an internal
structure which can be represented as a
tree graph in which each node represents
an opcode
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Perl virtual machine - Opcodes
1
Perl's opcodes interpreter is implemented
as a tree walker which travels by opcode
tree in execute order from start node,
following the next or other pointers. Each
opcode has a function pointer to a
pp_opname function, i.e. say opcode calls
pp_say function of internal Perl API.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Perl virtual machine - Opcodes
1
The phase of compiling the Perl program
is hidden for the end user, but it can be
exposed with B Perl module or other
specialized modules like B::Concise Perl
module.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Perl virtual machine - Opcodes
1
An example of compiled simple Hello
world program with a help of B::Concise
Perl module, dumped in execute order:
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Perl virtual machine - Opcodes
1
Some opcodes (entereval, dofile, require)
call Perl compiler functions which generate
other opcodes in the same Perl virtual
machine.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Perl virtual machine - Variables
1
Perl variables can be global, dynamic (local
keyword), or lexical (my and our keywords).
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Perl virtual machine - Variables
1
Local variables are the same as global
variables but a special opcode is
generated to save its value on savestack
and restore it later.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Perl virtual machine - Data structures
The internal data structures can be
examined with B Perl module or other
specialized tools like Devel::Peek Perl
module.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Perl virtual machine - data types
1
Perl has three typedefs that handle Perl's
three main data types: Scalar Value (SV),
Array Value (AV), Hash Value (HV). Perl
uses a special typedef for simple signed
integer type (IV), an unsigned integer (IV),
a floating point number (NV) and string
(PV).
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Perl virtual machine - data types
Perl uses a reference count-driven
garbage collection mechanism. SVs, AVs,
or HVs start their life with a reference
count of 1. If the reference count of a data
value ever drops to 0, then it will be
destroyed and its memory made available
for reuse.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Perl virtual machine - data types
1
Other typedefs are Glob Value (GV) which
contains named references to the various
objects, Code Value (CV) which contains a
reference to Perl subroutine, I/O Handler
(IO), a reference to regular expression
(REGEXP; RV in Perl before 5.11),
reference to compiled format for output
record (FM) and simple reference which is
a special type of scalar that point to other
data types (RV).
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Perl virtual machine - stash
1
Special Hash Value is stash, a hash that
contains all variables that are defined
within a package. Each value in this hash
table is a Glob Value (GV).
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Perl virtual machine - padlist
1
Special Array Value is padlist which is an
array of array. Its 0th element to an AV
containing all lexical variable names (with
prefix symbols) used within that
subroutine. The padlist's first element
points to a scratchpad AV, whose elements
contain the values corresponding to the
lexical variables named in the 0th row.
Another elements of padlist are created
when the subroutine recurses or new
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Perl virtual machine - Stacks
1
Perl has a number of stacks
to store things it is working
on.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Perl virtual machine - Argument stack
Arguments are passed to opcode and
returned from opcode using the argument
stack. The typical way to handle
arguments is to pop them off the stack,
and then push the result back onto the
stack.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Perl virtual machine - Mark stack
1
This stack saves bookmarks to locations in
the argument stack usable by each
function so the functions doesn't
necessarily get the whole argument stack
to itself.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Perl virtual machine - Save stack
1
This stack is used for saving and restoring
a value of dynamically Scope
(programming)|scoped local variable.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Perl virtual machine - Scope stack
1
This stack stores information about actual scope
and it is used only for debugging purposes.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Perl virtual machine - Other implementations
There is no standarization for Perl
language and Perl virtual machine. The
internal API should be considered as nonstable and changes from version to
version. The Perl virtual machine is tied
closely to compiler. These things make
very hard to reimplement Perl virtual
machine.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Perl virtual machine - Other implementations
The most known and most stable
implementation is a B::C Perl module
which translates opcodes tree to
representation in C language and adds
own tree walker.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Perl virtual machine - Other implementations
Another implementation is an
Acme::Perl::VM Perl module which is an
implementation coded in Perl language
only but it is still tied with original Perl
virtual machine via B:: modules.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
HipHop Virtual Machine
1
'HipHop for PHP' (shortened as 'HipHop')
describes a series of PHP execution
engines and improvements created by
Facebook
https://store.theartofservice.com/the-virtual-machine-toolkit.html
HipHop Virtual Machine
1
The current version of HipHop, known as
HHVM (or the HipHop Virtual Machine)
was open-sourced in late 2011.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
HipHop Virtual Machine
HipHop is currently around 2.7 million
linesAfter cloning the source from GitHub,
running git diff --stat
4b825dc642cb6eb9a060e54bf8d69288fbee4
904 will provide the number of insertions from
when a project was empty. of mostly C++, C
(programming language)|C and PHP source
code and is distributed as Open source
software|open source and free software on
GitHub (under the terms of version 3.01 of
the PHP License).
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines
1
This article provides non-exhaustive lists
of Java SE 'Java virtual machines' (JVMs).
It does not include a large number of Java
ME vendors. Note that Java EE runs on
the standard Java SE JVM but that some
vendors specialize in providing a modified
JVM optimized for Java EE applications. A
large amount of Java development work
takes place on Windows, Solaris, Linux
and FreeBSD, primarily with the Sun
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines
1
The primary reference Java VM implementation is
HotSpot, produced by Oracle Corporation.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Free and open source implementations
1
* Apache Harmony mdash; supports
several architectures and systems.
Discontinued November 2011. Apache
License 2.0.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Free and open source implementations
1
* Avian JVM|Avian mdash; A small, easily
embeddable Java VM and classpath using
just-in-time compilation.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Free and open source implementations
1
* Azul Zulu mdash; is an OpenJDK build
supported by Azul Systems. It is open
source and free to download. The initial
release ran on Windows Server 2008 R2
and 2012 on the Windows Azure Cloud.
Release in January 21, 2014 supports
multiple versions of Linux as well as
Amazon Web Services, Rackspace and
various hypervisors. Also added an
Enterprise version with subscription
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Free and open source implementations
1
* Bck2Brwsr mdash; small JVM capable to
boot fast and run in 100% of modern
browsers including those that have no
special support for Java. Last release in
September, 2013.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Free and open source implementations
1
* CACAO mdash; uses GNU Classpath,
supports multiple architectures. GPL. 1.6.0
released September 4, 2012.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Free and open source implementations
1
* GCJ the GNU Compiler Collection|GCC
Java compiler, that compiles either to
bytecode or to native machine code. The
product is currently in maintenance mode.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Free and open source implementations
1
* HaikuVM, for Atmel AVRs (Arduino) and other
micros using the leJOS runtime.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Free and open source implementations
1
* IcedTea mdash; has the only working
free software Java Web browser plugin.
GPL+GPL linking exception|linking
exception.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Free and open source implementations
* IKVM.NET mdash; Java for Mono
(software)|Mono and the Microsoft .NET
Framework. Uses OpenJDK. Zlib License.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Free and open source implementations
1
* Jamiga mdash; for the Amiga
platform. Depends on GNU
Classpath. GPL.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Free and open source implementations
* JamVM mdash; Developed to be an
extremely small virtual machine compared
to others. Designed to use GNU
Classpath. Supports several architectures.
GPL.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Free and open source implementations
1
* Jaos mdash; Java on Active Object System. Uses
GNU Classpath as a standard library. Unmaintained.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Free and open source implementations
1
* JC virtual machine|JC mdash; Converts
class files from byte-code into C
(programming language)|C. Uses Soot
(computer science)|Soot and GNU
Classpath. GNU Library or LGPL licenses.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Free and open source implementations
1
* JESSICA (Java-Enabled SingleSystem-Image Computing
Architecture).
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Free and open source implementations
1
* Jikes RVM (Jikes Research Virtual
Machine) mdash; Research project.
PowerPC|PPC and IA-32. Supports
Apache Harmony and GNU Classpath
libraries. Eclipse Public License.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Free and open source implementations
1
* JNode mdash; operating system. Version 0.2.8
released on January 29, 2009. LGPL.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Free and open source implementations
* Juice (JVM)|Juice mdash; JavaME
experimental Java Virtual Machine|JVM
developed to run on the NUXI operating
system.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Free and open source implementations
1
* Jupiter JVM|Jupiter mdash; Uses Boehm garbage
collector and GNU Classpath. GPL. Unmaintained.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Free and open source implementations
* JwiK Open Source
Java VM for 8bit micro
for wireless
applications.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Free and open source implementations
1
* leDos real-mode x86 JVM running
on MS-DOS. MPL.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Free and open source implementations
1
* leJOS mdash; Robotics suite, a firmware
replacement for Lego Mindstorms
programmable bricks, provides a Java
programming environment for the Lego
Mindstorms RCX and NXT robots.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Free and open source implementations
1
* MateVM mdash; An experimental JIT implemented
in Haskell (programming language)|Haskell. GPL.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Free and open source implementations
* Maxine Virtual Machine|Maxine mdash; metacircular open source research VM from Oracle Labs.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Free and open source implementations
1
* Mika VM mdash; intended for use in embedded
devices. Cross-platform. BSD-style licence.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Free and open source implementations
1
* miniMV (from UABC-Tij for embedded systems
and Wireless Sensor network devices).
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Free and open source implementations
* Mysaifu JVM|Mysaifu (Windows
CE/Windows Mobile) mdash; the only
open source Java SE-compatible JVM still
in development for PocketPC devices.
GPL 2.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Free and open source implementations
1
* NanoVM mdash; developed to run on the
Atmel AVR ATmega8 used in the Asuro
Robot, can be ported to other AVR-based
systems.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Free and open source implementations
* RoboVM mdash; AOT compiler and
runtime which targets iOS, Mac OS X and
Linux. Largely based on Android
(operating system)|Android's runtime.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Free and open source implementations
1
* SableVM mdash; First free software JVM
to support Java Platform Debugger
Architecture|JVDMI and JDWP. Makes use
of GNU Classpath. LGPL. Version 1.13
released on March 30, 2007.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Free and open source implementations
1
* Squawk virtual machine mdash; A Java
ME VM for embedded systems and small
devices. Cross-Platform. GPL.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Free and open source implementations
1
* SuperWaba mdash; Java-like virtual
machine for portable devices. GPL.
Discontinued, succeeded by TotalCross.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Free and open source implementations
1
* TakaTuka mdash; for wireless
sensor network devices. GPL.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Free and open source implementations
* VM02 a Javacompatible
environment for the
Apple II series of
computers.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Free and open source implementations
1
* Wonka VM mdash; Developed to run on
Acunia's ARM-based hardware. Some
code drawn from GNU Classpath. BSDstyle licence. No longer under active
development, superseded by Mika VM.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Proprietary implementations
* Azul Systems|Azul Zing JVM a fully
compliant Java Virtual Machine based on
HotSpot that uses the Azul C4
(Continuously Concurrent Compacting
Collector) garbage collector. Supports
memory heaps of 100s of GB without GC
pauses and is able to grow and shrink the
heap based on load.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Proprietary implementations
* [http://skelmir.com/products/cee-j-vm
CEE-J] is a clean room design|clean room
implementation of Sun's Java technology,
[http://skelmir.com/home Skelmir] is not a
licensee of Oracle.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Proprietary implementations
1
* Hewlett-Packard, Java for HP-UX, OpenVMS,
Tru64 and Reliant (Tandem) UNIX platforms
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Proprietary implementations
1
* IBM J9|J9 (IBM), for Windows, AIX, Linux (x86 and
PPC), MVS, OS/400, Pocket PC, z/OS
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Proprietary implementations
1
* Classic JVM for IBM
OS/400 (superseded
by J9)
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Proprietary implementations
1
* Imsys AB provides their SNAP (Simple
Network Application Platform) JVM
running on their proprietary IM1000 and
IM3000 microprocessors that feature
microcode execution of Java byte codes.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Proprietary implementations
1
* Apogee provides embedded Java using
IBM J9 and Apache Harmony Class
Library for X86, ARM, MIPS, PowerPC
running on Linux, LynxOS, WinCE.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Proprietary implementations
* Jinitiator, developed by Oracle before
they purchased Sun. Designed to improve
support for Oracle Forms in web sites.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Proprietary implementations
1
* JRockit (originally from Appeal Virtual
Machines) acquired by Oracle for Linux,
Windows and Solaris
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Proprietary implementations
1
* Mac OS Runtime for Java (MRJ)
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Proprietary implementations
* MicroJvm (IS2T - Industrial Smart
Software Technology) Wide range of
virtual machines dedicated to embedded
systems (including hard real-time
constrained systems), ARM7, ARM9, AVR,
AVR32, PPC, MIPS, ...
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Proprietary implementations
1
* Microsoft Java Virtual Machine
(discontinued in 2001)
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Proprietary implementations
* SAPJVM (SAP AG|SAP) is a licensed
and modified SUN JVM ported to all
supported platforms of SAP NetWeaver,
started as Java 5, in the meantime Java 6
compatible (Windows i386, x64, IA-64;
Linux x86, IA-64, PowerPC; AIX PowerPC;
HP-UX SPARC IA-64; Solaris SPARC x8664; i5/OS PowerPC)
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Proprietary implementations
* [http://www.waratek.com Waratek]
CloudVM for Java A
Multitenancy|multitenant JVM that allows
per-tenant isolation, metering and
resource control
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Lesser-known proprietary Java virtual machines
1
* Blackdown Java was a licensed port to
Linux of the reference SunSoft
implementation. It was discontinued in
2007, after OpenJDK became available.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Lesser-known proprietary Java virtual machines
1
* C virtual machine (CVM,
from Sun), supports C
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Lesser-known proprietary Java virtual machines
* Gemstone Database Management
System|Gemstone - modified for Java EE features
(application DBMS)
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
List of Java virtual machines - Lesser-known proprietary Java virtual machines
* Intent
(software)#Intent|Intent (Tao
Group)
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Java performance - Virtual machine optimization techniques
Many optimizations have improved the
performance of the JVM over time.
However, although Java was often the first
Virtual machine to implement them
successfully, they have often been used in
other similar platforms as well.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Application program interface - API sharing and reuse via virtual machine
In this case, a virtual machine enables
language interoperability, by abstracting a
programming language using an
intermediate bytecode and its language
bindings. In these languages, the
compiler performs just-in-time compilation
or ahead-of-time compilation transforming
the source code, possibly written in
multiple languages, into its languageindependent bytecode representation.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Application program interface - API sharing and reuse via virtual machine
For instance, through the bytecode
representation, a program written in
Groovy (programming language)|Groovy
or Scala (programming language)|Scala
language can use any standard Java class
and hence any Java API. This is possible
thanks to the fact both Groovy and Scala
have an object model that is a superset of
that of the Java language; thus, any API
exposed via a Java object is accessible
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Application program interface - API sharing and reuse via virtual machine
On the other side, Groovy and Scala
introduce First-class object|first-class
entities that are not present in Java, like
Closure (computer programming)|closures
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Lars Bak (computer programmer) - Virtual machines
After participating in the design and
implementation of the BETA (programming
language)|BETA Mjølner System, in 1991
he joined the Self group at Sun
Microsystems Laboratories in Cupertino,
California. During his time there, he
developed a programming environment for
Self (programming language)|Self and
added several enhancements to the virtual
machine.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Lars Bak (computer programmer) - Virtual machines
After Sun Microsystems acquired
LongView in 1997, Bak became
engineering manager and technical lead in
the HotSpot team at Sun's Java Software
Division where he developed a highperformance Java virtual
machine.[http://jaoo.dk/jaoo1999/speakers
/bak.html Lars Bak, Biography], from
JAOO.dk
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Lars Bak (computer programmer) - Virtual machines
In 2002, after returning to Aarhus,
Denmark, Bak founded OOVM, a
company which developed software for
mobile phones. In 2004, he sold it to a
Swiss company, Myriad
Group|Esmertec.[http://www.ft.com/cms/s/
2/03775904-177c-11de-8c9d0000779fd2ac.html The genius behind
Google’s web browser. From FT.com.]
Retrieved 29 March 2009.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Lars Bak (computer programmer) - Virtual machines
1
In 2004, Bak joined Google to work on the
Google Chrome|Chrome browser. He did
not return to the United States, preferring
to work in Denmark where his daughters
were also receiving their education. With a
team of 12 engineers, Bak has been
coordinating the development of the V8
JavaScript interpreter for Chrome, named
after V8 engine|the powerful automobile
engine.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Lars Bak (computer programmer) - Virtual machines
Bak has also co-developed the Dart
(programming language)|Dart
programming language presented at the
2011 Goto conference in Aarhus,
Denmark.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Lars Bak (computer programmer) - Virtual machines
1
| SHORT DESCRIPTION = Danish
computer programmer
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual Machine Interface
'Virtual machine
interface'[http://vmi.ncsa.uiuc.edu/ Official
web site for the VMI communication
protocol] (VMI) may refer to a
communication protocol for running
parallel programs on a distributed memory
system.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual Machine Interface
'Virtual Machine
Interface'[http://www.vmware.com/interfac
es/paravirtualization.html Transparent
Paravirtualisation – VMware Inc] is also
the name given by VMware to the
proposed open standard protocol that
guest operating systems can use to
communicate with the hypervisor of a
virtual machine. An implementation of this
standard was merged in the main Linux
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual Machine Interface
GNU/Linux distributions now ship with
'VMI' support enabled by default. Since
newer AMD and Intel CPUs allow for more
efficient virtualization, 'VMI' is being
obsoleted and VMI support will be
removed from Linux kernel in
2.6.37[http://git.kernel.org/?p=linux/kernel/
git/torvalds/linux2.6.git;a=commit;h=d0153ca35d344d9b64
0dc305031b0703ba3f30f0 x86, vmi: Mark
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual Machine Interface
1
.[http://blogs.vmware.com/guestosguide/2
009/09/vmi-retirement.html Support for
guest OS paravirtualization using VMware
VMI to be retired from new products in
2010–2011]
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Hackintosh - Virtual machine
1
It is also possible to run the Mac OS as a
virtual machine inside of other operating
systems installed on standard PC
hardware, by using virtualization software
such as Oracle Corporation|Oracle's
VirtualBox (though this is not officially
supported by Oracle)
https://store.theartofservice.com/the-virtual-machine-toolkit.html
OpenTV - OpenTV Virtual Machine Execution Environment
OpenTV applications are written in C
(programming language)|C, using the
compiler, gcco, which outputs o-code,
which is then run on many set-top boxes.
The OpenTV API wraps all the hardware
functions, including data transmission
(one-way satellite broadcasts, full bidirectional links such as a modem or hardwired serial port and high-speed
broadband networks).
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
OpenTV - OpenTV Virtual Machine Execution Environment
1
The OpenTV 2 SDK is available on the NAGRA
OpenTV Application Community web site.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Comparison of application virtual machines
1
There are often several implementations
of a given virtual machine, each covering a
different functionality footprint.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Comparison of application virtual machines - Comparison of virtual machines
1
The table here summarizes elements for
which the virtual machine designs are
intended to be efficient, not the list of
capabilities present in any implementation.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Comparison of application virtual machines - Comparison of virtual machines
1
Virtual machine instructions process data
in local variables using a main 'model of
computation', typically that of a stack
machine, register machine, or random
access machine often called the memory
machine. Use of these three techniques is
motivated by different tradeoffs in virtual
machines vs physical machines, such as
ease of interpretation, compilation, and
verifiability for security.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Comparison of application virtual machines - Comparison of virtual machines
1
Other virtual machines, such as LLVM, are
more like traditional physical machines,
allowing direct use and manipulation of
pointers
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Comparison of application virtual machines - Comparison of virtual machines
1
The same controls over pointers which
make automatic memory management
possible and allow the virtual machine to
ensure typesafe data access are used to
assure that a code fragment is only
allowed to certain elements of memory
and cannot sidestep the virtual machine
itself
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Comparison of application virtual machines - Comparison of virtual machines
An 'Interpreter (computing)|interpreter'
allows programs made of virtual
instructions to be loaded and immediately
run without a potentially costly compilation
into native machine instructions. Any
virtual machine which can be run can be
interpreted, so the column designation
here refers to whether the design includes
provisions for efficient interpretation (for
common usage).
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Comparison of application virtual machines - Comparison of virtual machines
The challenge of JIT is more one of
implementation than of virtual machine
design, however, modern designs have
begun to make considerations to help
efficiency
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Comparison of application virtual machines - Comparison of virtual machines
1
'Precompiling' refers to the more classical
technique of using an offline compiler to
generate a set of native instructions which
do not change during the runtime of the
program. Because aggressive compilation
and optimization can take time, a
precompiled program may launch faster
than one which relies on JIT alone for
execution. JVM implementations have
mitigated this startup cost by using
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Comparison of application virtual machines - Comparison of virtual machines
'Shared library|Shared libraries' are a
facility to reuse segments of native code
across multiple running programs
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Comparison of application virtual machines - List of application virtual machine
implementations
1
In addition to the portable virtual machines
described above, virtual machines are
often used as an execution model for
individual scripting languages, usually by
an interpreter. This table lists specific
virtual machine implementations, both of
the above portable virtual machines, and
of scripting language virtual machines.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Comparison of application virtual machines - List of application virtual machine
implementations
| Application-level
virtualization for native
code
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Comparison of application virtual machines - List of application virtual machine
implementations
1
| Virtual machine for small devices, similar to Java
(programming language)|Java
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Comparison of application virtual machines - List of application virtual machine
implementations
1
| Ruby (programming
language)|Ruby
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Comparison of application virtual machines - List of application virtual machine
implementations
| Virtual machine of the reference
implementation for Ruby (programming
language)|Ruby 1.9 and newer versions
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Temporal isolation among virtual machines
'Temporal isolation' or 'performance
isolation' among virtual machines|virtual
machine (VMs) refers to the capability of
Temporal isolation|isolating the temporal
behavior (or limiting the temporal
interferences) of multiple VMs among
each other, despite them running on the
same physical host and sharing a set of
physical resources such as processors,
memory, and disks.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Temporal isolation among virtual machines - Introduction to the problem
One of the key advantages of using
Hardware virtualization|virtualization in
server consolidation, is the possibility to
seamlessly pack multiple under-utilized
systems into a single physical host, thus
achieving a better overall utilization of the
available hardware resources. In fact, an
entire Operating System (OS), along with
the applications running within, can be run
in a virtual machine (VM).
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Temporal isolation among virtual machines - Introduction to the problem
1
However, when multiple VMs concurrently
run on the same physical host, they share
the available physical resources, including
CPU(s), network adapter(s), disk
storage|disk(s) and memory
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Temporal isolation among virtual machines - Possible solutions
1
Multiple techniques may be used to face
with the aforementioned problem. They
aim to achieve some degree of temporal
isolation across the concurrently running
VMs, at the various critical levels of
Scheduling (computing)|scheduling: CPU
scheduling, network scheduling and disk
scheduling.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Temporal isolation among virtual machines - Possible solutions
1
For the CPU, it is possible to use proper
scheduling techniques at the hypervisor
level in order to contain the amount of
computing each VM may impose on a
shared physical CPU or core. For
example, on the Xen hypervisor, the BVT,
Credit-based and S-EDF schedulers have
been proposed for controlling how the
computing power is distributed among
competing VMs.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Temporal isolation among virtual machines - Possible solutions
1
In order to obtain a stable performance of
virtualized applications, it is necessary to
use those scheduler configurations which
are not work-conserving.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Temporal isolation among virtual machines - Possible solutions
Also, on the Kernel-based Virtual
Machine|KVM hypervisor, it has been
proposed to use EDF-based scheduling
strategies
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Temporal isolation among virtual machines - Possible solutions
1
Fabio Checconi, Tommaso
Cucinotta, Dario Faggioli,
Giuseppe Lipari,
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Temporal isolation among virtual machines - Possible solutions
1
[http://retis.sssup.it/~tommaso/eng/publicat
ions.html#L_OSPERT09-HMPR
Hierarchical Multiprocessor CPU
Reservations for the Linux Kernel],
Proceedings of the 5th International
Workshop on Operating Systems
Platforms for Embedded Real-Time
Applications (OSPERT 2009), Dublin,
Ireland, June 2009
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Temporal isolation among virtual machines - Possible solutions
1
in order to keep a stable and predictable
performance of virtualized applications
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Temporal isolation among virtual machines - Possible solutions
Tommaso Cucinotta,
Gaetano Anastasi, Luca
Abeni,
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Temporal isolation among virtual machines - Possible solutions
1
[http://retis.sssup.it/~tommaso/eng/publicat
ions.html#L_RTSOAA09-RTV Respecting
temporal constraints in virtualised
services],
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Temporal isolation among virtual machines - Possible solutions
1
Proceedings of the 2nd IEEE International
Workshop on Real-Time Service-Oriented
Architecture and Applications (RTSOAA
2009), Seattle, Washington, July 2009
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Temporal isolation among virtual machines - Possible solutions
1
.Tommaso Cucinotta, Gaetano Anastasi,
Luca Abeni,
[http://retis.sssup.it/~tommaso/eng/publicat
ions.html#L_RTSS08 Real-Time Virtual
Machines], Proceedings of the 29th RealTime System Symposium (RTSS 2008) -Work in Progress Session, Barcelona,
December 2008 Finally, with a multi-core
or multi-processor physical host, it is
possible to deploy each VM on a separate
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Temporal isolation among virtual machines - Possible solutions
1
Multi-queue network adapters exist which
support multiple VMs at the hardware
level, having separate packet queues
associated to the different hosted VMs (by
means of the IP addresses of the VMs),
such as the Virtual Machine Device Queue
(VMDq) devices by Intel.Shefali Chinni,
Radhakrishna Hiremane,
[http://software.intel.com/file/1919 Virtual
Machine Device Queues], Intel
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Temporal isolation among virtual machines - Possible solutions
When using real-time scheduling
strategies for controlling the amount of
CPU reserved to each VM, a challenging
problem is the one of how to properly
account for the CPU time spent in systemwide activities which might not be easy to
account to each VM
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Temporal isolation among virtual machines - Possible solutions
1
.Diwaker Gupta, Lucy
Cherkasova, Robert
Gardner, Amin Vahdat,
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Temporal isolation among virtual machines - Possible solutions
1
[http://www.springerlink.com/content/24pu
8407v9881101/ Enforcing Performance
Isolation Across Virtual Machines in Xen],
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Temporal isolation among virtual machines - Possible solutions
Proceedings of the 7th International
Middleware Conference (Middleware
2006), Lecture Notes in Computer
Science, Volume 4290/2006, pp.342-362,
Melbourne, Australia, November 2006
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Temporal isolation among virtual machines - Possible solutions
1
Along the lines of adaptive reservations, it
is possible to apply feedback-control
strategies in order to dynamically adapt
the amount of resources reserved to each
virtual machine, in order to keep a stable
performance level for the virtualized
application(s)
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Temporal isolation among virtual machines - Possible solutions
1
Following the trend of adaptiveness, in those
cases in which a virtualized system is not
fulfilling the expected performance levels
(either due to unforeseen interferences of
other concurrently running VMs, or due to a
bad deployment strategy that simply picked
up a machine with insufficient hardware
resources), it is possible to live migration|livemigrate virtual machines while they are
running, so as to host them on a more
capable (or less loaded) physical host.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Virtual machine escape
In computer security, 'virtual machine
escape' is the process of breaking out of a
virtual machine and interacting with the
host operating
system.[http://lonesysadmin.net/2007/09/2
2/what-is-vm-escape/ What is VM
Escape? - The Lone Sysadmin] A virtual
machine is a completely isolated guest
operating system installation within a
normal host operating system
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Id Tech 3 - Virtual machine
1
id Tech 3 uses a virtual machine to control
object behavior on the server, effects and
prediction on the client and the user
interface. This presents many advantages
as mod authors do not need to worry
about crashing the entire game with bad
code, clients could show more advanced
effects and game menus than was
possible in Quake II and the user interface
for mods was entirely customizable.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Id Tech 3 - Virtual machine
Virtual machine files are developed in
ANSI C, using Local C compiler|LCC to
compile them to a 32-bit Reduced
instruction set computer|RISC pseudoassembly format. A tool called q3asm then
converts them to QVM files, which are
multi-segmented files consisting of static
data and instructions based on a reduced
set of the input opcodes. Unless
operations which require a specific
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Id Tech 3 - Virtual machine
The virtual machine also contained
bytecode compilers for the x86 and
PowerPC architectures, executing QVM
instructions via an interpreter
(computing)|interpreter.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Croquet project - Virtual machine
1
Croquet’s virtual machine (VM) runs bit
identically on multiple platforms, and
supports multiple abilities that could only
be provided by a true name binding|late
bound, message sending language.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Croquet project - Virtual machine
Croquet’s relationship to Squeak gives
Croquet the property of a purely object
(computer science)|object-oriented system
allowing for significant flexibility in the
design and the nature of the protocols and
architectures that have been developed for
the system.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Croquet project - Virtual machine
1
Because of this, Croquet has the ability to
keep running while code is modified and
tested, while changes are made, an
essential part of the Croquet collaborative
development ability. Users can change
the code running the environment while
the environment is running.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Dis virtual machine
1
In computing, the 'Dis virtual machine'
provides the execution environment for
application code in the Inferno (operating
system)|Inferno operating-system. Its
design, based on a register machine,
closely models complex instruction set
computer|CISC-like architectures.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Dis virtual machine
. Code is interpreter
(computing)|interpreted or is just-in-time
compilation|just-in-time compiled into
machine code for the target architecture.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Dis virtual machine
Dis is the target machine for the Limbo
(programming language)|Limbo programming
language.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Dis virtual machine
1
Dis has memory management built in. It
uses a hybrid of reference counting and a
real-time computing|real-time garbage
collection (computer science)|garbagecollector for cyclic data.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Dis virtual machine
1
The instruction set architecture|instructionset architecture is based on a threeoperand memory-to-memory machine. It
includes instructions for arithmetic, control
flow, and data motion. There are also
instructions for creating new process
(computing)|processes, synchronizing and
communicating between processes,
loading modules of code, and support for
higher-level data-types: strings, arrays,
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Dis virtual machine
1
Dis instructions operate on operands of
byte (8 bits), word (32 bits), float (64 bits),
and big integer (64 bits).
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Dalvik virtual machine
'Dalvik' is the process virtual machine
(VM) in Google|Google's Android
(operating system)|Android operating
system, which, specifically, executes
applications written for Android. This
makes Dalvik an integral part of the
Android software stack, which is typically
used on mobile devices such as mobile
phones and tablet computers, as well as
more recently on devices such as smart
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Dalvik virtual machine
1
Programs are commonly written in Java
programming language|Java and compiled
to bytecode for the Java virtual machine,
which is then translated to Dalvik bytecode
and stored in '.dex' ('Dalvik EXecutable')
and '.odex' ('Optimized Dalvik
EXecutable') files; related terms 'odex' and
'de-odex' are associated with respective
bytecode conversions
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Dalvik virtual machine
Dalvik is open-source software. It was
originally written by Dan Bornstein, who
named it after the fishing village of Dalvík
in Eyjafjörður,
Iceland.[http://uke.livejournal.com/25660.h
tml Journal entry] referencing the source
of the name
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Dalvik virtual machine
1
An alternative runtime environment called
Android Runtime (ART) was included in
KitKat (operating system)|Android 4.4
KitKat as a technology preview. ART
replaces Dalvik entirely in development
preview releases of Android L.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Dalvik virtual machine - Architecture
Unlike Java Virtual Machine|Java VMs,
which are stack machines, the Dalvik VM
uses a Register machine|register-based
architecture that requires fewer, typically
more complex virtual machine instructions.
Dalvik programs are written in Java using
the Android application programming
interface (API), compiled to Java
bytecode, and converted to Dalvik
instructions as necessary.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Dalvik virtual machine - Architecture
1
A tool called 'dx' is used to convert Java class (file
format)|.class files into the .dex format
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Dalvik virtual machine - Architecture
1
The Dalvik executables may be modified
again when installed onto a mobile device.
In order to gain further Optimization
(computer science)|optimizations,
endianness|byte order may be swapped in
certain data, simple data structures and
Function (computer science)|function
Library (computing)|libraries may be Linker
(computing)|linked Inline function|inline,
and empty class objects may be shorthttps://store.theartofservice.com/the-virtual-machine-toolkit.html
Dalvik virtual machine - Architecture
1
As of Android (operating system)|Android
2.2, Dalvik has a Just-in-time
compilation|just-in-time compiler.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Dalvik virtual machine - Architecture
Being optimized for low memory
requirements, Dalvik has some specific
characteristics that differentiate it from
other standard VMs:
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Dalvik virtual machine - Architecture
1
* The VM was slimmed down to use
less space.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Dalvik virtual machine - Architecture
1
According to Google, the design of Dalvik
permits a device to run multiple instances
of the VM efficiently.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Dalvik virtual machine - Performance
1
The relative merits of stack machines
versus Register machine|register-based
approaches are a subject of ongoing
debate.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Dalvik virtual machine - Performance
Generally, stack-based machines must
use Instruction (computer
science)|instructions to load data on the
stack and manipulate that data, and, thus,
require more instructions than register
machines to implement the same Highlevel programming language|high level
code, but the instructions in a register
machine must encode the source and
destination registers and, therefore, tend
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Dalvik virtual machine - Performance
However, tests performed on ARM
architecture|ARM devices by Oracle
Corporation|Oracle (owner of the Java
technology) in 2010 with standard nongraphical Java benchmarks on Embedded
Java#Java SE embedded|Java SE
embedded seemed to show it to be faster,
by 2 to 3 times, than Android version
history#2.2 Froyo|Android 2.2 (the initial
release to include a Just in time
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Dalvik virtual machine - Performance
1
Furthermore, benchmarks performed on
Android device still show (as of March
2014) up to a factor 100 between native
applications and a Dalvik application on
the same Android device. Upon running
benchmarks using the early interpreter of
2009, both Java Native Interface|JNI and
native code showed an order of magnitude
speed up.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Dalvik virtual machine - Licensing and patents
1
Dalvik is published under the terms of the
Apache License 2.0. Google says that
Dalvik is a Clean room design|clean-room
implementation rather than a development
on top of a standard Java runtime, which
would mean it does not inherit copyrightbased license restrictions from either the
standard-edition or open-source-edition
Java runtimes. Oracle Corporation|Oracle
and some reviewers dispute this.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Dalvik virtual machine - Licensing and patents
On August 12, 2010, Oracle
Corporation|Oracle, which acquired Sun
Microsystems in April 2009 and therefore
owns the rights to Java, sued Google over
claimed infringement of copyrights and
patents
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Dalvik virtual machine - Licensing and patents
1
The parties agreed to zero dollars in statutory
damages for 9 lines of copied code.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
Dalvik virtual machine - Licensing and patents
On May 9, 2014, the Federal Circuit
partially reversed the district court ruling,
ruling in Oracle's favor on the
copyrightability issue, and Remand (court
procedure)|remanding the issue of fair use
back to the district court.
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
ActionScript Virtual Machine
1
ActionScript Virtual Machine 2 was donated
as open-source to Mozilla Foundation on
November 7, 2006, to develop Tamarin as a
high-performance virtual machine, with the
support from broad Mozilla community, to be
used by Mozilla and Adobe Systems in the
next generation of their JavaScript and
ActionScript ECMAScript engine|engines with
the ultimate aim to unify the scripting
languages across web browsers and Adobe
Flash platform and ease the development of
rich better performing web applications.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
ActionScript Virtual Machine - What Tamarin is not
1
Adobe contributed code for its ActionScript
Virtual Machine 2 and the Just-in-time
compilation|JIT compiler. The ActionScript
compiler is also open source and can be
downloaded from:
[http://opensource.adobe.com/svn/openso
urce/flex/sdk/sandbox/asc-redux/ Adobe
OpenSource - SDK]
https://store.theartofservice.com/the-virtual-machine-toolkit.html
ActionScript Virtual Machine - What Tamarin is not
1
Tamarin is not the same as Adobe Flash
Player, which remains closed source. The
Tamarin virtual machine is only a part of
Flash Player.
https://store.theartofservice.com/the-virtual-machine-toolkit.html
ActionScript Virtual Machine - Related projects
Two projects related to Tamarin were
announced on July 25, 2007 in Brendan
Eich's keynote at The Ajax Experience
West: IronMonkey and ScreamingMonkey
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
ActionScript Virtual Machine - Etymology
Both SpiderMonkey and Tamarin fulfill
closely related goals and so were both
dubbed after monkeys (the spider monkey
and the tamarin, respectively).
1
https://store.theartofservice.com/the-virtual-machine-toolkit.html
For More Information, Visit:
• https://store.theartofservice.co
m/the-virtual-machinetoolkit.html
The Art of Service
https://store.theartofservice.com