728x90
1.BIOS(Basic Input/Output System)
- When we power on, BIOS performs a Power-On Self-Test (POST) for all of the different hardware components in the system to make sure everything is working properly.
- Also it checks for whether the computer is being started from an off position (cold boot) or from a restart (warm boot) is stored at this location.
- Retrieves information from CMOS (Complementary Metal-Oxide Semiconductor), a battery operated memory chip on the motherboard that stores time, date, and critical system information.
- Once BIOS sees everything is fine, it will begin searching for an operating system Boot Sector on a valid master boot sector on all available drives like hard disks, CD-ROM drive etc.
- Once BIOS finds a valid MBR, it will give the instructions to boot and executes the first 512-byte boot sector that is the first sector (“Sector 0″) of a partitioned data storage device such as hard disk or CD-ROM etc.
BIOS find a valid MBR → boot and executes MBR
2.MBR(Master Boot Record)
- Normally we use multi-level boot loader. Here MBR means I am referencing to DOS MBR.
- Afer BIOS executes a valid DOS MBR, the DOS MBR will search for a valid primary partition marked as bootable on the hard disk.
MBR → valid primary partition (Bootable) - If MBR finds a valid bootable primary partition then it executes the first 512-bytes of that partition which is second level MBR.
MBR → valid bootable primary partition → execute first 512 bytes (Boot Loader) - In linux we have two types of the above mentioned second level MBR known as LILO and GRUB
3.LILO or GRUB
LILO - LInux LOader
- LILO is a linux boot loader which is too big to fit into single sector of 512-bytes.
- so it is divided into two parts an installer and a runtime module.
- The installer module places the runtime module on MBR. The runtime module has the info about all operating systems installed.
(installer module → runtime module → MBR) - When the runtime module is executed, it selects the operating system to load and transfers the control to kernel. (runtime module → select operating system to load → transfer control → kernel)
- LILO does not understand file systems and boot images to be loaded and treats them as raw disk offsets
GRUB - GRand Unified Bootloader
- GRUB MBR consists of 446 bytes of primary boot loader code and 64 bytes of the partition table.
- GRUB locates all the operating systems installed and gives a GUI to select the operating system need to be loaded.
- Once user selects the operating system, GRUB will pass control to the kernel of that operating system.see below what is the difference between LILO and GRUB
Select operating system → grub will pass control → the kernel that operating system
4.Kernel
- Once GRUB or LILO transfers the control to Kernel, the Kernels does the following tasks
- initializes devices and loads initrd module
- mounts root file system
5.init
- The kernel, once it is loaded, finds init in sbin(/sbin/init) and executes it.
- Hence the first process which is started in linux is init process.
- This init process reads /etc/inittab file and sets the path, starts swapping, checks the file systems, and so on.
- it runs all the boot scripts(/etc/rc.d/*, /etc/rc.boot/*)
- starts the system on specified run-level in the file /etc/inittab
6.Run Levels
- There are 7 run levels in which the linux OS runs and different run levels serves for different purpose. The descriptions are given below.
- 0 – halt
- 1 – Single user mode
- 2 – Multi-user, without NFS (The same as 3, if you don’t have networking)
- 3 – Full multi-user mode
- 4 – unused
- 5 – X11
- 6 – Reboot
- We can set in which run-level we want to run our operating system by defining it on /etc/inittab file.
'LINUX > Boot-up Process' 카테고리의 다른 글
How does a kernel mount the root partition? (0) | 2023.08.25 |
---|---|
Linux Booting Process: A step by step tutorial for understanding Linux boot sequence (0) | 2023.08.24 |
Linux grub(Grand Unified Bootloader) tutorial (0) | 2023.08.24 |
#1 GPT - GUID Partition Table (1) (0) | 2023.08.22 |
What is MBR and GPT partition table (0) | 2023.08.22 |