Kernel basic facilities
The kernel's primary purpose is to manage the computer's resources and allow other programs to run and use these resources.
Typically, the resources consist of:
TheCentral Processing Unit (CPU, the processor). This is the most central part of
a computer system, responsible for
programs on it. Thekernel takes responsibility for deciding at any time which of the many running programs should be allocated to the processor or processors (each of which canusually run only one program at a time)
The computer'smemory. Memory is used to store both program instructions anddata. Typically, both need to be present in memory in order for a program toexecute. Often multiple programs will want access to memory, frequentlydemanding more memory than the computer has available. The kernel isresponsible for deciding which memory each process can use, and determiningwhat to do when not enough is available.
AnyInput/Output (I/O)devices present in the computer, such as keyboard,mouse, disk drives, printers, displays, etc. The kernel allocates requests fromapplications to perform I/O to an appropriate device (or subsection of a device, inthe case of files on a disk or windows on a display) and provides convenientmethods for using the device (typically abstracted to the point where theapplication does not need to know implementation details of the device)Key aspects necessary in resource managements are the definition of an executiondomain (address space) and the protection mechanism used to mediate the accesses to theresources within a domain.
or IPC).A kernel may implement these features itself, or rely on some of the processes it runs to provide the facilities to other processes, although in this case it must provide some meansof IPC to allow processes to access the facilities provided by each other.