@ITにて、.NETアプリケーションが起動する仕組み という記事が掲載されています。
連載記事の、第2回なんですけどね。
概要は、タイトル通り、.NETアプリの起動プロセスが図表と共に掲載されています。
記事の要約?:
起動の大まかなプロセスは、以下のような感じです。
- EXEファイルを読み込む
- PEヘッダを解析し、メモリ内にプログラムを読み込む
- PEヘッダの解析結果に基づいたプログラムのエントリ・ポイントに移動し、そこからプログラムを実行させる
まぁ、普通のEXEファイルの実行とほとんど同じプロセスです。
ただし、普通のEXEファイルの実行とは違うところは、エントリ・ポイントの命令が6バイトしかないんですね。
エントリ・ポイントの命令は、
JMP <32bitアドレス>
という命令しかなくて、この指定された32bitアドレスの先が、.NETの実行環境の領域なんですね。
うーむ。意外と奥が深い。
Manual.Article.TrackBack :: .NETの動作原理を基礎から理解する! -- 第2回 .NETアプリケーションが起動する仕組み