Binary
A file whose contents are bytes rather than readable text, often produced by compilation and linking.
Definition
A binary is a file made of bytes (not human-readable text). In the “software pipeline” sense, it’s often an artifact produced by compilation and linking.
Binary is a broad term. It includes compiled program artifacts, but also includes many kinds of non-text data files.
Synonyms and related terms
- Related: object file, library, executable, blob
- Neighbor concepts: artifact and executable
Binary doesn’t automatically mean executable
Some binaries are runnable (executable). Others are not: they might be libraries, intermediate objects, or data files.
What a program binary commonly contains
Program binaries usually contain more than “just code”:
- machine code (instruction bytes)
- metadata for loading (headers, segment/section tables)
- symbol information (sometimes stripped in production)
- relocation and dependency information (especially with dynamic linking)
- optional debug information
Why the distinction matters
In operational conversations, “binary” is often used loosely. It helps to be precise:
- “Do we have the right binary?” is about the correct build artifact/version.
- “Is it executable?” is about whether the OS can load and start it.
- “Does it behave correctly?” depends heavily on the runtime environment.
Mini-scenario
A binary is copied from an Intel machine to an ARM machine. The file is still a binary, but it isn’t usable there because the machine instructions inside target a different CPU architecture. This is a binary-level mismatch, not an application-level bug.