What is GRUB? |
GRUB stands for GRand Unified Bootloader and is a GNU
bootloader that can boot a variety of operating systems
from Linux, Mach4, vSTA, DOS, NT 3.51, the *BSD variants
and any generic OS you can add to it with its easy to use
boot menu.
GRUB is a bootloader that takes away all the complexities out of trying to boot your os by doing it for you. GRUB can handle a variety of filesystems from MS-DOS FAT systems, Linux ext2fs (Second Extended File System), Amiga FFS (Fast File System) and three "generic" executable's types, ELF files, FreeBSD a.out files and "generic" executable's (any file with a valid multiboot header). |
Where can I get GRUB from? |
Currently GRUB is at version 0.5.96 (as of writing) and the
main GRUB homepages is
http://www.gnu.org/software/grub/ |
Grub and DJGPP A.OUT files produced by LD |
DJGPP's linke (LD) can produce AOUT files, one of the formats
that GRUB nativly supports for loading of kernel files. Unfortunatly
for us the DJGPP AOUT is neither the FreeBSD A.OUT nor the NetBSD
A.OUT format.
To get your DJGPP to output files that are correctly supported by GRUB, you need to either, alter the grub source code (not a good thing to do since its not official!), write a multiboot header into your coder (within first 4kb), or alter djgpp's LD linker to output desired formats, ELF, or Free/NetBSD A.OUT formats. |
Grub and NASM ELF files |
ELF files that are produced by NASM "-f elf" are object / relocatable files, not pure flat executable files, and require further linking in order to produce an ELF executable file that can be loaded by grub. |
Grub and Watcom ELF files |
Watcom is another compiler that supports ELF files, but versions
10.6 and below produce broken ELF files that run at offset 0x00000000.
Versions higher than 10.6 may work correctly, if anyone has 11.n and would like to verify true or false for me, please do so. |