0

実行可能ファイルの rlimit とパイプ制限とは何ですか? 動的にビルドされた実行可能ファイルがロード中にクラッシュする問題をデバッグしていますが、静的にビルドされた実行可能ファイルは問題ありません。動的に構築された実行可能ファイルがロードされると、

レジスタダンプの後に次の出力が表示されます

Process 2748(ls) has RLIMIT_CORE set to 1
Aborting Core

まず最初に、rlimit とは何かを exec の観点から説明してください。また、パイプリミットと呼ばれるものはありますか?この proc エントリが表示されます。

実行可能ファイルのこれらの属性を説明するリソースを教えてください。

質問 2 : 実行可能ファイルがロードされると、exec は正確に何をしますか? リンカーは、実行可能ファイルに必要な共有ライブラリをロードします。したがって、これを行うには、リンカ (/system/bin 内のバイナリ) を最初に実行する必要があります。

したがって、リンカー(システム/ビン/リンカー)と実行可能ファイル(ls)の両方がexecによってロードされることを理解しています。私の理解は正しいですか?これはすべて理論です。おそらく fs と proc の両方の管理が得意な人が、関連する情報源を教えてくれれば、非常に助かります。ありがとうございました。

4

1 に答える 1

1

RLIMIT_CORE、コアダンプが中止される前に生成できる情報の量を制限するために使用されます。この制限に達すると、それ以上の情報はログに記録されず、メッセージAborting Coreがコンソールに記録されます。

coreのマニュアルページから:

プロセスは、ソフトRLIMIT_COREリソース制限を設定して、「コア ダンプ」信号を受信した場合に生成されるコア ダンプ ファイルのサイズに上限を設けることができます。

完全なコアダンプを取得するために、より大きな値にsetrlimit()設定するために使用します。RLIMIT_CORE


実行可能ファイル/共有オブジェクトの最も一般的な形式はELFです。Linux では、これらの共有オブジェクトの動的ロードとリンクは、ld.so

ld.so新しく作成されたプロセス (execこの場合は by) のアドレス空間にロードされ、最初に実行されます。これは、コンパイル中にパスが.interp実行可能バイナリのセクションに埋め込まれているため可能です。

次に動的リンカー

  • 初期実行可能イメージをロードします
  • 依存する共有オブジェクト (*.soファイル) をロードします
  • 実行可能ファイルのエントリポイントにジャンプします

参照 : ELF ベースの Unix ライクなシステムのダイナミック リンカ

于 2013-08-30T03:47:12.000 に答える