goo blog サービス終了のお知らせ 

ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

シェルからa.outのプログラムが読み込み、起動、終了するまでの流れ

2008-08-13 17:10:09 | Linux

 Linuxデバイスドライバプログラミングという本のP65、「main関数の呼び出しフロー」にある図を文章にしてメモメモ。
 Linuxでプログラムが読み込まれ、起動、終了するまでです。




■プログラムの起動

1.(シェル)コマンドラインから、プログラム(a.out等)を指定されて、
       起動要求を受ける

2.(glibc)プログラムを実行すべくexecve呼び出し、システムコール発行される

3.(カーネル)sys_execve()が起動され、
       バイナリの検証が行われた後
       ローダーが起動される

4.(/lib/ld-linux.so.2)ELFインタープリターが起動され
     →ELF:linuxのバイナリ形式

5.(/lib/libc.so.6)Cライブラリが動的にリンクされて

6.(glibc)_libc_start_mainが呼び出される

7.そこから、アプリケーションのmainが呼び出される




■プログラムの実行

8.適当に実行し、場合によってシステムコールが呼ばれ、

9.exitで終了する




■プログラムの終了

10.(glibc)exitでアプリが終了すると、glibcの_exitが呼ばれ、
   システムコールが発行されて

11.(カーネル)sys_exitが呼ばれ終了する




図を見る限り、こんなかんじのようだ。


この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« Linspireに下されたリストラ... | トップ | Appleは遠隔からiPhoneアプリ... »
最新の画像もっと見る

Linux」カテゴリの最新記事