add readme
This commit is contained in:
parent
00a8c3acac
commit
8301f87815
35
README.md
35
README.md
@ -1,2 +1,35 @@
|
||||
### MBR bootloader
|
||||
# FAT16 bootloader
|
||||
x86 FAT16 bootloader
|
||||
|
||||
### 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
|
||||
@ -60,7 +60,6 @@ wr8(u8 c, u8 fg, u8 bg, int x, int y)
|
||||
*where = c | (attrib << 8);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
boot(dev_t bootdev)
|
||||
{
|
||||
|
||||
Loading…
Reference in New Issue
Block a user