After reading a lot online, I start to get more and more confused about how boot manager work. I have realized that boot manager, such as rEFInd, is not an update or anything related to firmware (correct me if wrong). I now have the following understanding:
For BIOS machine, one would expect the BIOS firmware to recognize all the disks present in the computer (it does not recognize partitions on any disk). Let's say the machine has a internal hard drive and a external CD connected to it. Then BIOS let you choose one of them and read the boot loader on the MBR of the hard drive or CD. Now, suppose that you have both Windows and Linux installed on the hard drive. Here comes the part I am not completely sure, if you have installed GRUB, both a boot manager and boot loader, does it mean that after you choose to boot from the hard drive, the GRUB boot loader is read and executed, which invokes the GRUB boot manager? then GRUB boot manager recognize the different systems you have on your machine, and invoke then invoke the boot loader for windows or boot loader for Linux, which is still a part of GRUB?
For UEFI machine, it seems like the firmware is already a boot manager as it recognizes the partition table and all the disks connected to the computer. So all you need is to write the boot loader to the EFI system partition and firmware will let your choose which boot loader you want to use at boot time. Is that right? However, I notice that there is still boot manager such as rEFInd available for UEFI machine, what are they for then if the firmware is already acting like a boot manager. Moreover, is rEFInd considered firmware stuff or just some application installed on a particular disk's EFI system partition?