我正在编译一个自定义内核,并且我想测试图像文件的大小。
结果如下:

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

由于它们均显示不同的尺寸,因此哪一个最接近实际图像尺寸?
他们为什么不同?

最佳答案

它们都是正确的,只是显示不同的大小。

  • ls显示文件的大小(当您打开并阅读它时,它将获得多少字节)
  • du显示实际磁盘使用情况,由于孔
  • ,实际磁盘使用情况可能小于文件大小
  • size显示对象/可执行文件的运行时映像的大小,该映像与文件的大小不直接相关(无论文件大小如何,bss都不会使用字节,文件可能包含调试信息,而该信息不属于文件的一部分)。运行时映像等)

  • 如果您想知道可执行文件需要多少RAM / ROM(不包括动态内存分配),size会为您提供所需的信息。

    关于linux - Size()vs ls -la vs du -h哪个是正确的大小?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56015876/

    10-16 22:50