Linuxカーネルが「イメージ」と呼ばれるのはなぜですか?


62

LinuxカーネルがLinuxカーネルイメージと呼ばれることをよく耳にしますが、検索エンジンでイメージと呼ばれる理由についての答えを見つけることができないようです。

イメージについて考えるとき、ディスクのコピーまたは写真の2つのことしか考えられません。地獄は写真画像ではないので、なぜ画像と呼ばれるのでしょうか?


10
RAM領域のコピーでもあります(これはカーネルの場合です)
Romeo Ninov

回答:


60

Unixのブートプロセスには、プログラムをインテリジェントにロードする(再配置する、ライブラリをロードするなど)能力が限られていました。したがって、初期プログラムはディスクに保存された正確なイメージであり、メモリにロードしてカーネルを実行するために「呼び出される」必要があるものです。

後ほど(圧縮解除)圧縮などが追加され、より強力なブートローダーが導入されましたが、イメージ名が残っています。


1
圧縮と解凍は、「イメージ」と呼ばれるものとは関係ありません。昔のように、メモリ内の特定のポイントにロードされ、直接呼び出されます。介在するブートローダーも常に存在します。カーネル自体は依然としてイメージであり、メモリ内の特定のポイントにロードされ、直接呼び出されます。
phyrfox

まさに、OPがIMOを混乱させた理由です。彼の画像の圧縮バージョンは、画像のように見えなくなり(非圧縮で見た場合)、画像と呼ばれなくなります。しかし、カーネルはまだイメージと呼ばれています。
アントン

TBHは、あなたがその起源について正しいとは確信していませんが、あなたの説明は非常に理にかなっており、私は賛成しなければなりません。私見圧縮画像はまだ画像です。画像を取得する方法は関係ありません。それはイメージです。それはあなたが話していることを明確にし、おそらくそれが最も重要なことです。
アコスタディノフ

面白い。したがって、カーネルのような関数の束を含むオブジェクトのテキストを含むjavascriptファイルがあり、それをNodeHttp側でXMLHttpRequestを介してロードして評価し、NodeJSサーバーを使用して要求を介して対話する場合、これを呼び出すことができますjavascriptファイルカーネルイメージ:O
Dmitry

31

イメージという言葉には、「ライブ作業コピーを作成するために必要なすべての情報を含むファイル」という定義もあります。


3
これは、ディスク上の実際のイメージを参照するために、「バイナリ」、「実行可能」、「プログラム」などの用語をいじる必要性を回避する、すてきな明確な用語です。
トーマス

3
イメージはメモリのスナップショットです。
池上

2
完全ではありません-完全なシステム状態を(再)作成するのに十分な情報が必要です。メモリダンプで十分であれば、暗黙の知識(開始アドレス、初期システム状態)があります。十分でない場合、メモリダンプをイメージとは呼びません。
サイモンリヒター

20

「イメージ」が単なるディスクの1:1コピーであることを意味するものではありません。写真が撮影時の現実を正確に表すように、実行可能プログラム(またはカーネル)のイメージは、システムメモリそのままロード(またはアンパック)できる状態のプログラムを表します。それに制御を与えた。そのプログラムは、その状態から一貫した方法で実行を開始できます。そのため、Linuxカーネルイメージは、制御を与えた後に単独で実行できるLinuxカーネルのイメージ(状態の画像)です。

現在、ブートローダーはハードディスクのファイルシステムからこのようなイメージをロードし(ドライバーが必要)、それで自分自身を置き換え、それを制御します。コンピューターの起動プロセスは、オペレーティングシステムが最終的に実行されるまで数回実行されます。これはチェーンローディングと呼ばれます。または、小さなプログラム(チェーン)がより複雑なプログラムをロードする場合、それはbootstrappingと呼ばれます。

BIOSは、たとえばイメージのboot.img場合に呼び出されるブートローダーをロードしますgrub。これboot.imgはファイルではありません(grubがインストールされている場合)。マスターブートレコード(MBR)にあるパーツの名前です。それをファイルにダンプすると、ディスクにそのまま書き込まれるのではなく、ファイルにそのまま書き込まれるファイル形式のイメージになります。これはgrub、それ自体の残りをロードできる最も早い状態の表現(イメージ)でもあります。grub次に、他のイメージをロードすることによって完全にロードする独自のメカニズムがあります。これは、のさまざまな段階で表されgrubます。その後、ブートローダーは、そのファイルの抽出されたコンテンツで自分自身を置き換えることにより、カーネルイメージをロードします。


7

古代史。イメージという用語は、Compiler-> Linkerからの出力を表す古いDigital Equipment Corporationの用語に由来します。ファイルは、リンカを介してコードなどを解釈して、デザインの実行可能な「イメージ」を作成することによって作成されたイメージです。


1
参照リンクを追加した場合、私は
賛成です

Digital Equipment Corporationの1981
12

5

数学では、カーネルはあるマップの画像のサブセットの逆画像であり、サブセットがコドメインの恒等要素に等しい場合。これらの名前は数学のさまざまな分野で大きく関連しているため、数学的な概念に由来していると確信しています。Unixは学術環境で派生したものであるため、これらの単語のカーネルとイメージの使用は同じである可能性があります。

「完全な」OSに関するあるレベルの情報を表すセットがあり、その情報もグループを形成する場合、そのセットでグループ準同型を定義するか、基本的に異なるサイズを持つ他のセットにマップできます。彼らはそれをグループにした元のセットの構造を「尊重」します。セットをより小さなセットまたはサブセットがより小さなセットのサブセットにマッピングする方が有利な場合があります。

画像-グループ準同型の画像は、一般的な関数とマップで、実際にマップされる要素のセットのサブセットにすぎません。この関数はすべての単一要素にマッピングされない場合があり、それらの要素は画像に含まれません。

カーネル-基本的には、イメージにマップする元のセットの要素のみで、イメージのアイデンティティ要素にのみマップします。基本的に、0にマッピングされる要素は画像内の物のようです。

画像のサイズが元のセットよりも小さい場合、複数のアイテムが1つの要素にマッピングされる必要があることがわかります。そのため、たとえば、イメージにマップするカーネルの複数の要素があり、それらすべてが0にマップする必要があることは既にわかっています。

元のセットをバイナリまたは1と0の有限シーケンスに選択し、コドメイン(マッピングされたセット)もバイナリのシーケンスに選択すると、適切なグループ構造の場合にのみそのようなものを構築できることがわかります定義することができます(これは少し深く、質問とは無関係です)。

したがって、OSの「カーネル」と「イメージ」は完全に定義されており、数学的な意味を持っていることが完全に確実にわかります。おそらく他の用語の使用からは独立しています。


基本的に、カーネルはOSの「薄型」バージョン、または重要で「抽象化」可能なOSの一部である場合があります。その後、マップが単射的ホモフィズムであり、既知である場合、画像全体を調整することができます画像全体。データ圧縮の方法は、用語の「カーネル」と「イメージ」の由来であるように見えます。しかし実際には、それらはよく知られている数学的概念に由来しています。
マーシャルクラフト

3
こんにちは元Mar。コメントを追加するよりも、編集して投稿を改善することをお勧めします。
アンソニーG-モニカの正義

4
カーネルのコンピューティング使用は、「特にハードシェルが削除されると、ナットの中心(通常は食用)部分」から来ると考えていますウィクショナリーを参照)-オペレーティングシステムの小さな内部部分です。すべての「外側の層」(GUI、コマンドシェル、ロード可能なドライバー)を除去した後、ハードウェアを何らかの有用な方法で動作/動作させるために必要な(おおよそ)最小限の部分です。
TripeHound

わあわあ 根拠のない投機。TripeHoundはそれを正しく理解しました。マーシャルクラフトが推測しました。
ジョシュア

あなたの「かなり確実」なものを修正してください:)
ホッブズ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.