GRUB stands for GRand Unified Bootloader, an open source release from GNU.

GRUB Logo
This is what you get an interactive scene giving you pseudo programming language options in multiple lines. If you have Windows thing installed in your system you get a little relax after seeing Window something something.
Bootloading is the term which reminds core OS classes if you are any how related to architecture of Operating System. Boot loading is like a lift board which tells you to which floor you want to get on. The people who have heard it for first time and are of confused and making pictures of your flashy boots in your mind, Bootloader ,also called a boot manager is term for a small program that places the operating system (OS) of a computer into memory. When a computer is powered-up or restarted, the basic input/output system (BIOS) performs some initial tests, and then transfers control to the Master Boot Record (MBR) where the bootloader resides. Bootloader is the door where you bell to enter into the system. It gives you complete list of OS that too with other advance options.
The modern GRUB is called GRUB 2 and it is indeed GRUB version number 2 as there are a lot of things absent inside the new GRUB and other vital changes too.
GRUB 2′s major improvements over the original GRUB include:

GRUB 2 Config file.
- Scripting support including conditional statements and functions
- Dynamic module loading
- Rescue mode
- Custom Menus
- Graphical boot menu support and improved splash capability
- Boot LiveCD ISO images directly from hard drive
- New configuration file structure
- Non-x86 platform support (such as PowerPC)
- Universal support for UUIDs
(from: Ubuntu forums)
Before stepping up one level in the conversation let me tell you the concept of chainloading. Chainloading is skipping first default assigned kernel to boot and getting booted on present kernel.
This is an useful technique in cases where Linux do not recognize the kernel and its boot data so what usually is done is that just partition corresponding to that kernel is named and chainloder +n is set where n is the nth kernel configuration after the first. This is generally done for making Windows and other proprietary OS as default boot option.
Let me first introduce you with the some of the important of files that are critical for GRUB 2.
/boot/grub/grub.cfg
This is like the file GRUB’s /boot/grub/menu.lst. This file contains the GRUB 2 menu information but unlike GRUB’s menu.lst the grub.cfg file is not meant to be edited.
/etc/default/grub
This configuration file contains information formerly contained in the upper section of GRUB‘s menu.lst and items contained on the end of the kernel line. The entries in this file can be edited by a user with administrator (root) privileges and are incorporated into grub.cfg when it is updated. Specific configuration settings are detailed in the Configuring GRUB 2 later in this section.
/etc/grub.d/

Changes to be done here
The files in this directory are read during execution of the update-grub command and their instructions are incorporated into /boot/grub/grub.cfg.
GRUB2 has lesser editing options comparing to GRUB or we can say they have made changes making more complex.
/etc/default/grub gives few basic options to change you configuration.
Use sudo gedit /etc/default/grub for editing.
Like you can change the order of booting.
I have shown you to how to make Windows as default menu just by changing the parameter to 4 as it appears on 4th on menu list in figure.
Further we can add another kernel entry this is the format saying name and its partition location in format
hd(harddisk),nth partitionname and other generic root location.
set root=(hdX,Y)
linux /vmlinuz root=/dev/sdXY ro
initrd /initrd.img
boot

GRUB 2 edit mode while booting.
GRUB menu at the booting time can be converted to command-line by pressing c and there are few grub commands which can be used right there. There are few commands which can be listed by using help command.
ls lists defaults.
I will also explain the settings how to change the splashimage for bootloader.
For this you need to have the png, jpeg 8bit or tga format image. By default its tga format for the splashimage. You need to install a package for that:grub2-splashimages
Changes are made in the grub.d directory in the file in 05_debian_theme where there is some path given to a default splashimage which needs to be edited for your own image.
I made one that is in pic.

This splashimage I managed to add.








good article to read thanks ur elaborating on grub2