In computing, an executable file causes a computer to perform indicated tasks according to encoded instructions, as opposed to a file that only contains data.
Files that contain instructions for an interpreter or virtual machine may be considered executables, but are more specifically called scripts or bytecode. Executables are also called "binaries" in contrast to the program's source code.
A binary file is a computer file which may contain any type of data, encoded in binary form for computer storage and processing purposes.
For example, a computer document file that contains formatted text (such as bolded type, italics, font colors, etc) are considered binary file. Binary files that contain only textual data (without any formatting) are called "plain text" files.
In many cases, plain text files are considered to be different from binary files because binary files are made up of more than just plain text. When downloading, a completely functional program without any installer is also often called program binary, or binaries (as opposed to the computer programmer's source code).
Binary File Interaction with Operating Systems
Microsoft Windows designates executable files by a filename extension (.EXE). On the other hand, Unix-like operating systems mark executables files using file metadata (such as the "execute" permission bit).
Most operating systems will also check that the file has a valid executable file format to safeguard against random bit sequences from inadvertently being run as instructions.
Modern operating systems retain control over the computer's resources, requiring that individual programs make system calls to access privileged resources. Since each operating system family features its own system call architecture, executable files are generally tied to specific operating systems.
Emulators and Executable Files
There are many tools available that make executable files made for one operating system work on another one by implementing a similar or compatible application binary interface. For example: 'Wine,' which implements a win32-compatible library for x86 processors, can run an Windows-based executable file on a Linux / Unix system.
When the binary interface of the hardware the executable was compiled for differs from the binary interface on which the executable is run, the program that does this translation is called an emulator.
This document is licensed under the GNU Free Documentation License (GFDL), which means that you can copy and modify it as long as the entire work (including additions) remains under this license.