7

私の質問は、Linux カーネルに含まれているかどうかlibc.so.6です。libc.so.6グーグルでさまざまなリンクをたどった後、カーネルにはカーネル空間で独自に使用するために実装された同じライブラリがあるため、 は Linux カーネルの一部ではないことがわかりました。libc.so.6ユーザー空間ライブラリです。ただし、Linux のすべての基本アプリケーションがクラッシュするため、libc.so.6 を「/lib」から削除すると、クラッシュするという疑問が残りました。

したがって、基本的な質問は次のように残されました。

  1. なしで Linux を実行できlibc.so.6ますか? はいの場合、そのような実装はどこで使用されていますか?
  2. 誰が提供しますlibc.so.6か?Linux ディストリビューションのみで提供されますか?
  3. Linux は内部的にスレッド化をサポートしていますか?
4

2 に答える 2

3

Linux は libc.so.6 なしで実行できますか? はいの場合、これはどこに当てはまりますか?

オプションを指定してコードをコンパイルすると、-nostdlib標準ライブラリは使用されません。

GCCは言う、

-nostdlib リンク時に、標準のシステム起動ファイルまたはライブラリを使用しません。スタートアップ ファイルはなく、指定したライブラリのみがリンカーに渡されます。コンパイラは、memcmp、memset、memcpy、および memmove への呼び出しを生成する場合があります。これらのエントリは通常、libc のエントリによって解決されます。このオプションが指定されている場合、これらのエントリ ポイントは、他のメカニズムを介して指定する必要があります。

glibc フリーの適切な実装については、Web ページを確認してください。

于 2013-10-30T13:16:06.437 に答える