https://medium.com/reverse-engineering-for-dummies/learning-operating-systems-for-reverse-engineering-a723dbb5cd6f