Source: https://www.ics.uci.edu/~pattis/common/virtualmachine.pdf