Skip to content

Hojun-Cho/bootloader

Repository files navigation

FAT16 bootloader

x86 FAT16 bootloader

Feature

How to run

1. install image to device
	install to device
		./install.sh /dev/sda
	create image and install
		./install.sh
2. run with qemu
	qemu-systme-i386 [device | ./build/img]

Disk layout

0x0000 ~ 0x0200: "mbr"
0x8000 ~ *     : Using FAT16 filesystem
0x8000 ~ 0x8200: "biosboot"
    exist "boot" somewhere in FAT16 

How to work

mbr
	1. bios take us to 0x7C00
	2. relocate 0x7c00~0x7DFF to 0x7A00~0x7BFF
	3. load "biosboot" to 0x7C00~0x7DFF
	4. jump to 0x7c00 => biosboot
biosboot
	1. find "boot" file in FAT16 file sysytem
	2. load "boot" to 0x40000
	2-1. 0x40000 ~ 0x401ff: ELF information
		 0x40120 ~ *      : text, data, bss section 
	3. jump to 0x40120 => boot
boot
	1. set Global Descriptor Table
	2. enter protected mode
	2. set Interrupt Descriptor Table
	3. call boot function 

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published