Box File
A file used by Vagrant to create Vagrant environments. A box file represents a template from which virtual machines can be created.

“Containers are a lightweight virtualization method for running multiple isolated Linux systems under a common host operating system” [2]

As with virtual machines, containers are a virtualisation medium. Unlike virtual machines however, they use components of the host operating system. This reduces their size at the cost of reduced isolation from the host machine.

Host Machine
A machine that uses virtualisation software to host virtual machines and/or containers. Host machines allocate resources, including memory and disk space, to support the running of a virtual machine or container. Note that a virtual machine can host other virtual machines, making it both a host and a virtual machine.
Idempotent provisioning runs only the commands required to achieve the desired state of the system. Commands that do not change the state are not run. This can save considerable build time when handling dependencies, because a dependency should not be downloaded and reinstalled if it is already in the state it should be in.
A container image acts as a template from which containers can be created. Images are to containers and box files are to virtual machines.
Manager software provides an interface for managing virtual machines and containers. Vagrant is an example of manager software, which provides a command-line interface to virtual machine and container management which can be automated. See Managers.
Vagrant Environment
The directory structure (including Vagrantfile) created by Vagrant when vagrant init is commanded. A single virtual machine or container can be managed in a given environment.
Virtual Environment
Virtual environments produce the same virtual machine or container on all virtualisation-capable computers. Virtual environments are also box files, but are not Vagrant environments.
Provider (or virtualiser) software supports the creation of, and interaction with, virtual machines or containers from a host machine. VirtualBox and Docker are examples of free provider software for virtual machines and containers respectively. See Providers.
Provisioner software runs a set of commands on a machine, virtual or otherwise, to ensure it is in a particular state. Ansible is an example of provisioner software that enables idempotent provisioning. See Provisioners.
System Virtual Machine
Virtual Machine

“An efficient, isolated duplicate of a real machine.” [1]

Software that imitates certain other software on certain hardware. In this project, this includes a complete operating system, and a combination of one or many simulation packages and dependencies. General system virtual machines are described in brief at Virtual Machines and Related Software.

More strictly, a virtual machine is a specific instance of a virtual environment. When we build box file artefacts, we are creating virtual environments, not virtual machines. Once Vagrant creates a Vagrant environment from a box file and vagrant up is commanded, a corresponding virtual machine is created. Virtual machines created on a host are managed by virtual machine providers, which typically list the machines they are maintaining.

Virtual Micromagnetics

“Enabling accessible and reproducible micromagnetic simulation.”

The name of this project, which represents the collection of virtual environments and the software written to create them.


[1]Smith, J., Nair, R. (2005). “The Architecture of Virtual Machines”. Computer (IEEE Computer Society) 38 (5): 32–38. doi:10.1109/MC.2005.173
[2]Jacobsen, D.M., Canon, R.S. (2015). “Contain This, Unleashing Docker for HPC”. Proceedings of the Cray User Group.