Because of the popularity of Android, many people wonder about what a kernel is. When people install custom optimized kernels, as improvement or change in performance is not directly noticeable, they start to wonder whether a kernel is an important component of the firmware or OS.
Many times I have tried to explain a kernel in these terms:
Imagine you have two browsers in your PC, and both request some web pages at the same time. As computers can do one job at a time, if both browsers try to use the internet connection (network interface) at the same time, this will result in a dead lock. Both the browsers may not get what they want.
But if there is a piece of software which can take both the requests and forward those requests one at a time through the network interface in an efficient and feasible manner, which will lead to optimal usage of the internet connection. In the same way computer peripherals (resources) like CPU, RAM, hard disk etc. can be efficiently shared through the help of a kernel.
This explantion highlights only one feature of the kernel which is 'resource sharing'.
Are there other functions which are as important as resource sharing? And can they be explained in a similar manner?