Defining The Linux Kernel And Its Usage

Started by Kalyan, Mar 21, 2008, 06:46 PM

Previous topic - Next topic

Kalyan

Defining The Linux Kernel And Its Usage

The Linux Kernel is the center of what makes the Linux and Unix operating systems. The kernel is the foreman or mediator over all your programs and hardware components.

As the core of the operating system, the kernel has access to certain services that interact with the systems hardware which no other program has direct access to. If a program wants to carry out a special task, then it must go though the kernel first.

When a program wants to run, write data to a disk, write to certain parts of memory, it asks the kernel for permission first. The kernel considers the program's request and proceeds to do a number of tasks for that program. The kernel is very strict and will not let programs away with illegal operations. If a program goes against what the kernel says, it must be punished for its actions.

If a program that got the "ok" from the kernel and then decides to write some data to memory outside it's designated block(s), the kernel will kill that program and do a core dump. A "core dump" is an operation the kernel carries out when a program tries to perform a task it is not allowed to do. The kernel dumps the address space in memory the program was using to the hard drive before the kernel kills that program.

The paradigm of a strict kernel is not new; the idea has been around for a while. It's a great idea, and i think has been implemented very well on a Linux OS. The majority of the kernel was written in C with partial implementations written in assembly language which makes it flexible and very fast.

Here's a Little Conversation with the Kernel

(program app) Hello Mr. Kernel, I was wondering if I could have some memory to run and play in?
(kernel) Hmm... Ok, but if you try to run outside the memory space allocate for you then I am going to stop you!
(program app) Ok then, it's a deal.
(kernel) Hey! I never gave you permission to write data in that memory segment, you will pay!
(program app) Oh no?? I didn't mean it.. I.. I.. AHHHH.... ***Dead*** ( core dump ).
(kernel) Ask me next time you want to do something like that!
(kernel) When will those programs ever listen?!

Usually the operation of killing a program that was "bad" does not bring down or crash the whole Linux operating system, it just kills the program or process that has stepped out side it's "play ground" the kernel initially allocated for it. After a core dump the kernel just goes about its business of answering requests from other processes on the system.

When a core dump occurs it is possible in some cases to start up the program that caused the core dump to where it left off just before the dump.