Размер () vs ls -la vs du -h какой из них правильный размер?

Я собирал собственное ядро ​​и хотел проверить размер файла изображения. Вот результаты:

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

Поскольку все они имеют разные размеры, какой из них ближе всего к реальному размеру изображения? Почему они разные?