Skip to content

Linux Kernel

November 21, 2012

Hello guys,

Linux kernel is monolithic kernel. hmmm.. but wait I don’t know what a kernel is. Well let’s have a ride in kernel coaster. 😉

What is Kernel?

In simple words, a kernel is an interface between hardware and OS. It takes commands from OS and make hardware act upon and takes data from hardware and gives it to OS. It also provides inter process communication.

Types of Kernel

There are majorly three types of kernel

  1. microkernel
  2. monolithic kernel
  3. hybrid kernel

each kernel type has its advantage and disadvantage. Let us talk briefly about each type.

Microkernel

Microkernel is kernel which only does main handling i.e. CPU, memory and IPC. Everything else is managed in user mode. Now there are two modes in a system.  1) user mode and 2) supervisor mode. Everything running in OS is in user mode and everything running from kernel is in supervisor mode. As the name says, In supervisor mode process has more permissions to do stuff than user mode.

So, In microkernel only few things are running in supervisor mode and rest things have to run in user mode.Now, This has few advantages and few disadvantage.

Advantages:

With this, kernel has small install footprint as well as memory footprint. Another advantage is kernel will be more portable because it is doing main handling it can run on almost every where. the rest things can be different which are running in user mode. By this we get more security because less processes are running in supervisor mode so all rest processes does not have full rights to do things.

Disadvantages:

Now, In monolithic kernel, most of the process will run in user mode, so each process has to wait in queue to get information and also it can not do inter process communication without waiting. Hardware may run slower because drivers are running in user mode.

Monolithic Kernel:

Monolithic kernels are opposite of microkernels. They include basic handling of CPU, memory and IPC as well as it also includes device drivers, file system management, system server calls. Monolithic kernel tends to be better and multitasking because all process are running in the same mode. So waiting time of ipc and to get information can be reduced. Now this however can cause problem because many processes are running in supervisor mode and defect in one process can make whole system down. Monolithic kernel has following advantages and disadvantages:

Advantages:

In monolithic kernel, processes has more direct access to hardware. Processes has easiness to inter communication. Processes reacts faster because they don’t have to wait in queues.

Disadvantages:

Since monolithic kernel includes more things, its install/memory footprint is increased. It is less secure because many processes runs in supervisor mode.

Hybrid Kernels:

Hybrid Kernels are combination of microkernel and monolithic kernel. In hybrid kernel user can choose what needs to be run in user mode and what needs to be run in supervisor mode. So it has advantages of both types of kernel as well as disadvantages of both kernels. Windows and OS X kernels are Hybrid kernels.

Linux Kernel

Ffffff…Now we know what is a kernel, so let’s little bit about Linux kernel.

You can find Linux kernel in your /boot directory in Ubuntu. There may be different names for kernel. each type of name denotes some special about that kernel and those are,

vmlinux – normal kernel image, In early days it was unix. after that it is changed to linux and then virtual memory concept came in picture so it is called as vmlinux.

vmlinuz – zlib compressed kernel image.

zImage – compressed + virtual memory support kernel image

bzImage – zImage compressed to the max

uImage – kernel image for U-boot i.e. very popular boot loader for ARM based platform.

There are different kernel version. Version number rules are:

linux-version-image

Linux kernel has one more important thing, that is its capability to insert / remove modules. I will talk about Linux kernel modules in later posts may be.

I guess, That is enough knowledge to start exploring in Linux kernel.

Enjoy.

Advertisements

From → Linux, Ubuntu

One Comment
  1. anthonyvenable110 permalink

    Reblogged this on anthonyvenable110.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: