Search This Blog

Wednesday, 5 November 2014

kernel

The idea behind an operating system kernel is that there is a relatively small core set of “primitive” functions that are necessary for the operation of system services (see also operating system). These functions can be provided in a single component that can be adapted and updated as desir-able. The fundamental services include:

•  Process control—scheduling how the processes (pro-grams or threads of execution within programs) share the CPU, switching execution between processes, cre-ating new processes, and terminating existing ones (see multitasking).
•  Interprocess communication—sending “messages” between processes enabling them to share data or coordinate their data processing.
•  memory management—allocating and freeing up memory as requested by processes as well as imple-menting virtual memory, where physical storage is treated as an extension of main (RAM) memory. (See memory management.)
•  File system services—creating, opening, reading from, writing to, closing, and deleting files. This includes maintaining a structure (such as a list of nodes) that specifies the relationship between directories and files. (See file.)

In addition to these most basic services, some operating systems may have larger kernels that include security functions (such as maintaining different classes of users with different privileges), low-level support for peripheral devices, and networking (such as TCP/IP).

The decision about what functions to include in the ker-nel and which to provide through device drivers or system extensions is an important part of the design of operating systems. Many early systems responded to the very limited supply of RAM by designing a “microkernel” that could fit entirely in a small amount of memory reserved permanently for it. Today, with memory a relatively cheap resource, ker-nels tend to be larger and include functions that are paged dynamically into and out of memory.

In the UNIX world (and particularly with Linux) the kernel is constantly being improved through informal col-laborative efforts. Many Linux enthusiasts regularly install new versions of the kernel in order to stay on the “leading edge,” while more conservative users can opt for waiting until the next stable version of the kernel is released.

No comments:

Post a Comment