Linux kernel is the most flexible operating system that has ever been created. It can be tuned for a wide range of different systems, running on everything from a radio-controlled model helicopter, to a cell phone, to the majority of the largest supercomputers in the world.

How to Build and successfully boot?

    At first tools are required to build the Linux Kernel.
One of the important tool required is Compiler.
As we know already Linux Kernel is written in C programming language, along a few assembly language instructions.
To build Linux Kernel we require gcc C compiler.
gcc-GNU C Compiler.
It is suggested to use a old version of gcc because later may have some problems.
To find the version of gcc use the following command in the terminal or CLI.
$ gcc –version
$ - indicates the shell
The C compiler, gcc does not do all of the compiling on its own. It needs an additional set of tools known as binutils to do the linking and assembling of source files.
The binutils always have an added advantage that can manipulate object files in lot of ways.
You can obtain the binutils in the website
In order to find the version of the binutils use the following Command.
$ ld – v
 Make is a tool used to which runs along with Linux Kernel     source tree to determine which files to be compiled and it will call t    the compiler and linker to build the Linux Kernel.
It can be found in the previously mentioned website.
Here it is better to use latest version of make.
Important tools to use the kernel
    File system specific tools
    Other tools

It is tool used for different tasks such as mounting and creation of disk partitions and manipulation of the hardware clock in the system.
To determine the kind of version of util-linux, run the following command in the terminal.
$ fdformat –version

It is an optional tool and depends on the requirement of an individual.
What is kernel module?
    Kernel module is a chunk of code that can be added or removed from the kernel while the kernel is running.
What is its use?
    It is useful in compiling Linux device drivers as modules and then load only the ones that correspond to the hardware present in the system.
         All Linux distribution use the module for Linux device driver instead of using a bulk of code. Module saves the memory.
To determine the version of the tool use the following command in the terminal.
$ depmod –v

File-System Specific Tools
A wide range of tools specific to particular file systems are necessary to create, format, configure, and fix disk partitions. The util-linux package has a few of these utilities, but some of the more popular file systems have separate packages that contain the necessary programs.  
The ext3 and experimental ext4 are upgrades of ext2 and can be managed with same tools. To work with any of these file systems we need e2fsprog package.

To determine the version use the following command in the terminal
$ tune2fs

To use the JFS File system from IBM it should be downloaded.
To determine the current version use the following command in the system
$ fsck .jfs –V
Linux Kernel NutShell Configuration Tutorial part 1
Linux Kernel NutShell Retrieving Tutorial part 2
Linux Kernel NutShell Installing Tutorial part 3
List of Embedded System Companies in India