What is the purpose of parse_elf() in misc.c
Graeme Russ
graeme.russ at gmail.com
Fri Nov 25 00:30:44 EST 2011
Hi All,
In looking at booting a raw x86 kernel image, I discovered that the
compressed image in bzImage is actually an ELF image created with:
objcopy -R .comment -S vmlinux
After decompressing the image, the parse_elf() function in misc.c copies
the sections from the ELF image (there are 3 sections, only 2 are marked
PT_LOAD) into their final resting place in memory. This got me to thinking,
why not use:
objcopy -O binary -R .comment -S vmlinux
I wrote a little stand-alone parse_elf() program, and lo-and-behold, the
outputs are identical. So, in theory, if bzImage contained a raw binary, it
could be decompressed directly to the target address.
Now there is some adjustment in parse_elf() for relocatable kernels, but I
can't but think that this could be simply catered for in the decompression
target address
Surely this would speed up kernel loading by removing the additional copy
that parse_elf() introduces
Or am I missing something significant?
Regards,
Graeme
More information about the Kernelnewbies
mailing list