PL-I Assignment Broup B-Ass 5 BIOS & UEFI
Vocabulary BIOS = Basic Input Output System UEFI = Unified Extensible Firmware Interface POST= Power On Self Test BR = Boot Record (aka MBR) BC =Boot Code (aka MBC) GUID = Globally Unique Identifier GPT = GUID Partition Table
What is booting When we start our computer then there is an operation which is performed automatically by the Computer which is also called as Booting. In the Booting, System will check all the hardware s and Software s those are installed or Attached with the System and this will also load all the Files those are needed for running a system. In the Booting Process all the Files those are Stored into the ROM Chip will also be Loaded for Running the System. In the Booting Process the System will read all the information from the Files those are Stored into the ROM Chip and the ROM chip will read all the instructions those are Stored into these Files.
Types of booting Warm booting When the System Starts from the Starting or from initial State Means when we Starts our System this is called as warm Booting. Cold booting The Cold Booting is that in which System Automatically Starts when we are Running the System, For Example due to Light Fluctuation the system will Automatically Restarts So that in this Chances Damaging of system are More.
BIOS Instructions used to start the computer from a cold start. (power off to power on). The BIOS instructions are written on non-volatile RAM. EEP-ROM is the common media choice for the BIOS, installed on the motherboard. The BIOS instructions are based on the chip-set installed on the motherboard
BIOS The BIOS primary functions are Power-on self-test (POST) Detect the video card s (chip s) BIOS and execute its code to initialize the video hardware Detect any other device BIOSes and invoke their initialize functions Display the BIOS start-up screen Perform a brief memory test (identify how much memory is in the system) Set memory and drive parameters Configure Plug & Play devices Assign resources Identify the boot device
Turn on the power switch Hardware Boot Sequence All memory and cache is empty at startup. A reset signal is generated by the chipset to the CPU until the power is ready. The CPU powers up and reads address xffff0 from the ROM. This contains a jump instruction to the start of the BIOS instructions.
Linux boot process
1. BIOS BIOS stands for Basic Input/Output System Performs some system integrity checks Searches, loads, and executes the boot loader program. It looks for boot loader in floppy, cd-rom, or hard drive. You can press a key (typically F12 of F2, but it depends on your system) during the BIOS startup to change the boot sequence. Once the boot loader program is detected and loaded into the memory, BIOS gives the control to it. So, in simple terms BIOS loads and executes the MBR boot loader.
2. MBR MBR stands for Master Boot Record. It is located in the 1st sector of the bootable disk. Typically /dev/hda, or /dev/sda MBR is less than 512 bytes in size. This has three components 1) primary boot loader info in 1st 446 bytes 2) partition table info in next 64 bytes 3) mbr validation check in last 2 bytes. It contains information about GRUB (or LILO in old systems). So, in simple terms MBR loads and executes the GRUB boot loader.
3. GRUB GRUB stands for Grand Unified Bootloader. If you have multiple kernel images installed on your system, you can choose which one to be executed. GRUB displays a splash screen, waits for few seconds, if you don t enter anything, it loads the default kernel image as specified in the grub configuration file. GRUB has the knowledge of the filesystem (the older Linux loader LILO didn t understand filesystem). Grub configuration file is /boot/grub/grub.conf (/etc/grub.conf is a link to this).
4. Kernel Mounts the root file system as specified in the root= in grub.conf Kernel executes the /sbin/init program Since init was the 1st program to be executed by Linux Kernel, it has the process id (PID) of 1. Do a ps -ef grep init and check the pid. initrd stands for Initial RAM Disk. initrd is used by kernel as temporary root file system until kernel is booted and the real root file system is mounted. It also contains necessary drivers compiled inside, which helps it to access the hard drive partitions, and other hardware.
5.Init Looks at the /etc/inittab file to decide the Linux run level. Following are the available run levels 0 halt 1 Single user mode 2 Multiuser, without NFS 3 Full multiuser mode 4 unused 5 X11 6 reboot Init identifies the default initlevel from /etc/inittab and uses that to load all appropriate program. Execute grep initdefault /etc/inittab on your system to identify the default run level. If you want to get into trouble, you can set the default run level to 0 or 6. Since you know what 0 and 6 means, probably you might not do that. Typically you would set the default run level to either 3 or 5.
6. Run level programs When the Linux system is booting up, you might see various services getting started. Those are the runlevel programs Depending on your default init level setting, the system will execute the programs from one of the following directories. o Run level 0 /etc/rc.d/rc0.d/ o Run level 1 /etc/rc.d/rc1.d/ o Run level 2 /etc/rc.d/rc2.d/ o Run level 3 /etc/rc.d/rc3.d/ o Run level 4 /etc/rc.d/rc4.d/ o Run level 5 /etc/rc.d/rc5.d/ o Run level 6 /etc/rc.d/rc6.d/
Good by BIOS. Hello EFI As 32-bit architectures became the norm and 64-bit architectures emerged, the BIOS was starting to look quite dated. Intel set out to create a specification of a BIOS successor that had no restrictions on running in 16- bit mode with 20-bit addressing. This specification is called the Unified Extensible Firmware Interface, or UEFI (but typically called EFI). Although developed by Intel, it was managed since 2005 by the Unified EFI Forum. It is used by many newer 64-bit systems, including Macs, which also have legacy BIOS support for running Windows.
EFI Features BIOS components - preserved some components from the BIOS, including power Support for larger disks- The BIOS only supported four partitions per disk, with a capacity of up to 2.2 TB per partition. EFI supports a maximum partition size of 9.4 ZB (9.4 10 21 bytes). No need to start up in 16-bit (real) mode- The pre-boot execution environment gives you direct access to all of system memory. Device drivers - The EFI includes device drivers, including the ability to interpret architectureindependent EFI Byte Code (EBC) Operating systems use their own drivers. Boot manager- EFI has its own command interpreter and complete boot manager. Extensibility- The firmware is extensible. Extensions to EFI can be loaded into non-volatile memory.
EFI Booting With EFI, there is no longer a need for the Master Boot Record to contain a stage 1 boot loader; EFI has the smarts to load a file on its own. Instead, EFI reads the GUID (Globally Unique IDentifier) Partition Table (GPT), which is located in blocks immediately after block 0 (which is where the MBR still sits for legacy reasons). The GPT describes the layout of the partition table on a disk. From this, the EFI boot loader identifies the EFI System Partition. This system partition contains boot loaders for all operating systems that are installed on other partitions on the device.
BIOS/UEFI In the beginning there was the BIOS Intel creates the Extensible Firmware Interface in 1998 UEFI now supersedes EFI UEFI can run on-top-of the traditional BIOS or in place of the BIOS.
Unified Extensible Firmware Interface (UEFI) The interface defined by the EFI specification includes data tables that contain platform information, and boot and runtime services that are available to the OS loader and OS. UEFI firmware provides several technical advantages over a traditional BIOS system Ability to boot from large disks (over 2 TiB) with a GUID Partition Table, GPT CPU-independent architecture CPU-independent drivers Flexible pre-os environment, including network capability Modular design
BIOS & UEFI
UEFI Boot
UEFI Booting The UEFI specification defines a "boot manager", a firmware policy engine that is in charge of loading the operating system loader and all necessary drivers. The boot configuration is controlled by a set of global NVRAM variables, including boot variables that indicate the paths to the loaders. Operating system loaders are a class of the UEFI applications. As such, they are stored as files on a file system that can be accessed by the firmware, called EFI System partition (ESP). UEFI does not rely on a boot sector, although ESP provides space for it as part of the backwards compatibility.[28] UEFI booting from GPT disks is commonly called UEFI-GPT. Boot loaders can also be automatically detected by the UEFI firmwares, to enable booting from removable devices.] It is common for UEFI firmware to include a user interface to the boot manager, to allow the user to select and load the operating system among the possible options.
UEFI Features Breaking out of size limitations UEFI uses the GUID partition table (GPT).GPT uses 64-bit entries in its table which dramatically extends the support for size possibilities of the hard drive. Speed and performance Since UEFI is platform independent, it may be able to enhance the boot time and speed of the computer. Security Secure boot is a feature of UEFI. UEFI can allow only authentic drivers and services to load at boot time, making sure that no malware can be loaded at computer startup.
Advantages of UEFI vs. BIOS Interface Legacy BIOS UEFI Architecture x86 / X64 only Agnostic Mode 16 bit (real mode) 32/64 bit Boot Partition MBR (2.2 TB limit) GPT (9.4 ZB* limit) Runtime Services No Yes Driver model No Yes POST Graphics VGA Graphical Output Protocol (GOP)