A.out: Difference between revisions

Jump to navigation Jump to search
m
Added positions and ELF link
[unchecked revision][unchecked revision]
m (Added basic description)
m (Added positions and ELF link)
Line 2:
{{File formats}}
 
A.OUT is the "original" binary format for Unix machines. It is considered obsolete today because of several shortcomings. It was superseded by System V [[ELF]]. However, as it is extremely simple and supported by many compilers/assemblers, it may be a good choice if you're willing to develop your own format or have more information than 'raw binary' for your bootloader.
 
==Structure==
Line 33:
|}
===The exec header===
Every binary file begins with an exec structure, which is 32 or 64 bytes in size:
<source lang="c">
struct exec {
Line 49:
{| class="wikitable"
|-
! Position (32 bit)
! Position (64 bit)
! Field
! Description
|-
|0-3
|0-7
|a_midmag
|This field is stored in network byte-order so that binaries for machines with alternative byte orders can be distinguished. It has a number of sub-components accessed by the macros N_GETFLAG(), N_GETMID(), and N_GETMAGIC(), and set by the macro N_SETMAGIC().
|-
|4-7
|8-15
|a_text
|Contains the size of the text segment in bytes.
|-
|8-11
|16-23
|a_data
|Contains the size of the data segment in bytes.
|-
|12-15
|24-31
|a_bss
|Contains the number of bytes in the `bss segment'. The kernel loads the program so that this amount of writable memory appears to follow the data segment and initially reads as zeroes.
|-
|16-19
|32-39
|a_syms
|Contains the size in bytes of the symbol table section.
|-
|20-23
|40-47
|a_entry
|Contains the address in memory of the entry point of the program after the kernel has loaded it; the kernel starts the execution of the program from the machine instruction at this address.
|-
|24-27
|48-55
|a_trsize
|Contains the size in bytes of the text relocation table.
|-
|28-31
|56-63
|a_drsize
|Contains the size in bytes of the data relocation table.
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.

Navigation menu