Tuesday, October 1, 2013

vmlinux vs vmlinuz vs (b)zImage vs uImage

See the wiki link
  • vmlinux -- compiled from source 
  • vmlinuz -- compressed from vmlinux
  • (b)zImage -- final binary image includes: bootloader, uncompress vmlinuz, load vmlinux, ramdisk
  • uImage -- final image for U-boot
  • # readelf -h /boot/vmlinuz-2.6.18-238.el5
    ELF Header:
      Magic:   7f 45 4c 46 02 01 01 ff eb 3d 00 00 00 00 00 00
      Class:                             ELF64
      Data:                              2's complement, little endian
      Version:                           1 (current)
      OS/ABI:                            Standalone App
      ABI Version:                       235
      Type:                              DYN (Shared object file)
      Machine:                           Advanced Micro Devices X86-64
      Version:                           0x1
      Entry point address:               0x100
      Start of program headers:          80 (bytes into file)
      Start of section headers:          0 (bytes into file)
      Flags:                             0x0
      Size of this header:               64 (bytes)
      Size of program headers:           56 (bytes)
      Number of program headers:         2
      Size of section headers:           64 (bytes)
      Number of section headers:         0
      Section header string table index: 0
  • # dd if=uImage of=zImage bs=64 skip=1
    42667+1 records in
    42667+1 records out
  • # hexdump -v uImage.header
    0000000 0527 5619 4713 7f79 2f4d e379 2900 ceaa
    0000010 0000 0000 0000 0000 b9d8 534e 6ab9 e05b
    0000020 a06b ec5b 1885 0898 80f2 6f74 0705 0102
    0000030 694c 756e 2d78 2e32 2e36 3031 6d5f 6c76


No comments:

Post a Comment