untrusted programs (e.g., mobile code, programs written in potentially unsafe languages such as C)
so that each program is unable to directly access the same memory and disk segments used by other
programs, including trusted programs. Virtual machines (VM) are sometimes used to implement
sandboxing, with each VM providing an isolated execution domain.