Briefly, a boot loader is the first software program that runs when a computer starts. It
is responsible for loading and transferring control to an operating system kernel software
(such as Linux or GNU Mach). The kernel, in turn, initializes the rest of the operating
system (e.g. a GNU system).
GNU GRUB is a very powerful boot loader, which can load a wide variety of free
operating systems, as well as proprietary operating systems with chain-loading. GRUB
is designed to address the complexity of booting a personal computer; both the program
and this manual are tightly bound to that computer platform, although porting to other
platforms may be addressed in the future.
One of the important features in GRUB is flexibility; GRUB understands filesystems
and kernel executable formats, so you can load an arbitrary operating system the way you like, without recording the physical position of your kernel on the disk. Thus you can load the kernel just by specifying its file name and the drive and partition where the kernel resides.
GRUB features
The primary requirement for GRUB is that it be compliant with the Multiboot Specification, which is described in Section “Motivation” in The Multiboot Specification.
The other goals, listed in approximate order of importance, are:
Basic functions must be straightforward for end-users.
Rich functionality to support kernel experts and designers.
Backward compatibility for booting FreeBSD, NetBSD, OpenBSD, and Linux. Proprietary kernels (such as DOS, Windows NT, and OS/2) are supported via a chain-loading function.