The kernel is the set of functions that make up the operating system, the essential center; used to provide an application interface between programs and the underlying virtual and physical devices the core that provides basic services for all other parts of the operating system. A real world synonym is nucleus. A kernel can be contrasted with a shell, the outermost part of an operating system that interacts with user commands. Kernel and shell are terms used more frequently in DOS, Windows, UNIX and some other 'NIX operating systems more than in IBM mainframe systems. Typically, a kernel, or any comparable code center of any OS, includes an interrupt handler that handles all requests or completed I/O operations that compete for the OS kernel's services, a scheduler (an possibly an additional but separate event handler) that determines which programs share the kernel's processing time in what order, and a management supervisor that actually gives use of the computer to each process when it is scheduled. A kernel may also include a manager of the operating system's address spaces in memory or storage, sharing these among all components and other users of the kernel's services. A kernel's services are requested by other parts of the OS or by application through a specified set of program interfaces sometimes known as system calls. Because the code that makes up the kernel is needed continuously, it is usually loaded into computer storage in an area that is protected so that it will not be overlayed with other less frequently used parts of the operating system. Is that always good enough to keep problems from happening? No or you would never get a message that states “XXXXXX has caused a problem with kernel. Your computer will now self destruct.”
The kernel is not to be confused with the BIOS, the Basic Input/Output System. Some, though not many, kernels have been developed independently for use in any operating system that wants to use it. Most are machine specific.