http://www.scs.stanford.edu/10wi-cs140/pintos/pintos_1.html#SEC1