CLOSE

What is the Boot Descriptor Structure?

The boot descriptor structure (often referred to as the multiboot information structure) is a data structure populated by the bootloader and passed to the kernel. This structure provides information about the system’s memory, boot device, command-line arguments, and more. GRUB or any multiboot-compliant bootloader will fill in this structure after loading the kernel.

struc OsBootDescriptor
	.KernelAddr 	resd 	1
	.KernelSize		resd 	1
	.RamDiskAddr	resd 	1
	.RamDiskSize 	resd 	1
	.ExportAddr		resd 	1
	.ExportSize		resd 	1
	.SymbolsAddr	resd	1
	.SymbolsSize	resd	1
endstruc

What is the Multiboot Header?

The Multiboot header is a crucial part of the bootloader-to-kernel communication in multiboot-compliant systems (like GRUB). It contains information about how the kernel expects to be loaded. The header typically includes details about the memory layout, entry point, flags, and other relevant information required by the bootloader to load the kernel correctly.

struc MultiBoot
	.Flags				resd	1
	.MemoryLo			resd	1
	.MemoryHi			resd	1
	.BootDevice			resd	1
	.CmdLine			resd	1
	.ModuleCount		resd	1
	.ModuleAddr			resd	1
	.Symbols0			resd	1
	.Symbols1			resd	1
	.Symbols2			resd	1
	.Symbols3			resd	1
	.MemMapLength		resd	1
	.MemMapAddr			resd	1
	.DrivesLength		resd	1
	.DrivesAddr			resd	1
	.ROMConfigTable		resd	1
	.BootLoaderName		resd	1
	.ApmTable			resd	1
	.VBEControllerInfo	resd	1
	.VBEModeInfo		resd	1
	.VBEMode			resd	1
	.VBEInterfaceSeg	resd	1
	.VBEInterfaceOff	resd	1
	.VBEInterfaceLen	resd	1
endstruc

https://github.com/The-Jat/TheTaaJ/tree/edb7f3941c0f5992357272be9e8ebb362c7861c3