From mboxrd@z Thu Jan 1 00:00:00 1970 From: graeme.russ@gmail.com (Graeme Russ) Date: Fri, 25 Nov 2011 16:30:44 +1100 Subject: What is the purpose of parse_elf() in misc.c Message-ID: <4ECF2804.9090007@gmail.com> To: kernelnewbies@lists.kernelnewbies.org List-Id: kernelnewbies.lists.kernelnewbies.org 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