web-dev-qa-db-ja.com

実行可能なVS。ソフトウェアイメージ

基本的な概念を明確にするためにあなたの助けが必要です:

組み込みシステムでは、プログラムがプロセッサ(例としてARM)で実行されると、「実行されるコード」がメインメモリにロードされるためだと私は理解しています。

私の質問は:

  • 「実行されるコード」は「実行可能」と呼ばれますが、「実行可能」とはどういう意味ですか?
  • 「実行可能ファイル」と「ソフトウェアまたはバイナリイメージ」の違いは何ですか。

私はソフトウェアエンジニアリングのバックグラウンドを持っているわけではありません。私の無地のバックグラウンドを許しません。

1
Lavender

私はあなたが非技術的な背景から来ていると思いますので、条件はあなたにとって新しいものです。このサイトの回答の多くを完全に理解するには、Computer Science 101(CS101)のような初心者コースを受講することをお勧めします。これは、少なくともコンピュータがどのように機能するかについての語彙と一般的な概念を紹介します。

あなたが持っている2つの質問の間に実際にはそれほど大きな違いはありません。

実行可能:コンピュータで実行するように設計されたファイル

実行可能ファイルは、特定のアーキテクチャ(ARMシステム)など)で実行するようにコンパイルされており、同じ実行可能ファイルを他のアーキテクチャで実行することはできません。その理由について、CS 101クラスで詳しく説明します。

Software: CPU(ARMなど)に何をすべきかを指示する一連の命令

ソフトウェアは、実行中のアプリケーションを構成するファイルよりも、命令に関係しています。

バイナリイメージ:バイトのセットを含むファイル。

バイナリイメージは低レベルの概念であり、実行可能ファイル、画像、ムービー、またはディスクドライブのコピーにすることができます。ここでの主な違いは、コンテンツがテキストではなくバイナリであることです。

1
Berin Loritsch

@Natが述べたように、ここのコンテキストは重要です。ベアメタル(OSなし)のコンテキストから対処します。

通常、ソフトウェアはなんらかの言語(C/C++、アセンブラーなど)で記述されています。これがソースコードを構成します。 ソースコードは、ターゲットプロセッサで直接実行できる形式ではないため、生成するコンパイル/アセンブリプロセスでソースコードを実行する必要がありますオブジェクトコード、これをリンカで実行して実行可能オブジェクトコードファイルを生成します。

この[〜#〜] eoc [〜#〜]ファイルは、ターゲットプロセッサで直接実行できる形式ですが、何らかの方法でメモリにロードする必要があります。

ベアメタル(OSなし)組み込みシステムでは、これは通常、デバッガーまたはフラッシュプログラマーを介して何らかの形式の不揮発性ストレージに書き込まれ、起動プロセスに従ってターゲットプロセッサによって直接実行されます。

0
selectstriker2