最近、コンパイラ、標準ライブラリ、およびカーネルの内部動作に興味を持ちました。標準 C ライブラリのソースコードを探していたところ、Glibc に出会いました。しかし、Glibc の公式ウェブサイトには次のように書かれています。the library which defines the ''system calls'' and other basic facilities such as open, malloc, printf, exit...
つまり、Glibc は実際には標準 C ライブラリのソース コードを提供するのではなく、代わりにそれらの関数のシステム コールを提供し、カーネルがそれらを処理するのではないでしょうか?
それらについてもっと学びたいと思います。たとえば、、、、および関数は C プログラムでどのように実行されるのでしょうかsin
。Glibc がシステム コールだけを提供している場合、それらの関数の実際のソース コードはどこにありますか? カーネルはどのようにそれらを実行しますか? これらの機能を実行するカーネル部分のソース コードはどこにありますか?printf
strlen