A file is a named collection of related data that appears to the user as a single, contiguous block of data and that is retained in storage. Storage refers to computer devices or media which can retain data for relatively long periods of time (e.g., years or decades), such as disk drives and magnetic tape. This contrasts with memory, which which retains its contents only briefly and which physically consists of RAM (random access memory) chips.
Executable files consist of instructions that have been translated from their original source code into machine code, also called machine language or object code through the use of a specialized program called a compiler so that the CPU can use them directly and without further translation. Machine code consists entirely of zeros and ones, which represent the off and on states of the CPU logic circuits and memory cells.
The object code files and any other necessary files (e.g., library files) are then linked together using a linker to create the executable. Linkers are generally included in compilers, and the linking is performed automatically.
Executable files are usually stored in one of several standard directories on the hard disk drive (HDD) on Unix-like operating systems, including /bin, /sbin, /usr/bin, /usr/sbin and /usr/local/bin. Although it is not necessary for them to be in these locations in order to be operable, it is often more convenient. When a program is launched, its executable file is copied into memory by the operating system so that its machine code will be immediately available to the CPU.
In operating systems in which the type of file is indicated by appending an extension after its name, executables are indicated by extensions such as .exe, .com or .bin. Such extensions are generally not necessary in Unix-like operating systems.
Although application programs usually come to mind when the term executable is used, this term also refers to scripts, utilities and even operating systems. A script is a small program written in a scripting language (i.e., a type of simplified programming language). Scripts are stored in plain text files that must be interpreted (i.e., converted on the fly into machine language) by a shell (a program that provides the traditional, text-only user interface for Unix-like operating systems) or other program each time they are executed, rather than being compiled in advance. Unix-like operating systems make extensive use of scripts for controlling the operation of the system.
vmlinuz is the Linux kernel executable. A kernel is a program that constitutes the central core of a computer operating system. In addition to being an executable, vmlinuz is also bootable. This means that it is capable of loading the operating system into memory so that the computer becomes usable and other executables can then be run.
Created July 9, 2005. Updated June 3, 2006.