Boot Loader Tutorial Idea
Posted: Tue Jan 26, 2010 8:34 am
Hey all,
I've been pretty inactive for a while, but slowly getting back into my os coding. I know from my early works how much trouble I had with my boot loaders. The tutorials and information out there are pretty good at explaining the very basic concepts but there isn't much out there in the way of a comprehensive guide to all the things you should/could do as part of your boot-loaders.
My 2 stage loaders were designed with a few assumptions specific to my requirements in that I do not want to support partitions and I wanted to have a single unified boot-code that could be deployed to USB(floppy emulated or hdisk emulated) as well as bootable cd, proper hdisk and floppy disk and boot correctly from all of these scenarios. I didn't investigate network boot as it's not something I require.
I did do some investigations into EFI/UEFI and although it has some promising features it looks to me like it's still not widely adopted enough to be that useful (correct me if i'm wrong on this?)
I know that the MAC uses UEFI (but then they have exclusive control of their mainboard/platform).
I think there would be some value in compiling a full detailed guide with all our thoughts/findings/samples for what should go into a "modern" boot loader setup. I know a lot of ppl will be using GRUB and other ready-to-go setups, but this is after all all about rolling your own. We could cover many of the nuances of usb boot that I've found over time in home some mainboards require an FDD-emulated boot sector to have BPB and others not, as well as TPM modules. Much is already documented in sub tutorials and we could just reference those as needed like unreal mode/a20 gate/vbe/vga hw/pmode/longmode etc..
The end result should be something along the lines of.. "what are all the various steps and stages that need to be taken into account to boot a modern OS like win7/lux" but with the specifics left out like choice of FS (ie how to locate files under fat16/fat32 etc).
And we could (hopefully) compile a near-complete list of all the subtle nuances like fdd-emulation differences in bioses / 13h extended functions work sometimes/not others / can u use 13h ext. functions to load files of el-torito or should you load them use iso9660 spec. etc
Anyhow, it's just a thought and something I'd be happy to contribute all the code and notes i've compiled thus far into if anyone else is keen.
I've been pretty inactive for a while, but slowly getting back into my os coding. I know from my early works how much trouble I had with my boot loaders. The tutorials and information out there are pretty good at explaining the very basic concepts but there isn't much out there in the way of a comprehensive guide to all the things you should/could do as part of your boot-loaders.
My 2 stage loaders were designed with a few assumptions specific to my requirements in that I do not want to support partitions and I wanted to have a single unified boot-code that could be deployed to USB(floppy emulated or hdisk emulated) as well as bootable cd, proper hdisk and floppy disk and boot correctly from all of these scenarios. I didn't investigate network boot as it's not something I require.
I did do some investigations into EFI/UEFI and although it has some promising features it looks to me like it's still not widely adopted enough to be that useful (correct me if i'm wrong on this?)
I know that the MAC uses UEFI (but then they have exclusive control of their mainboard/platform).
I think there would be some value in compiling a full detailed guide with all our thoughts/findings/samples for what should go into a "modern" boot loader setup. I know a lot of ppl will be using GRUB and other ready-to-go setups, but this is after all all about rolling your own. We could cover many of the nuances of usb boot that I've found over time in home some mainboards require an FDD-emulated boot sector to have BPB and others not, as well as TPM modules. Much is already documented in sub tutorials and we could just reference those as needed like unreal mode/a20 gate/vbe/vga hw/pmode/longmode etc..
The end result should be something along the lines of.. "what are all the various steps and stages that need to be taken into account to boot a modern OS like win7/lux" but with the specifics left out like choice of FS (ie how to locate files under fat16/fat32 etc).
And we could (hopefully) compile a near-complete list of all the subtle nuances like fdd-emulation differences in bioses / 13h extended functions work sometimes/not others / can u use 13h ext. functions to load files of el-torito or should you load them use iso9660 spec. etc
Anyhow, it's just a thought and something I'd be happy to contribute all the code and notes i've compiled thus far into if anyone else is keen.