「Cライブラリまたは標準Cヘッダファイルにアクセスできません」とはどういう意味ですか? [閉鎖]

「Cライブラリまたは標準Cヘッダファイルにアクセスできません」とはどういう意味ですか? [閉鎖]

私は最近という本を読んでいました。Linuxカーネルの開発、作成者ロバート・ラブ。彼は2章でこう指摘する。

カーネルはCライブラリまたは標準Cヘッダファイルにアクセスできません。

初心者として、標準ファイルやCライブラリにアクセスせずにすべてのカーネルを作成する方法を尋ねたいと思います。オペレーティングシステムを開発するとき、これは一般的な動作ですか?教えてください

答え1

Cライブラリの多くの機能はカーネルに依存しています。カーネルがCライブラリを使用しようとすると、ループが発生します。標準のCヘッダーファイルはCライブラリから提供されるため、使用できません。唯一の図書館できるカーネルで使用されるライブラリには、Cライブラリを含む独自の外部依存関係はありません(つまり、メモリ割り当てやI / Oはありません...を意味します)。

通常、カーネルは必要なすべてのコードを書くことによって開発されます(場合によっては、適切なライセンスが付与されたライブラリからコードをコピーすることもできます)。どのようなものかを知りたい場合は、以前のバージョンのLinuxカーネルのソースコードを引き続き使用できます。バージョン 0.01例えば。

それ以来、状況は少し変わり、Linuxカーネルは自分だけの「図書館」(再利用用に設計されたカーネルコードモジュール)およびCライブラリスタイルルーチンのさまざまな実装(例:文字列操作関数)。それは自分のものを持っています一般的なタイトルまた。しかし、Linuxカーネルで最新のCを書くことは、他の場所で最新のCを書くのとは非常に異なります。

答え2

別のライブラリを使用してください。システムコールがカーネルに入るようにする標準ライブラリは使用できません。これが重要です。

だから他の図書館もあります。本に説明があるはずです。

関連情報