linuxlinux-kernellsimage-sizedu

Size() vs ls -la vs du -h which one is correct size?


I was compiling a custom kernel, and I wanted to test the size of the image file. These are the results:

ls -la | grep vmlinux
-rwxr-xr-x   1 root   root   8167158 May 21 12:14 vmlinux

du -h vmlinux
3.8M    vmlinux

size vmlinux
   text    data     bss     dec     hex filename
2221248  676148  544768 3442164  3485f4 vmlinux

Since all of them show different sizes, which one is closest to the actual image size? Why are they different?


Solution

  • They are all correct, they just show different sizes.

    If you want to know how much RAM/ROM an executable will take excluding dynamic memory allocation, size gives you the information you need.