カーネル自体が標準Cライブラリに依存していますか?

カーネル自体が標準Cライブラリに依存していますか?

私は特に、組み込みデバイスでLinuxが実際にどのように機能するのか、そして完全な機能を備えたシステムを構築するために必要なすべてのさまざまなコンポーネントについてより深く掘り下げています。

私は標準のCライブラリ実装(glibcなど)が独立しており、ユーザー空間アプリケーションがLinuxカーネルと通信して動作するために必要であることを知っています。

しかし、Linuxコード自体は実際にこの標準ライブラリに依存していますか?このLinuxなしで直接実行できますか?

答え1

いいえ、カーネルは標準Cライブラリ(または他のライブラリ)に依存せずに独立しています。ユーザ空間プログラムも必ずしもCライブラリに依存するわけではありません。 Cライブラリはシステムコールに便利なラッパーを提供しますが、Cライブラリを介さずに直接呼び出すことができ、他の言語ランタイムでも独自のラッパーを提供できます。

(これは通常、Cライブラリが提供すると予想されるかなり多くの関数の実装がカーネルに含まれており、時にはカーネルに適した単純化されたバージョンの形で含まれることを意味します。このカーネル初心者のよくある質問もっと学ぶ。 )

関連情報