Modern computer operating systems are typically built in layers, with each layer adding new capabilities, such as disk access techniques or a graphical user interface (GUI). But the essential layer, the foundation on which the rest of the operating system rests, is typically called a kernel. In general, the kernel provides low-level services, such as memory management, basic hardware interaction and security.

