見出し画像

実行ファイルについて|プログラミングの勉強記録

実行ファイルというと、プログラムなファイル「実行できるファイル」だから「実行ファイル」ということと直感的に感じはする。

もう少し限定的な意味で使っている人は、「中身がバイナリデータなプログラムファイル」として使用している人もいる。。バイナリデータとは「メモ帳で中を見ると、読めないデータ(人の場合はまず解読不可)」と解釈する必要がある。

プログラムには

1.中身をメモ帳とかで見られるプログラム(人が理解しやすいソースコードで書かれているメモ帳)
2.中身をメモ帳とかで見られない(人が理解不能、解読不能なソースコード)プログラム

の2つがある。

例えば、PHPというプログラミング言語で作ったプログラムは、メモ帳で開いて中を覗くことができます。PHPファイルは間違いなくプログラムなファイル。ですが、これを「実行ファイル」とは呼ぶことができない。

そんな考えの人たちが言う「実行ファイル」は「中身がバイナリデータなプログラムファイル」です。

※PHPはフレームワークを作る言語でありWordpressの場合だとWebサイト作成を簡易的にするもの。基本的には他のファイルありきの存在でありどちらかというとブロック(壁)を作るのではなく『道を作る』という方が考え的にはいいかもしれない。地図(足跡)もしっくりする考え方だろう。

実行ファイルとは

実行ファイルの元祖浦安鉄筋『寿司打』

ダブルクリック等で起動出来る状態になったプログラムを実行ファイルという。Windowsの場合では、拡張子「.exe」のファイルが実行ファイル。上記写真は実行ファイルの浦安鉄筋の翁『寿司打』。

ソースコードと実行ファイル

実行ファイル(Executable、Executable file)とは、コンピューターがタスクを実行するための解釈可能な命令を含むファイルである。テキストファイルをソフトウェアに変換する。ソースコードとは、プログラミング言語の文法に従い、実現したい機能が記述されたファイルのこと。ソースコードはテキストファイルでありテキストエディタ(メモ帳etc)で開いて中身を確認、編集することができる。

ソースコードはプログラムになる「元」であり、それ自体はプログラムとして実行する事は出来るものではない。なので、人間が読める形のソースを、コンピューターが読める(理解出来る)形のプログラムファイルに変換(翻訳)する必要がある。翻訳することをプログラミングの世界ではコンパイルという。

コンパイルとは

ソースコードを実際に動くプログラムに変換する作業をコンパイルという。コンパイルをする為のプログラムを『コンパイラ(翻訳機)』という。ソースコードをコンパイラに読み込ませることで、実際にパソコン上で動くプログラムが生成されます。

共有ライブラリとは

Trade : ( 〇⇔〇:科学の式 )

ソースコードをコンパイルして作られるのは実行ファイルだけではなく、共有ライブラリという種類のファイルも同様の手順で作成される。共有ライブラリはプログラムに特定の処理を提供するファイル。本体のソフトウェアとしてWindowsではDLLファイル、Mac(UNIX)ではSOファイルと呼ばれている。

共有ライブラリは、それを使用する実行ファイルを起動させると自動的に読み込まれます。プログラムは共有ライブラリが提供する機能を利用することができるようになります。

実行ファイルに共有ライブラリの機能を組み込んでしまうことは可能。

【Dynamic Link Library】DLLファイル

歯車の記号(マーク)

ダイナミックリンクライブラリ (Dynamic Link Library: DLL、動的リンクライブラリ) は、ソフトウェアバイナリ形態の一種。動的リンクを使ったライブラリのこと。あるいは、Windowsで使用されるファイル形式を特に意図して、この語が用いられる場合もある。

複数のプログラムから共通に利用できるように種々の機能をプログラムとは分離させた、シェアードライブラリ(共有ライブラリ)でもあることが多い。

たとえば、「マウスカーソルが現在、画面上のどの座標にあるかを調べる」などという普遍性・一般性を持つ機能は、さまざまな実行プログラム(アプリケーション)から参照される可能性があるが、その部分をモジュール化して、さまざまなプログラムから使えるようにすることでコードの再利用性を高め、多重開発(車輪の再発明)を防ぐことができる。このような場合に、この機能をダイナミックリンクライブラリとして実装し、アプリケーション実行プログラムの開始時に動的リンクしてから利用する方法がある。

Windowsにおけるダイナミックリンクライブラリのモジュールは、拡張子が「.dll」のファイルである。DLLは本体ソフトウェアつまり実行プログラム(「.exe」拡張子を持つモジュール)によって実行時にロードされる。

Executable and Linkable Format


①テキスト(文字)の読み込み→本体のソフトウェアのデータの読み込み→コンパイル→①に戻る

Executable and Linkable Format (ELF) は実行ファイルの1種。

ELF Header(題名:タイトル)
Program header table (目次)
text(テキスト:文字)
rodate(画像テキスト)
data(本体のソフトウェアに読み込み:カウント)
section header table(他の記事の生成と通信など)

ELFヘッダ

ファイルの先頭に存在し、ELF識別子、アーキテクチャ情報および、他の2つのヘッダへの情報を持つ。

プログラムヘッダ

ファイル上のどの部分(セグメント)がどのような属性で何処に読み込まれるかを保持するヘッダであり、ファイルローダによって扱われる。実行時にELFヘッダに続いてディスクから何らかの形で読み込まれるセグメントの数だけ存在する。直接読み込まれるわけではないオブジェクトファイルには存在しないことがある。

セクションヘッダ

オブジェクトファイルの論理的な構造を記述する部分で、ヘッダと名前がついているが実際にはファイルの最後あたりに置かれていることが多い。ここはリンカやデバッガによって参照されることがある。セクションはセクション名があるが、それは特殊なセクションに置かれ何番目の文字列かという指し方を行う。このことによって、エントリそのものは固定長にしつつセクション名の長さ制限を取り払っている。

まとめ

「広告」と「読み込み速度」の回転を速めるという意味でおすすめのサイト。

Wowgame

Yahooゲーム

お魚タイピング


この記事が気に入ったらサポートをしてみませんか?