|  | -*- Mode: Outline -*- | 
|  |  | 
|  | Before working on anything in this file, it's very important that you | 
|  | make contact with the core GRUB developers. Things herein might be | 
|  | slightly out of date or otherwise not easy to understand at first | 
|  | glance. So write to <bug-grub@gnu.org> first. | 
|  |  | 
|  | Priorities: | 
|  | Reported bugs generally have top priority. | 
|  | Non-reported and non-encountered bugs (things we know don't work, | 
|  | but don't really impede things) have lower priority. | 
|  | Things in this file are ranked with one to three !; the more, the | 
|  | higher priority. | 
|  |  | 
|  |  | 
|  | Things that should be done before 1.0: | 
|  |  | 
|  | * Finish the Multiboot Speicification 0.7. !!! | 
|  |  | 
|  | * Add more --disable-FOO options to configure, so that you can create a | 
|  | minimum GRUB image. This is useful for boot floppies because of the size | 
|  | restriction. ! | 
|  |  | 
|  | * Implement a new version of track_int13, using Virtual 8086 Mode. !!! | 
|  |  | 
|  | * Add missing features of graphics support. !! | 
|  |  | 
|  | Things that should _not_ be done before 1.0: | 
|  |  | 
|  | * Add configuration inclusion support by adding a command "include". ! | 
|  |  | 
|  | * Add automatic configuration support. | 
|  |  | 
|  | * Add bunzip2 support. | 
|  |  | 
|  | * Define the module system. | 
|  |  | 
|  | * Add BSD syntax support, using results of ioprobe to map drives. ! | 
|  | (0x1f0-0x1f7 = primary IDE, 0x170-0x176 = secondary, | 
|  | 0x1e8-0x1ef = tertiary, 0x168-0x16f = quaternary). | 
|  |  | 
|  | * Add a real scripting language, possibly retaining backward | 
|  | compatibility so that old config files can be used. | 
|  |  | 
|  | * Add internationalization support, emulating gettext as much as is | 
|  | feasible. | 
|  |  | 
|  | * Support other architectures than i386-pc. | 
|  |  | 
|  | * Add real memory management. | 
|  |  | 
|  |  | 
|  | Things that may be done anytime: | 
|  |  | 
|  | * Port the script ``grub-install'' to OpenBSD. At least you will have to | 
|  | modify the function `convert' so that it can translate a native device | 
|  | name into the corresponding GRUB drive representation. ! | 
|  |  | 
|  | * Add a command to run a GRUB script file. !! | 
|  |  | 
|  | * Add commands to manipulate the menu from the command-line interface. ! | 
|  |  | 
|  | * Make symbolic links work for BSD FFS. | 
|  |  | 
|  | * Add indirect block support to the BSD FFS filesystem code, so files | 
|  | larger than 16MB can be read. | 
|  |  | 
|  | * Fix-up FreeBSD, NetBSD (and OpenBSD ?) command-line boot | 
|  | parameters. | 
|  |  | 
|  | * Support embedding a Stage 1.5 in the "bootloader" area of a FFS | 
|  | partition. (We already have the code, but need an approval by an | 
|  | expert before turning on the support. Any volunteers?) | 
|  |  | 
|  | * Support embedding a Stage 1.5 in the EXT2_BOOT_LOADER_INO of an ext2fs | 
|  | partition, so that it won't be accidentally erased or modified by | 
|  | the kernel. | 
|  |  | 
|  | * Add ISA PnP support. | 
|  |  | 
|  | * Add more filesystems support (NTFS, etc.) | 
|  |  | 
|  | * Add more remote console support (parallel and net). | 
|  |  | 
|  | * Add (real) RAID support. | 
|  |  | 
|  | ? Add a partition naming syntax that means ``the first partition of | 
|  | this type''.  We need this for clean Hurd install floppies. | 
|  | Nope.  Improving the `find' command would solve this problem. | 
|  |  | 
|  | * Add CDROM-chainloading support. It would be enough to support only | 
|  | BIOSes which have bootable-CDROM support (so you may use the "Bootable | 
|  | CDROM" BIOS calls). It is not trivial to support BIOSes without the | 
|  | capability to boot CDROM. | 
|  |  | 
|  | ? Divide pxegrub into two parts, so the initial image doesn't exceed | 
|  | the 32KB limit. I'm not sure if this is really necessary, because the | 
|  | PXE standard just says that it is _recommended_ to improve the | 
|  | modularity of a boot image. Obviously, this reason doesn't apply to | 
|  | GRUB, as pxegrub is merely a secondary boot loader. So whether this | 
|  | task should be done depends on if existing PXE ROMs support >32KB | 
|  | images or not, after all. |