

In the case of VMware these appliances are stored in VMDK files.A free and simple tool for creating ISO images to mount or burn them supporting ISO, NRG and CUE files. Such a 'snapshot' is called a virtual appliance. They can then boot this snapshot in their VM and directly work with all the cool apps you installed without having to go through the tedious steps of installing and configuring the whole system. Then you can take a 'snapshot' of this computer and pass it around to your friends. One of the cool use cases of virtual machines is that you can preconfigure a custom operating system along with a bunch of applications.

Most VM implementations allow you to simply add such a file to your virtual machine and make it look as if it was a real CD in a real drive. A common format for such CD images is the ISO format. Most of the time however, you will instead pass a CD-ROM image from your physical PC's hard drive. You may get this buy passing your physical computer's CD drive to the VM directly. Sometimes you want to have access to a CD-ROM in your virtual machine. This configuration needs to be stored somewhere and in the case of VMWare's desktop products this is what gets stored in a VMX file. Imagine this similar to buying the single parts of a PC in the shop: you need a network card, some processors, memory, hard disks. When you set up a virtual machine in one of these solutions, they provide you means of configuring your virtual computer. In your case VMware probably refers to one of their desktop products such as VMware Player or VMware Workstation. VMware is a company that specializes in providing a range of virtual machine implementations as well as many products related to their VMs. There are many implementations of virtual machines (with varying performance and feature sets), for instance Microsoft's Hyper-V, Qemu, Virtualbox. Wikipedia From 10,000 ft a VM is a program that emulates hardware and thereby allows you to do anything you could do with a normal computer, e.g., install an operating system. You can imagine a virtual machine being a real computer (= physical machine) simulated in software. It would be hard to put everything together into a diagram because as the commenters already indicated these are very different things at very different levels of abstraction.
