「ブート」の版間の差分

削除された内容 追加された内容
MelancholieBot (会話 | 投稿記録)
m ロボットによる 追加: sq:Booting
編集の要約なし
5行目:
 
== ブートローダ ==
多くの[[コンピュータ]]システムでは、メモリ([[Read Only Memory|ROM]]または[[Random Access Memory|RAM]])上の実行コードだけを実行できる。しかし、最近のオペレーティングシステムは[[ハードディスクドライブ]]や[[LiveCD]]、[[フラッシュメモリ]]([[USBメモリ]]など)に格納されている。つまり、コンピュータの電源を入れた直後、メモリ上にはオペレーティングシステムは存在しない。コンピュータの[[ハードウェア]]だけではオペレーティングシステムがやっているような複雑なことはできないので、ディスクからプログラムをロードするというようなことはできない。ここで解決できない[[パラドックス]]が生じる。オペレーティングシステムをメモリにロードするためには、オペレーティングシステムがメモリに存在していなければならない。
 
このパラドックスの解決法は'''ブートローダ'''(または'''ブートストラップローダ''')と呼ばれる特殊な小さい[[プログラム (コンピュータ)|プログラム]]を使うことである。このプログラムはオペレーティングシステムの全ての機能を持っているわけではないが、オペレーティングシステムをロードして起動するための別のプログラムをロードするには十分な機能を持っている。多段階のブートローダがよく使われ、ある小さなプログラムから別の小さなプログラムを呼び出すということを繰り返して、最終的にオペレーティングシステムが起動される。'''ブートストラップローダ'''(''bootstrap loader'')という名前は、[[ブーツ]]のつまみ革(strap)を自分で引っ張って自分を持ち上げようとするイメージから来ている。
 
初期のプログラム可能なコンピュータはトグル[[開閉器|スイッチ]]がフロントパネルに並んでいて、それを操作することによってブートローダをプログラム格納域に置いてから[[CPU]]を起動するようになっていた。そうするとCPUはブートローダを実行してオペレーティングシステムを外部記憶メディア(例えば[[紙テープ]]あるいは[[磁気ディスク装置]])からロードすることができた。
 
ブートローダの擬似[[アセンブリ言語|アセンブラコード]]は以下の8個の命令に単純化できる。