Jump to content

Executable

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Paulnasca (talk | contribs) at 09:52, 27 April 2006 (added image of a hexdump of a executable file). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

A Hexdump of a binary executable file

An executable or executable file, in computer science, is a file whose contents are meant to be interpreted as a program by a computer.

Most often, it contains the binary representation of machine instructions of a specific processor (in which case the executable may also be referred to as a binary), but can also contain an intermediate form that will require the services of an interpreter to be run.

Whether a file is an executable or not is mostly a matter of convention; some operating systems designate executable files by specific naming convention (such as the name ending in a filename extension ".bin" or ".exe") or noted alongside the file in its metadata (such as the "execute" permission bits under Unix-like operating systems).

In theory, there is no limit to what type of file can be executed, assuming there is some program set up to execute it. For example, if you have Java 1.5 installed, you can execute many .JAR files simply by double-clicking them, but some .JAR files are only used as parts of new software.

On most modern architectures, an executable file contains much information which is not part of the program itself, such as information on the environment required to run the program, debugging and symbolic information, or other housekeeping information used by the operating system to prepare the program to be run.

Also, executables contain calls to operating system services in addition to regular machine instructions. This means that executables are usually operating system-specific in addition to being processor-specific.

Nowadays, the distinction between a program in source form (ultimately meant to be human-readable) and in executable form (ultimately meant to be machine-readable) is getting less distinct since the act of transforming the former into the latter (by compilation) or interpreting it may be performed implicitly.

Thus, the meaning for the term executable has been usually extended from a file containing machine instructions to any file that can ultimately be executed by the environment without requiring an explicit transformation.

Files containing interpreted language, also known as scripts, are designed to give a set of instructions to an executable.

For a list of executable formats, see the lists at object file.