Wikipedia has related information at Bootloader. When a computer is turned on, there is some beeping, and some flashing lights, and then a loading screen appears. And then magically, the operating system loads into memory. The question is then raised, how does the operating system load up?
x86 - Advanced assembly guide for writing a bootloader - Stack Overflow
I spent a couple days digging into the following areas:. I had two old laptops to play around with. I thought that if I could set up network boot, it would make testing builds on the actual hardware fairly easy. I used tftpd32 on a windows machine connected by a USB-Ethernet dongle to the laptop.
Each time a new iteration comes out, a new step gets added to the process. And then, through a succession of steps, we transition through more and more modern architectures until we end at the latest and greatest. This is a 16 bit mode that the original x86 chips used. This 32 bit mode adds new things on top of real mode.
I've been developping an x86 bootloader in Rust that can use Linux boot protocol. In this article, I'd like to write about my motivation, features of this project, and issues. The ELF-formatted kernel is read from the filesystem and relocated, and then the kernel is booted.