I have some kinda basic question to the boot process of a computer and the part where the bootloader calls the OS.

So I know that the BIOS copies the first 512 bytes from a bootable drive into memory and executes the code - so that's the boot block.

* But how does that small assembler boot bootloader the commands from the OS?
* Does the bootloader continue running and still acts as a "transmitter" between software and hardware? Or is the control completely given to the OS?
* Why are all bootloaders written in assembler?
* And why do you have to go back from C++ to C when writing an OS?

Best regards,
lamas