Learn to write a small operating system