[syslinux] Proposal for Chain-Loadable LDLINUX.SYS

Shao Miller sha0.miller at gmail.com
Wed Jan 2 03:15:24 PST 2013


On 1/2/2013 01:51, H. Peter Anvin wrote:
> On 01/01/2013 06:32 PM, Shao Miller wrote:
>> On 12/31/2012 16:02, Gert Hulselmans wrote:
>>> A LDLINUX.SYS that confirms to the (a) multiboot specification might
>>> be a possibiltity to consider.
>>> The multiboot entry point can be a different one than the normal entry
>>> point (e.g doesn't need to load
>>> the rest of LDLINUX.SYS from disk).
>>
>> This is true, but there's still the complication of the "missing"
>> ldlinux.bin VBR code.  If this "missing" VBR code could be added to
>> ldlinux.sys, then such a multiboot entry-point could rebuild ldlinux.bin
>> in memory the same way as the current flow yields.
>>
>> I believe that the build process currently simply chops ldlinux.bin up
>> to get ldlinux.sys.  It probably wouldn't be terrifically complicated to
>> chop it up and then put it together again in a different order to result
>> in an ldlinux.sys with the VBR code somewhere in it, but my original
>> proposal ends up having ldlinux.bin == ldlinux.sys, so no more chopping
>> (except in the installers).
>>
>> Time to review the (a) multiboot specification, anyway.  Thanks. :)
>>
>
> The installers is where the chopping happens anyway.  However, the
> chainloaded ldlinux.sys doesn't want to run the VBR; instead it should
> run a different piece of code in lieu of the VBR and the disk-loader
> code.  In Syslinux 5+ there really isn't a lot that piece of code would
> have to do.

Oh, my mistake.  I thought the build process chopped ldlinux.bin up so 
the VBR and ldlinux.sys could be separate blobs for the installers.  Or 
maybe that's what you're talking about.  I was actually talking about 
the installers doing chopping when they're run.

But ok, I've read the multiboot specification found here

   http://www.gnu.org/software/grub/manual/multiboot/multiboot.html

and will review how that might fit with ldlinux.bin.  I guess the EDD 
checking that makes up a fair portion of the VBR code would just be 
reproduced elsewhere.

Just for fun, maybe it'd be neat to leave room for some possible future 
hybridization in ldlinux.sys, such as:
- Current style
- Multiboot (thinking about tackling this)
- Linux x86 kernel-format
- DOS .EXE

Although launching from DOS could obviously have complications from DOS 
hooks, TSRs, and a generally stale device state, plus .sys isn't .exe, 
so'd have to be renamed unless launched from config.sys (so why bother).

- Shao Miller


More information about the Syslinux mailing list