我使用objdump -S
来获取 /lib/x86_64-linux-gnu/libc.so.6 的源代码和反汇编二进制行的混合。
深入研究生成的输出显示已经在.S格式的汇编文件中编写了大量的GNU C库。
有人可以告诉我这些.S文件是否用于系统调用?如果是这样,这些组件还涵盖了什么?
答案 0 :(得分:1)
有人可以告诉我这些.S文件是否用于系统调用?
glibc
系统调用在汇编文件中实现,是的。
如果是这样,这些组件还涵盖了什么?
很多的其他东西。在我的头顶,在x86_64
:
IFUNC
ŠPLT
存根PLT
分辨率的动态加载程序的一部分,strcpy
,strstr
,memcpy
,memmove
,一些三角函数。某些平台没有(某些)手动优化的装配例程,并且文件数量较少.S
。 PLT
解析无法在纯C
中完成,因此在所有平台上的汇编中实现。{/ p>
答案 1 :(得分:0)
为什么不简单地查看源代码呢? glibc是开源的:https://www.gnu.org/software/libc/download.html
此外,this question指的是网络上可以浏览来源的地方。