Knowledge:.NETアプリはどのように起動するか

posted on 2005年7月12日 19:22 投稿者 Elfaria

@ITにて、.NETアプリケーションが起動する仕組み という記事が掲載されています。
連載記事の、第2回なんですけどね。

概要は、タイトル通り、.NETアプリの起動プロセスが図表と共に掲載されています。

記事の要約?:

起動の大まかなプロセスは、以下のような感じです。

  1. EXEファイルを読み込む
  2. PEヘッダを解析し、メモリ内にプログラムを読み込む
  3. PEヘッダの解析結果に基づいたプログラムのエントリ・ポイントに移動し、そこからプログラムを実行させる

まぁ、普通のEXEファイルの実行とほとんど同じプロセスです。

ただし、普通のEXEファイルの実行とは違うところは、エントリ・ポイントの命令が6バイトしかないんですね。
エントリ・ポイントの命令は、
JMP <32bitアドレス>
という命令しかなくて、この指定された32bitアドレスの先が、.NETの実行環境の領域なんですね。

うーむ。意外と奥が深い。

Manual.Article.TrackBack :: .NETの動作原理を基礎から理解する! -- 第2回 .NETアプリケーションが起動する仕組み

コメント