User:Pramod Nalinda/sandbox

= Boot Loader - 2019T00474 = Sub topics


 * 1) What is boot process?
 * 2) What is boot loader?
 * 3) Boot loaders

Boot loaders


 * 1) GNU GRUB
 * 2) ISOLINUX
 * 3) DAS U-Boot


 * 1) What is boot process?
 * When we talking about the linux boot loader, first we should talk about the boot process of linux. Boot process is the main role of a computer. The main procedure of boot process is turning on the computer.  When turning on the computer it process in some steps to do that procedure. They are,
 * 1. BIOS
 * 2. MBR
 * 3. Boot loaders
 * 4. Kernel
 * 5. Initial RAM Disk


 * 6. Graphical user interface

Let's know some informations about above steps.


 * 1) BIOS(Basic Input / Output system)

"BIOS is a program that stored on the ROM.This BIOS program can't be changed. When the computer is powered on, the Basic Input/Output System (BIOS) initializes the all of hardware components, including the screen and keyboard, and tests the main memory." 2.MBR "This is the second step of boot process.MBR means Master Boot Record. The main role of MBR is loads and executes the boot sector of bootable device. The concept of MBRs was publicly introduced in 1983 with PC DOS 2.0.The Master Boot Record is also sometimes called the 'partition sector' or the 'master partition table' because it includes a table that locates each partition that the hard disk has been formatted into. MBR is also load the operating system to the RAM."
 * This process is also called POST (Power On Self Test

3.Boot loaders
"A boot loader is a type of program that loads and starts the boot time tasks and processes of an operating system or the computer system. It enables loading the operating system within the computer memory when a computer is started or booted up.The boot loader is usually stored on one of the hard disks in the system, either in the boot sector or EFI partition. Most Linux boot loaders can present a user interface for choosing alternative options for booting Linux, and even other operating systems that might be installed.We can find there are several boot loaders in operating systems. The most common boot loaders are GRUB,ISOLINUX and DAS U-Boot. Boot loader can store the memory of date and time. That procedure is doing by CMOS battery.If you are using a Multiboot-compliant kernel, then most of the job is already performed by your bootloader.(e.g.- GRUB"

4.Kernel
"Kernel is the core component of Linux operating system.The default kernel configuration is configured to support as many hardware as possible. A non-stripped kernel with default configuration resulted in a size of 1897996 kB (including kernel + modules).A kernel is simply a resource manager; the resource being managed may be a process, memory or hardware device. It manages and arbitrates access to the resource between multiple competing users. The Linux kernel exists in the kernel space, below the userspace, which is where the user's applications are executed. The linux kernel is Written by using C language."

5.Initial RAM Disk
The Linux initial RAM disk is a temporary root file system that is mounted during system boot to support the two-state boot process. Initial RAM Disk is also called Initrd.

Initrd also can detect hardwares and load the necessary models to get the actual file system.Usually, initial ramdisks are used by Modular Kernels and Microkernels, which commonly face a chicken-or-egg problem at boot time: the kernel needs to load its modules from disk, but these modules include the driver that normally allows the kernel to access that disk.

The boot process can be explained like this.
Let's talk about the bootloaders.

In this article i'm going to explain about 3 different boot loaders in Linux operating system.They are,


 * GRUB
 * ISOLINUX
 * DAS U-BOOT

GRUB
"When it comes to GRUB bootloader this is the most commonly used bootloader for linux. GRUB means GRand Unified Bootloader. GRUB is a multiboot bootloader. GRUB is often used as a OS picker on startup for dual-boot computers, for instance, where one system is Linux and the other Windows."

Development of GRUB
"GRUB version 1 (also known as 'GRUB Legacy') is no longer under development and is being phased out. The GNU GRUB developers have switched their focus to GRUB 2, a complete rewrite with goals including making GNU GRUB cleaner, more robust, more portable and more powerful. GRUB 2 started under the name PUPA. PUPA was supported by the Information-technology Promotion Agency (IPA) in Japan. PUPA was integrated into GRUB 2 development around 2002, when GRUB version 0.9x was renamed GRUB Legacy"

ISOLINUX
"ISOLINUX is a boot loader for Linux/i386 that operates off ISO 9660/El Torito CD-ROMs in 'no emulation' mode. This avoids the need to create an 'emulation disk image' with limited space (for 'floppy emulation') or compatibility problems (for 'hard disk emulation').Only uses plain ISO 9660 filenames, i.e. it does not support Rock Ridge [1], or Joliet filenames. It can still be used on a disc that uses Rock Ridge and/or Joliet extensions, of course. Under Linux, you can verify the plain filenames by mounting with the ' ' option of the mount command."

Development of ISOLINUX
ISOLINUX resolves pathnames in the following way:


 * A pathname consists of names separated by slashes, Unix-style.
 * A leading slash means it searches from the root directory of the ISO9660 filesystem; otherwise the search is performed from the isolinux directory (think of this as the "current working directory").
 * The maximum length of any pathname is 255 characters.

Support for relative notation directory paths using dots (periods), such as " " and " ", was initially introduced in version 4.02 and improved in 4.06.

ISOLINUX will search for the config file directory in the order,  ,.

The first directory that exists is used, even if it contains no files. Therefore, please make sure that these directories do not exist if you don't want ISOLINUX to use them.

ISOLINUX will also search for the config file in the respective SYSLINUX directories, and will search for either  or   files. The " " directories and the  file will take precedence over their respective   alternatives when using ISOLINUX to boot. In other words, " " and  are now generic terms and valid when booting with ISOLINUX.

See also "Working directory", "Configuration location and name" and Syslinux configuration file.

DAS U-BOOT
"U-Boot is both a first-stage and second-stage bootloader.DAS U-BOOT was initial released on October 15, 1999 by DENX Software Engineering. U-Boot is an open-source, primary boot loader used in embedded devices to package the instructions to boot the device's operating system kernel.In 2002 a previous version of the source code was briefly forked into a product called ARMBoot, but was merged back into the PPCBoot project shortly thereafter. On October 31, 2002 PPCBoot−2.0.0 was released.The importance of U-Boot in embedded Linux systems is quite succinctly stated in the book Building Embedded Linux Systems, by Karim Yaghmour, whose text about U-Boot begins, 'Though there are quite a few other bootloaders, 'Das U-Boot', the universal bootloader, is arguably the richest, most flexible, and most actively developed open source bootloader available."

uses

 * The ARM-based Chromebooks ship with U-Boot. The Celeron- and i5-based Chromebooks use it as payload for coreboot.
 * The PowerPC based series of AmigaOne computers running AmigaOS use U-Boot, in particular the Sam440ep and Sam460ex by ACube Systems Srl, and the AmigaOne X5000 by A-Eon, the successor of the AmigaOne X1000.
 * Ubiquiti Networks devices use U-Boot
 * Amazon Kindle devices use U-Boot as their bootloader.
 * TP-Link and several other OpenWRT/LEDE compatible MIPS based wireless routers use U-Boot for bootloading.
 * Teltonika cellular routers use bootloader based on U-Boot.
 * SpaceX's Falcon and Dragon both use U-Boot