ロゴ
ユニオンペディア
コミュニケーション
Google Play で手に入れよう
新しい! あなたのAndroid™デバイスでユニオンペディアをダウンロードしてください!
インストール
ブラウザよりも高速アクセス!
 

EXEフォーマット

索引 EXEフォーマット

EXEフォーマット(エグゼフォーマット)とはMS-DOSおよびその互換・後継環境の実行ファイルフォーマットである。 MS-DOSで実行可能なバイナリのフォーマットには他に、COMフォーマットと言うファイルフォーマットが存在する。COMフォーマットは、コード、データ、スタックの全てのセグメントが同一であるモデルで、開始番地も固定の0x100であるメモリイメージそのものであり、シンボル再配置も無い。COMフォーマットは、ファイルヘッダを持たず拡張性がなかった。これに対し、EXEフォーマットは連続した一つのメモリイメージで、コード、データ、スタックの全てが別々の複数のセグメントを用いてアクセスする必要のある場合に対応し、開始アドレスおよびその時のセグメントレジスタの値をファイル先頭から相対指定することが可能でセグメント指定の再配置エントリが存在する。 COMフォーマットと区別するために、MS-DOSにおいてはファイル名には.EXEという拡張子が付けられ、ファイルの先頭には0x5A4D(ASCIIコードで'MZ'という文字列)のマジックナンバーが入っている。これは、MS-DOS 2.0の開発責任者の一人、Mark Zbikowskiのイニシャルに由来する。 C言語による表記は以下の通りである。尚、この定義はWineで使われているヘッダファイル (winnt.h) の定義から引用した。WORDは16ビット整数であり、DWORDは32ビット整数である。 また、拡張ヘッダという概念が後に付け加えられ、そこから指定されたヘッダに、WindowsやOS/2の実行ファイルの情報を指定し、これらのOS用に作られたプログラムが本来のアーキテクチャでOSで実行された場合は、その拡張ヘッダを解釈し、MS-DOS上で実行された場合、実行できない事を表示し終了させる等のプログラムを置くことが可能である。このようなフォーマットにはPortable Executable (PE) やNew Executable (NE), Linear Executable (LE, LX) 等が存在する。また、Microsoft Windows 3.xの386エンハンスドモードのカーネルであるWIN386.EXEや、Microsoft Windows 95等のカーネルであるVMM386.VXDでは特殊な拡張ヘッダで内部に存在するプロテクトモードのカーネルコードや仮想デバイスドライバ等へのオフセットを保持しており、リアルモードでの初期化を普通のDOSプログラムとして行った上で、そのヘッダにあるプロテクトモードのコードを実行していた。(WIN386.EXEではW3, VMM386.VXDではW4という識別子。).

24 関係: 実行ファイル仮想デバイスドライバマジックナンバー (フォーマット識別子)ヘッダファイルプロテクトモードプログラム (コンピュータ)データファイルフォーマットエンディアンオブジェクトファイルカーネルスタックセグメント方式COMファイルLinear ExecutableMicrosoft WindowsMicrosoft Windows 3.xMicrosoft Windows 95MS-DOSNew ExecutableOS/2Portable ExecutableWine拡張子

実行ファイル

実行ファイル(じっこうファイル、Executable、Executable file)とは、コンピュータがプログラムとして解釈実行できるファイルである。実行可能ファイル、実行形式ファイル、あるいは単に実行形式とも呼ばれる。 多くの場合、特定のCPUの機械語を格納したバイナリ形式である(この形式の実行ファイルを単に「バイナリ(ファイル)」と呼ぶこともある)。あるファイルが実行ファイルかどうかは、主に規約の問題である。オペレーティングシステムによっては実行ファイルであることを示すファイル名の規約が存在する(拡張子 ".bin" ".exe"など)。あるいはファイルのメタデータで実行ファイルかどうかを示す(例えばUNIX系オペレーティングシステムのファイルパーミッションビット)。 最近のアーキテクチャでは、実行ファイルにはプログラム自体に含まれない情報も格納される。例えば、実行に必要な環境についての情報、デバッグ情報、シンボル情報などである。 実行ファイルには特定のオペレーティングシステムのシステムコールを呼び出すコードが含まれることもある。つまり実行ファイルはプロセッサ固有であるだけでなくオペレーティングシステム固有でもある。 ソースファイルと実行ファイルの違いはあいまいである。というのもソースから実行形式への変換が暗黙のうちに行われることがあるためである。インタプリタのファイル(シェルスクリプトやバッチファイルを含む)は、厳密に言えばインタプリタプログラムが解釈する命令を与えるものである。.

新しい!!: EXEフォーマットと実行ファイル · 続きを見る »

仮想デバイスドライバ

仮想デバイスドライバ (Virtual Device Driver, VxD)とはWindows 3.xからWindows 9x系までにおいて用いられたデバイスドライバの形式である。VxDとは仮想デバイスドライバの多くがVデバイスD(例えばマウスのドライバならVMOUSEDという具合)のように名付けられていたことに由来する。 VxDは次のような経緯で誕生した。そもそもは、シングルタスクだったDOSアプリケーションがハードウェアデバイスを独占的に使用していたことによる。そのため、Windows/386からWindows上で複数のDOSアプリケーションを実行可能となるにあたって、そのままでは複数のDOSアプリケーション同士でデバイスの使用要求が衝突する可能性が懸念された。 そこで、マイクロソフトは各DOSアプリケーションを仮想DOSマシン (VDM) と呼ばれる仮想機械上で動作することにした。仮想機械内ではデバイスも仮想化され、DOSアプリケーションがデバイスだと思って操作しているものは、実際のデバイスではない。代わって相手をするのが仮想デバイスドライバである。仮想デバイスドライバは各仮想マシンの要求を調停して実際のハードウェアを操作する。この「仮想デバイスを提供する」という点から仮想デバイスドライバと呼ばれるのである。仮想機械のインターフェイスとして16ビットコードと32ビットコードの混在が必要になるため、Linear Executable形式のファイルとなっている。 なお、DOSアプリケーションや16ビットWindowsアプリケーションばかりでなく、Win32アプリケーションでもInt 21hソフトウェア割り込みなど一部の仮想デバイスの操作は可能である。手順としては、CreateFile関数でVxDオブジェクトを作成し、得られたハンドルを基にDeviceIoControl関数を呼び出す。そのような例は、やなどに散見される。 Windows NT系はVxDに対応していない。Windows 2000やWindows XPではWindows Driver Model (WDM) が用いられている。Windows Vistaでは、新しくWindows Driver Foundation (WDF) も導入されている。.

新しい!!: EXEフォーマットと仮想デバイスドライバ · 続きを見る »

マジックナンバー (フォーマット識別子)

マジックナンバーとは、ファイルなどオブジェクト類の形式を識別するもの、フォーマット識別子のことである - ジャーゴンファイルではコンピュータ関連の4種類のマジックナンバーが示されており、本項のマジックナンバーは左記の3に相当する。。 なお、本項内でのマジックナンバーの具体的な値の表記には、特記無い限り16進表記を用いる。.

新しい!!: EXEフォーマットとマジックナンバー (フォーマット識別子) · 続きを見る »

ヘッダファイル

ヘッダファイル(Header file)は、特にC言語やC++でのプログラミングで使われるファイルであり、一般にソースコード形式をしていて、コンパイラが別のソースファイルの一部として自動的に展開して使用する。一般にヘッダファイルは、ソースファイルの先頭部分に書かれたディレクティブによってインクルード(その場に内容を展開)される。インクルードファイル(Include file)とも。 ヘッダファイルには、サブルーチンや変数やその他の識別子の前方宣言が含まれていることが多い。複数のソースファイルで宣言する必要のある識別子を1つのヘッダファイルに置き、必要に応じて個々のソースファイルがそのヘッダファイルをインクルードする。 C言語やC++では、標準ライブラリ関数はヘッダファイルで宣言されている。詳しくは、標準Cライブラリと標準C++ライブラリを参照されたい。.

新しい!!: EXEフォーマットとヘッダファイル · 続きを見る »

プロテクトモード

プロテクトモードとは、80286以降のx86アーキテクチャのCPUモードの一つ。正式名称は Protected Virtual Address Mode(保護仮想アドレスモード)である。メモリやI/Oの保護を行うと共に、アドレス空間の拡張を行ったモードである。このモードでは仮想記憶、ページング、安全なマルチタスクといった機能をシステムソフトウェアが使えるようになり、アプリケーションソフトウェアへのオペレーティングシステム (OS) の制御能力が向上するよう設計されている。.

新しい!!: EXEフォーマットとプロテクトモード · 続きを見る »

プログラム (コンピュータ)

ンピュータプログラム(英:computer programs)とは、コンピュータに対する命令(処理)を記述したものである。コンピュータが機能を実現するためには、CPUで実行するプログラムの命令が必要である。 コンピュータが、高度な処理を人間の手によらず遂行できているように見える場合でも、コンピュータは設計者の意図であるプログラムに従い、忠実に処理を行っている。実際には、外部からの割り込み、ノイズなどにより、設計者の意図しない動作をすることがある。また設計者が、外部からの割り込みの種類を網羅的に確認していない場合もある。.

新しい!!: EXEフォーマットとプログラム (コンピュータ) · 続きを見る »

データ

データ(data)とは、事実や資料をさす言葉。言語的には複数形であるため、厳密には複数の事象や数値の集まりのことを指し、単数形は datum(データム)である。.

新しい!!: EXEフォーマットとデータ · 続きを見る »

ファイルフォーマット

ファイルフォーマットはコンピュータなどの情報機器で利用するファイルの保存形式である。コンピュータで扱う文書、音声、画像、動画などのさまざまなメディアのファイルを特定の利用方法やアプリケーションソフトウェアで共通に扱うための形式や規格のこと。.

新しい!!: EXEフォーマットとファイルフォーマット · 続きを見る »

エンディアン

ンディアン(endianness)は、複数のバイトなどを並べる順序の種類である。一般的な用語による表現ではバイトオーダ(byte order)、ないしそれを一部訳して日本語ではバイト順とも言う。 英語の「endian」という単語自体には元々は「配置方式」「並び順」といった意味はなかった(#語源を参照)。日本では総称として「エンディアン」と呼ぶことが多いが、英語でそれに相当する語はendianness(エンディアンネス)である。.

新しい!!: EXEフォーマットとエンディアン · 続きを見る »

オブジェクトファイル

ブジェクトファイル またはオブジェクトコード とは、コンパイラがソースコードを処理した結果生成される、コード生成の結果であるバイナリコードを含む中間的なデータ表現のファイルである。中身は、機械語バイナリとそれに付随するシンボルテーブルやリロケーションテーブルといった付加情報であり、さらにデバッグ支援情報や近年はリンク時最適化等のための高度な情報が含まれる場合もある。オブジェクトファイル群をリンクすることによって最終的な実行ファイルやライブラリが作成される。オブジェクトファイルのほとんどは機械語である(コンピュータのCPUが直接実行できるコード)。オブジェクトファイルフォーマットはコンパイラやアセンブラが生成するオブジェクトファイルのファイルフォーマットである。.

新しい!!: EXEフォーマットとオブジェクトファイル · 続きを見る »

カーネル

ーネルはアプリケーションソフトウェアとコンピュータのハードウェアを結び付ける。 カーネル(kernel)は、階層型に設計されたオペレーティングシステム (OS) の中核となる部分である。アプリケーションとハードウェアレベルでの実際のデータ処理との間の架け橋である。システムのリソースを管理し、ハードウェアとソフトウェアコンポーネントのやりとりを管理する。 オペレーティングシステムの基本コンポーネントとして、カーネルはメモリ、CPU、入出力を中心としたハードウェアを抽象化し、ハードウェアとソフトウェアがやり取りできるようにする。また、ユーザープログラムのための機能として、プロセスの抽象化、プロセス間通信、システムコールなどを提供する。 これらのタスクはカーネルによって方式が異なり、設計も実装も異なる。モノリシックカーネルは全てを一つの仮想アドレス空間に格納されたコードで実行して性能を向上させようとする。マイクロカーネルはサービスの大部分をユーザー空間で実行し、コードの保守性とモジュール性を向上させようとする, by K.J.。多くのカーネルはこの二つのカテゴリのいずれか、あるいは中間である。.

新しい!!: EXEフォーマットとカーネル · 続きを見る »

スタック

タックは、コンピュータで用いられる基本的なデータ構造の1つで、データを後入れ先出し(LIFO: Last In First Out; FILO: First In Last Out)の構造で保持するものである。抽象データ型としてのそれを指すこともあれば、その具象を指すこともある。 特にその具象としては、割込みやサブルーチンを支援するために極めて有用であることから、1970年代以降に新しく設計された、ある規模以上のコンピュータは、スタックポインタによるコールスタックをメモリ上に持っていることが多い。.

新しい!!: EXEフォーマットとスタック · 続きを見る »

セグメント方式

メント方式 (memory segmentation)は、メモリ管理の方式の一つ。プログラムやデータをセグメントまたはセクションという「可変な」大きさのまとまりで管理する。セグメントは、メモリ空間上で、情報の属性などによって分類されたグループである。セグメント方式でメモリ位置を参照するには、セグメントを識別する値とセグメント内のオフセットを指定する。セグメントまたはセクションはプログラムをコンパイルした際に生成されるオブジェクトファイルでも使われており、それらがリンクされて実行ファイルが生成され、そのイメージがメモリにロードされる。 セグメントは仮想記憶やメモリ保護機能を実現する方式の一つである。プログラムのモジュール毎やメモリ使用法の異なるクラス毎に「コードセグメント」や「データセグメント」といった各種セグメントが生成される。1つのセグメントを複数のプログラムが共有することもある。.

新しい!!: EXEフォーマットとセグメント方式 · 続きを見る »

COMファイル

COMファイル (コムファイル、COM file) は、実行可能ファイル形式の一つ。語源はcommand(命令)。拡張子は.COM」(本来は大文字)だが、トップレベルドメインの.com (commercial) とは無関係。 実行時のメモリイメージがそのままファイルとなっている、最も単純な実行可能ファイル形式である。 MS-DOSのCOMファイルはコンピュータウイルスCascadeに感染する。.

新しい!!: EXEフォーマットとCOMファイル · 続きを見る »

Linear Executable

Linear Executableとは、OS/2やMicrosoft Windowsそして、一部のDOSエクステンダで使われたオブジェクトファイルフォーマットである。最初にOS/2 2.0で導入された。 特徴はIA-32のプロテクトモードを意識した、16ビットおよび32ビットの複数のセグメントに渡る実行イメージを保持可能なことである。特にWindowsにおいては、その性質上16ビットコードと32ビットコードが混在する必要のある仮想デバイスドライバ(VxD)で使われた。 他のEXEフォーマットの拡張フォーマットと同様に互換性のために、対応しないオペレーティングシステムで実行した場合、対応していない旨を表示して終了する等のDOSプログラムを最初に付ける事になっている。その拡張ヘッダから指されたオフセットに'LE'または'LX'と言うシグネチャで始まるファイルヘッダがある。(WindowsのVxDでは常にLE) 尚、Windows NT系に於いてはドライバも全てPortable Executableになっており使われていない。.

新しい!!: EXEフォーマットとLinear Executable · 続きを見る »

Microsoft Windows

Microsoft Windows(マイクロソフト ウィンドウズ)は、マイクロソフトが開発・販売するオペレーティングシステム (OS) の製品群。グラフィカルユーザインタフェース (GUI)を採用している。.

新しい!!: EXEフォーマットとMicrosoft Windows · 続きを見る »

Microsoft Windows 3.x

Microsoft Windows 3.x(マイクロソフト ウィンドウズ 3.x)は、MS-DOSを拡張する16ビットオペレーティング環境(Operating Environment:)Windows 3.1からオペレーティングシステムを名乗った。。主なバージョンとして1990年に発売された「Windows 3.0」と、1991年に発売された改良版「Windows 3.1」がある。 その他、マルチメディアに対応した「Windows 3.0 with Multimedia Extensions (Windows MME)」を一部機種で展開するなど、幾度かのマイナーバージョンアップが行われている。英語版ではネットワークをサポートする「Windows for Workgroup(Windows3.1ベース)」も発売されている。また追加モジュールとして32ビットアプリケーションを動作させるための「Win32s」、画像表示を高速化するための「WinG」、AVI形式の動画を再生するための「Video for Windows」、LANに接続するための「LAN Manager」、インターネットやメールをするための「Internet Explorer(16ビット版)」がある。 MS-DOS環境から起動させるため、事前にMS-DOSシステムをコンピュータ上で動作させておく必要がある。しかし、Windows 3.1以前はMS-DOSの拡張製品としてそれぞれが別々に販売されたため、MS-DOSは別途購入する必要がある。.

新しい!!: EXEフォーマットとMicrosoft Windows 3.x · 続きを見る »

Microsoft Windows 95

Windows 95(ウィンドウズ きゅうじゅうご)は、Microsoft Windows 3.1の後継として、マイクロソフトが1995年に出したオペレーティングシステム (OS) である。正式名称はMicrosoft Windows 95 Operating Systemである。 Microsoft Windows (Windows) ファミリーの1つであり、コードネームはChicago。Windowsの内部バージョンは4.0(初期版)である。.

新しい!!: EXEフォーマットとMicrosoft Windows 95 · 続きを見る »

MS-DOS

MS-DOS(エムエス-ディーオーエス、エムエスドス)は、マイクロソフトが開発・販売していた、8086系マイクロプロセッサをCPUとする、IBM PCおよびそれに似た構成の(たとえばPC-98など)パーソナルコンピュータ向けのオペレーティングシステム(OS)である。IBMへのOEM供給品であった PC DOS (IBM DOS)を自社製品として供給・販売したもので、バージョン6以降はPC DOSから完全に独立して開発された。.

新しい!!: EXEフォーマットとMS-DOS · 続きを見る »

New Executable

New Executableファイルとは、マイクロソフトの16ビットOSで採用された共有ライブラリおよび実行ファイルフォーマットの一つ。最初にMS-DOS 4.0で採用され、その後、Microsoft WindowsやOS/2で採用された。 特徴は、プロテクトモードを意識したセグメンテーションアーキテクチャに対応し、複数の連続しない64KB以下のファイルセグメントに対応していることである。 他のEXEフォーマットの拡張フォーマットと同様に互換性のために、対応しないオペレーティングシステムで実行した場合、対応していない旨を表示して終了する等のDOSプログラムを最初に付ける事になっている。その拡張ヘッダから指されたオフセットに'NE'と言うシグネチャで始まるファイルヘッダがあり、その後にセグメントテーブル等が数個並んでいる。 32ビットのWindowsアプリケーションにおいては、Portable Executableが使われるようになり、現役を退いた形になっている。.

新しい!!: EXEフォーマットとNew Executable · 続きを見る »

OS/2

OS/2(オーエス・ツー)は、MS-DOSおよびPC DOSの後継として、IBMとマイクロソフトとの共同で開発された、パーソナルコンピュータ(パソコン)用の16ビットおよび32ビットのオペレーティングシステム (OS) である。.

新しい!!: EXEフォーマットとOS/2 · 続きを見る »

Portable Executable

Portable Executable (PE) は、主に32ビット及び64ビット版のMicrosoft Windows上で使用される実行ファイルのファイルフォーマットを指す。PEフォーマット自体はオペレーティングシステムやハードウェアに依存しない設計となっているため、UEFIアプリケーションのバイナリフォーマットには、PEが採用されている。また、前述のUEFIとの整合性の確保やMicrosoft製OSとのマルチブート環境の構築を容易にする目的で、x86およびx86-64アーキテクチャにおけるLinuxカーネル実行ファイルやブートローダなど、非Windows系OSのシステムファイルの一部にも用いられている。 EXEフォーマットとの互換性のため、MS-DOS上で実行すると「This program cannot be run in DOS mode.」のようにDOSで実行されない旨が表示され、プログラムが終了するなどのMS-DOSプログラムが先頭に付く。その後ろに、PE固有の識別子およびCOFFに似たデータ構造があり、MS-DOSヘッダによってそのオフセットが指されている。また、さまざまなCPUアーキテクチャに対応するため、内部に判別用のフラグを持つ。実行時にDLLというファンクション群を動的にリンクし、コンポーネントレベルでのバグフィックス、互換性の維持が行われるようになっている。また、リソース領域にアイコン等を格納でき、GUI上で表示された場合アイコンがグラフィカルに表示され、ソフトウェア判別を容易にできる。.

新しい!!: EXEフォーマットとPortable Executable · 続きを見る »

Wine

Wine (ワイン)は、オープンソースの Windows API 実装を通じて、主としてx86アーキテクチャ上のUnix系オペレーティングシステム (OS) においてWindows用アプリケーションをネイティブ動作させることを目標とするプログラム群である。 X Window Systemを利用して、16ビット・32ビット・64ビットWindows向けGUIアプリケーションを動作させることができるほか、MS-DOS用アプリケーションも動作する。x86上のLinux環境を中心に開発されているので、Solaris 、FreeBSD 、macOSなど、他のOSにも移植されているが、それらの環境下では問題が発生する可能性は比較的高い。原理上、カーネルレベルのスレッドに対応しているOSであることが必要である。 名称は、もともとは頭字語であることを意識して、大文字でWINEと表記していたことがあったが、現在はWineと表記するのが正式である。"WINdows Emulator" に由来すると説明されることもあるが、Wine Is Not an Emulator に由来するという、一見してジョークとも取れる、前者とは矛盾する説明がなされることもあり、これは技術的理由による。詳しくは後述する。 ライセンスにLGPLを採用している。フリーソフトウェアである。 かつてはBSDライセンスを採用していた。.

新しい!!: EXEフォーマットとWine · 続きを見る »

拡張子

拡張子(かくちょうし、filename extension)とは、ファイルの種類を識別するためにファイルの名前(ファイル名)の末尾につけられる文字列。ファイル名の本体と拡張子は "."(ピリオド、ドット)で区切られ、拡張子はアルファベットと数字の組み合わせで、歴史的には3文字以内が好まれたが、それ以上の場合もある。拡張子は、オペレーティングシステム (OS) においてファイルの判別のために任意につけられるもので、必ずしも必須ではない。拡張子が適切でない場合は、システムまたはアプリケーションソフトウェアの動作に影響を及ぼす場合がある。.tar.gzのように複数のピリオドで区切っているケースもあるが、最後のピリオド以降を拡張子と判断するシステムが一般的である。 Mac OSでは、OSレベルでは各ファイルに埋め込まれたクリエータとファイルタイプで識別するシステムを持っている。macOSでは拡張子も利用して動作するようになり、Mac OS X v10.4 TigerからはUniform Type Identifier (UTI) なる枠組みでデータの種類を判別するようになった。 Unix系OSではファイル名の終端でファイルの種類を表す慣習があり、一般にはsuffixと呼ぶが、必ずしもピリオドで区切るとは限らない。カンマで区切る「,v」や、特に区切り文字使わずに「-」や「~」や「rc」を付けるケースもある。これはあくまでも整理上の便宜であってシステム上意味はない。ただしmakeコマンドがsuffixに基づいたルールに従って動作したり、lsコマンドが色分けして表示するようなケースはある。またデスクトップ環境であるKDE、GNOME、CDE等も拡張子に基づく動作をする。 OS以外では、MIMEタイプの設定に拡張子を利用していることなどがあげられる。Apache HTTP Serverはindex.ja.htmlとindex.html.jaの両方を「日本語(ja)のhtmlファイル」と判断する。最後尾でなくても拡張子として判断する一例である。 こうしたことから、かつては一部のシステムのみの概念だった拡張子は、現在は広い範囲で使われていることがわかる。.

新しい!!: EXEフォーマットと拡張子 · 続きを見る »

ここにリダイレクトされます:

.exeEXEファイルExeファイル

出ていきます入ってきます
ヘイ!私たちは今、Facebook上です! »