[syslinux] port syslinux isohybrid perl script to C

Thomas Schmitt scdbackup at gmx.net
Tue Mar 30 14:03:26 PDT 2010


Hi,

> The request is to port the isohybrid script, in the syslinux package,
> from perl to C

If a major overhaul of isohybrid is done, then
please also consider my proposal to produce MBR
template files as alternative to image patching

  http://syslinux.zytor.com/archives/2010-March/013905.html

I just see that hpa has resumed our discussion.

It seems the isohybrid issues should be decided
in a coordinated way:
- There is interest of genisoimage to do what
  libisofs does.
- There is interest of libisofs to get a more
  stable interface to the SYSLINUX realm.
- There is interest to get rid of perl at
  runtime.


> As this is doing some simple structure unpacking and validation, and
> simple binary writes, this should be straightforward to implement in
> C.

Yes. It is no big deal. I did this in libisofs
with isohybrid from 3.72
  http://bazaar.launchpad.net/%7Elibburnia-team/libisofs/scdbackup/annotate/head%3A/libisofs/make_isohybrid_mbr.c


The fundamental problem is that the souvereignty
over the MBR code is with SYSLINUX, but the
souvereignty over the inner addresses of the ISO
image is with the ISO formatter program.

So isohybrid cannot patch ISO images on-the-fly
and libisofs has to expect at any time that its
outdated MBR template does not match isolinux.bin
any more.
(It is a little wonder that it still works.)


It appears to me, that isohybrid already contains
most of the code needed for MBR templates.
One has to split the random access i/o on the
ISO file from the preparation of the MBR data.
Then it is possible to produce an MBR with some
dummy addresses.


Have a nice day :)

Thomas




More information about the Syslinux mailing list