Re: [PATCH RFC 6/7] i386: make the bzImage payload an ELF file

From: Vivek Goyal
Date: Thu Jun 07 2007 - 23:50:35 EST


On Wed, Jun 06, 2007 at 05:42:35PM -0700, H. Peter Anvin wrote:
> Jeremy Fitzhardinge wrote:
> >
> > Certainly, but much harder to implement. The ELF parser needs to be
> > prepared to move itself around to get out of the way of the ELF file.
> > It's a fairly large change from how it works now.
> >
>
> It doesn't if we simply declare that a certain chunk of memory is
> available to it, for the case where it runs in the native configuration.
> Since it doesn't have to support *any* ELF file, just the kernel one,
> that's an option.
>
> On the other hand, I guess with the decompressor/ELF parser being PIC,
> one would simply look for the highest used address, and relocate itself
> above that point. It's not really all that different from what the
> decompressor does today, except that it knows the address a priori.
>

One would not know highest used address until ELF headers have been
parsed. May be it is two step movement. First decompress ELF.gz and
ELF parser can be at the end of decompressed data. Then it can parse
the ELF headers and move itself out of the ELF header destination memory
and then load the elf segments at appropriate place.

One will have to be little careful while moving ELF parser or while
decompressing the file to a temporary buffer so that we don't stomp over
any other data loaded by boot-loader (like kexec does) or we don't go beyond
the memory bounds which might have been created in the case of using kdump.

Thanks
Vivek
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/