OS project mostly follows https://github.com/cfenollosa/os-tutorial, but with some of my own implementations