Operating System Kernel design