Bootloader: Difference between revisions

187 bytes added ,  11 months ago
no edit summary
[unchecked revision][unchecked revision]
No edit summary
 
(4 intermediate revisions by 4 users not shown)
Line 11:
 
=== Loading your kernel ===
The bits of your kernel are somewhere on some disk (presumably the booting disk, but this is not mandatory). Question is: where on the disk? Is it a regular file on a [[FAT|FAT-formatted]] floppypartition? Is it a collection of consecutive sectors in the "reserved area" of the FAT12FAT floppyfile system (in which case you may need a dedicated tool to format the disk and install the kernel on it)? Or is the floppydisk / partition simply left unformatted and the kernel pasted directly with a disk image tool?
 
All the above options are possible. Maybe the one I'd choose myself would be to reserve enough space on a FAT12FAT floppyfile system to store the list of sectors used by the kernel file. The field reserved sectors in the BPB is a perfect place for this. The "advantage" of being fully-FAT12FAT is that you don't need to re-write the bootsector every time you rewrite the kernel.
 
What needs to be loaded mainly depends on what's in your kernel. Linux, for instance, requires an additional 'initrd' file that will contain the 'initialization process' (as user level). If your kernel is modular and if Filesystems are understood by some modules, you need to load the modules along with the kernel. Same goes for 'microkernel services' like disk/files/memory services, etc.
Line 64:
* [[GRUB]] is a huge, bloated Grand Unified Bootloader, used by many OSes
* [[BOOTBOOT]] for booting 64 bit kernels on BIOS, UEFI, El Torito CDROM etc.
* [[Limine]] is a bootloader capable of natively booting 64-bit kernels and Linux
* [[SysLinux]] is the Linux kernel loader
* [[Rolling Your Own Bootloader]]
Line 74 ⟶ 75:
 
[[Category:OS theory]]
[[Category:Booting]]
[[Category:Bootloaders]]
[[de:Bootloader]]
Anonymous user