How do you write your own operating system