标准C库和系统调用如何协同工作?

5 c compiler-construction kernel glibc standard-library

我最近对编译器,标准库和内核的内部工作感兴趣.在我搜索标准C库的源代码时,我遇到了Glibc.但它在Glibc的官方网站上说的是:the library which defines the ''system calls'' and other basic facilities such as open, malloc, printf, exit...

所以我猜Glibc实际上并没有提供标准C库的源代码,而是为这些函数提供系统调用,然后内核负责处理它们,对不对?

我想更多地了解这些事情.例如,如何做的sin,printf以及strlen,功能得到C程序执行?如果Glibc只提供系统调用,那些函数的实际源代码在哪里?内核如何执行它们?哪里可以找到执行这些功能的内核部分的源代码?

Pau*_*fti 5

C库是一个用户域库,几乎就像任何库一样.

系统调用是内核提供的接口.它们与C标准无关.它们是特定于操作系统 类UNIX操作系统之间存在一些相似之处,但这是一个不同的主题.

C库中实现的一些功能将最终以这种或那种方式调用系统调用.但这与其他任何图书馆都是一样的.

我建议从OpenBSD查看C库.Android手机也使用它.它简单明了,记录完备.你可以在这里找到它.