The kernel is the essential center of a computer operating system, the core that provides basic services for all other parts of the operating system. A synonym is nucleus. It can be contrasted with a shell, the outermost part of an operating system that interacts with user commands.
In computing, the kernel is a computer program that manages input/output requests from software and translates them into data processing instructions for the central processing unit and other electronic components of a computer. It is a fundamental part of a modern computer’s operating system.
Kernel is heart of Linux OS. It manages resource of Linux OS. Resources means facilities available in Linux. For e.g. Facility to store data, print data on printer, memory, file management etc.
It decides who will use this resource, for how long and when. It runs your programs (or set up to execute binary files).
It acts as an intermediary between the computer hardware and various programs/application/shell.
The critical code of the kernel is usually loaded into a protected area of memory, which prevents it from being overwritten by other, less frequently used parts of the operating system or by applications. The kernel performs its tasks, such as executing processes and handling interrupts, in kernel space, whereas everything a user normally does, such as writing text in a text editor or running programs in a GUI (graphical user interface), is done in user space. This separation prevents user data and kernel data from interfering with each other and thereby diminishing performance or causing the system to become unstable (and possibly crashing).
When a process makes requests of the kernel, the request is called a System call. Various kernel designs differ in how they manage system calls and resources.
Kernel is Memory resident portion of Linux. It perform following task:-
- I/O management
- Process management
- Device management
- File management
- Memory management
The Linux kernel is written in the version of the C programming language supported by GCC (which has introduced a number of extensions and changes to standard C), together with a number of short sections of code written in the assembly language (in GCC’s “AT&T-style” syntax) of the target architecture.