On Thu, May 12, 2011 at 1:47 PM, Mulyadi Santosa <mulyadi.santosa@gmail.com> wrote:
Hi...
On Thu, May 12, 2011 at 10:32, Vikram Narayanan <vikram186@gmail.com> wrote:
I think you got it wrong. I will try to put my question more elaborately. 1) The system is on and BIOS code runs. It gives the control to the boot loader, say GRUB. 2) Grub picks up the kernel from the specific partition. (i.e a vmlinuz image), which denotes that it is compressed. 3) There are uncompression routines in the kernel itself, If I am not wrong. So the kernel uncompresses itself. 4) Now the uncompressed thing is the vmlinux image, right?
nope... it's a binary....but not ELF...and that's not even named vmlinux or similar to vmlinux...
5) The vmlinux is in ELF format. Correct? yes.... but see above...
Thanks for all your explanations. So the uncompressed one is _NOT_ an ELF file, but a raw binary. So it doesn't need any interpretation. Hope this is right. So when compiling the kernel, what is the purpose of the other files(mentioned below) linux-2.6/vmlinux - ELF executable, not stripped linux-2.6/arch/x86/boot/vmlinux.bin - Raw binary (Guess this is the one which is inside the bzImage) linux-2.6/arch/x86/boot/compressed/vmlinux.bin - ELF executable, stripped linux-2.6/arch/x86/boot/compressed/vmlinux - ELF executable, not stripped Thanks, Vikram