Writing an operating system kernel from scratch