Implement memory management, ELF loading, dynamic linking, filesystem access, block device access, display access, keyboard input, mouse input, USB stack, network device support, a TCP/IP stack and a userspace C library. Poof! You've just written an operating system!