Both VMs and processes are abstractions of the underlying machine architecture. The abstractions include the processor, memory, and devices. Both VMs and processes run concurrently. Both VMs and processes are isolated from each other on the same machine, and mechanisms are available for VMs and processes to interact with one another and to share resources. Processes on the same machine can only run software for the same OS and underlying machine architecture, while VMs can run software for more than one OS and underlying machine architecture.
Processes obtain services using system calls, while VMs use the virtual machine interfaces.
The most common errors were the result of comparing a virtual machine with a real machine. Most of the discussion in the textbook was implicitly assuming this. For example, the difficulty of implementation does not distinguish VMs from processes. While VMs may be hard to implement, that may also be the case for processes. Another example is the discussion of processor modes in the textbook.