che*_*ish 6 linux ls linux-kernel du image-size
我正在编译自定义内核,我想测试图像文件的大小.这些是结果:
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
Run Code Online (Sandbox Code Playgroud)
由于它们都显示不同的尺寸,哪一个最接近实际图像尺寸?他们为什么不同?
他们都是正确的,他们只是显示不同的大小.
ls 显示文件的大小(当您打开并读取它时,这将是您将获得的字节数)du 显示实际磁盘使用量,由于漏洞,可能小于文件大小size 显示与文件大小无直接关系的对象/可执行文件的运行时映像的大小(bss在文件中不使用任何字节,无论文件大小多少,该文件可能包含不属于运行时映像的调试信息等)如果您想知道可执行文件将占用多少RAM/ROM(不包括动态内存分配),size则为您提供所需的信息.