https://manujbhatia.com/2020/04/07/lets-write-a-new-shell/
Let's Write a New Shell - Part 1