ローダ

出典: フリー百科事典『ウィキペディア(Wikipedia)』

これはこのページの過去の版です。Nnh (会話 | 投稿記録) による 2016年3月4日 (金) 02:55個人設定で未設定ならUTC)時点の版 (→‎ローダによる再配置: ポインタ (プログラミング)|)であり、現在の版とは大きく異なる場合があります。

ローダ (loader) は、他のプログラム読込して起動できる状態にし、それを実行するプログラムである。

機能

ブートローダ

特にシステムの起動時に実行され、オペレーティングシステム (OS) を読込・実行するローダはブートローダと呼ばれ、通常コンピュータが再起動、シャットダウン、電源を切るなどするまでカーネル(OSの中核コンポーネント)に残る。OSの中にはカーネルをページング主記憶装置補助記憶装置間のデータ転送)できるものもあり、その場合ブートローダのメモリ領域が移ることがある。

ダイナミックリンカ

共有ライブラリdllなど)を読み込み、起動しているプログラムに関連付けるローダがダイナミックリンカである。

ローダによる再配置

ローダによる再配置が必要なコンピュータもある。それらは読み込みの開始点を指定するためにロードされるプログラムのアドレスポインタ)を調整する。この方式のコンピュータのポインタはプログラムのベースアドレスからのオフセット(距離)ではなく絶対アドレスである。IBMSystem/360やその後継機がそのような方式を採った。

ローダのその他の使用

ローダはプロトタイピング、テスト、使い捨てアプリケーションで有用である。そのようなプログラムの一つがジーン・アムダールのオリジナルOS/360の中核部であった。その機能はMVTMVSz/OSといった後継機に引き継がれた。

ローダのないコンピュータ

動的なプログラムの読み込みをサポートする全てのOSはローダを備えているが、スタック以外にRAMを使わないシステムや自動車オーディオシステムなどに組み込まれるコンピュータシステムでは、あらかじめ決められたプログラムを実行することで事足りてしまうためローダを持たない。

Unixでロードを実行するのは、システムコールハンドラ execve() である。

関連項目