https://github.com/aosmith/toy-os
The x86 code seems like a bear but once it's explained it is fairly simple.