Tool/software: Linux
Hi,
I have few questions about Linux Kernel and Boot process.
1) BIOS: Upon PowerON, the first code that is on Processor startup address i.e. BIOS, is executed. BIOS detects hardware and conducts POST. then it loads first stage boot loader (from MBR) handover the control to it. Now the question is, if BIOS conduct POST or read MBR it means it should contains drivers to communicate with RAM, Keyboard, Harddisk, USB. i.e. isn't it necessary to have Device driver to Detect/communicate with these Hardware.... So
i) does BIOS contains any driver??
ii) How it DETECTS hardware and conducts POST or communicate with Hard disk, RAM etc.??
2) initrd - initramfs : I have heard that device drivers are packed inside the kernel. The kernel loads them on boot time. after the kernel is loaded, kernel mounts a temporary RAMDISK file system called initrd or initramfs to load device drivers and mount actual root rile system. Now if device drivers are packed into kernel, so when bootloader loads kernel image into RAM, doesn't it means the drivers that ware packed inside kernel are too loaded into RAM, if so, then why does the kernel need a temporary root file system to load drivers??
3) bootloader: If boot loader is loading kernel image into RAM from Hard drive, then it means it should contain the device driver for hard drive. then why kernel needs to load RAID controllers and drivers?? should bootloader handover the driver to kernel???
Regards,