A.out

a.out
Filename extension
none, .o, .so, .out
Magic number0407, 0410, 0413 (in octal); 0107, 0108, 010B (in hexadecimal)
Developed byAT&T
Type of formatBinary, executable, object, shared libraries

a.out is a file format used in older versions of Unix-like computer operating systems for executables, object code, and, in later systems, shared libraries. This is an abbreviated form of "assembler output", the filename of the output of Ken Thompson's PDP-7 assembler.[1] The term was subsequently applied to the format of the resulting file to contrast with other formats for object code.

"a.out" remains the default output file name for executables created by certain compilers and linkers when no output name is specified, even though the created files actually are not in the a.out format.[2]

Support for the a.out format was deprecated in Linux kernel version 5.1, and support for the format was removed across the 5.18 and 5.19 kernel releases.[3][4][5]

  1. ^ Ritchie (1993): "Thompson's PDP-7 assembler outdid even DEC's in simplicity; it evaluated expressions and emitted the corresponding bits. There were no libraries, no loader or link editor: the entire source of a program was presented to the assembler, and the output file—with a fixed name—that emerged was directly executable. (This name, a.out, explains a bit of Unix etymology; it is the output of the assembler. Even after the system gained a linker and a means of specifying another name explicitly, it was retained as the default executable result of a compilation.)"
  2. ^ Wood, Rupert (8 April 2002). "What to do with a.out". gcc-help (Mailing list). Retrieved 28 April 2007.
  3. ^ "Linux Kernel Finally Deprecating A.out Support". Phoronix. Retrieved 1 September 2020.
  4. ^ "Linux Plans To Stop Building a.out Support On Alpha & M68k To See If Anyone Cares - Phoronix". www.phoronix.com. Retrieved 25 August 2024.
  5. ^ "Linux 5.19 Finally Removes Obsolete x86 a.out support - Phoronix". www.phoronix.com. Retrieved 25 August 2024.