回答:
Unixのブートプロセスには、プログラムをインテリジェントにロードする(再配置する、ライブラリをロードするなど)能力が限られていました。したがって、初期プログラムはディスクに保存された正確なイメージであり、メモリにロードしてカーネルを実行するために「呼び出される」必要があるものです。
後ほど(圧縮解除)圧縮などが追加され、より強力なブートローダーが導入されましたが、イメージ名が残っています。
「イメージ」が単なるディスクの1:1コピーであることを意味するものではありません。写真が撮影時の現実を正確に表すように、実行可能プログラム(またはカーネル)のイメージは、システムメモリにそのままロード(またはアンパック)できる状態のプログラムを表します。それに制御を与えた。そのプログラムは、その状態から一貫した方法で実行を開始できます。そのため、Linuxカーネルイメージは、制御を与えた後に単独で実行できるLinuxカーネルのイメージ(状態の画像)です。
現在、ブートローダーはハードディスクのファイルシステムからこのようなイメージをロードし(ドライバーが必要)、それで自分自身を置き換え、それを制御します。コンピューターの起動プロセスは、オペレーティングシステムが最終的に実行されるまで数回実行されます。これはチェーンローディングと呼ばれます。または、小さなプログラム(チェーン)がより複雑なプログラムをロードする場合、それはbootstrappingと呼ばれます。
BIOSは、たとえばイメージのboot.img
場合に呼び出されるブートローダーをロードしますgrub
。これboot.img
はファイルではありません(grubがインストールされている場合)。マスターブートレコード(MBR)にあるパーツの名前です。それをファイルにダンプすると、ディスクにそのまま書き込まれるのではなく、ファイルにそのまま書き込まれるファイル形式のイメージになります。これはgrub
、それ自体の残りをロードできる最も早い状態の表現(イメージ)でもあります。grub
次に、他のイメージをロードすることによって完全にロードする独自のメカニズムがあります。これは、のさまざまな段階で表されgrub
ます。その後、ブートローダーは、そのファイルの抽出されたコンテンツで自分自身を置き換えることにより、カーネルイメージをロードします。
数学では、カーネルはあるマップの画像のサブセットの逆画像であり、サブセットがコドメインの恒等要素に等しい場合。これらの名前は数学のさまざまな分野で大きく関連しているため、数学的な概念に由来していると確信しています。Unixは学術環境で派生したものであるため、これらの単語のカーネルとイメージの使用は同じである可能性があります。
「完全な」OSに関するあるレベルの情報を表すセットがあり、その情報もグループを形成する場合、そのセットでグループ準同型を定義するか、基本的に異なるサイズを持つ他のセットにマップできます。彼らはそれをグループにした元のセットの構造を「尊重」します。セットをより小さなセットまたはサブセットがより小さなセットのサブセットにマッピングする方が有利な場合があります。
画像-グループ準同型の画像は、一般的な関数とマップで、実際にマップされる要素のセットのサブセットにすぎません。この関数はすべての単一要素にマッピングされない場合があり、それらの要素は画像に含まれません。
カーネル-基本的には、イメージにマップする元のセットの要素のみで、イメージのアイデンティティ要素にのみマップします。基本的に、0にマッピングされる要素は画像内の物のようです。
画像のサイズが元のセットよりも小さい場合、複数のアイテムが1つの要素にマッピングされる必要があることがわかります。そのため、たとえば、イメージにマップするカーネルの複数の要素があり、それらすべてが0にマップする必要があることは既にわかっています。
元のセットをバイナリまたは1と0の有限シーケンスに選択し、コドメイン(マッピングされたセット)もバイナリのシーケンスに選択すると、適切なグループ構造の場合にのみそのようなものを構築できることがわかります定義することができます(これは少し深く、質問とは無関係です)。
したがって、OSの「カーネル」と「イメージ」は完全に定義されており、数学的な意味を持っていることが完全に確実にわかります。おそらく他の用語の使用からは独立しています。