Theory behind the bootloader

I downloaded several bootloaders from osdev and successfully booted the kernel. But now I want to learn the theory behind the bootloader. I want to know why the system boots and everything is behind the bootloader codes. Can someone give me a link or a link to a book? Thank you in advance. The system is x86.

+4
source share
1 answer

https://pdos.csail.mit.edu/6.828/2014/xv6/book-rev8.pdf

In Appendix B, he gives a brief overview in the first paragraph:

When the x86 computer boots up, it starts executing a program called BIOS, which is stored in non-volatile memory on the motherboard. The task of the BIOS is to prepare the hardware and then transfer control to the operating system. In particular, it transfers control to the code downloaded from the boot sector, the first sector 512 -byte boot disk. The boot sector contains the bootloader: instructions that load the kernel int o memory. The BIOS loads the boot sector at memory address 0x7c00 , and then jumps (sets the processor %ip ) to this address. When the bootloader starts execution, the processor simulates the Intel 8088, and the loader's task is to transfer the processor to a more modern mode of operation, load the xv6 kernel from disk into memory, and then transfer control to the kernel. The xv6 bootloader contains two source files, one of which is written in a combination of the 16-bit and 32-bit x86 assemblies ( bootasm.S ; (8900) ) and one is written in C ( bootmain.c ; <sub> (9000) sub> )

+1
source

All Articles