a.out(5) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

a.out(5)

a.out(5)                         File Formats                         a.out(5)

NAME
       a.out - Executable and Linking Format (ELF) files

SYNOPSIS
       #include <elf.h>

DESCRIPTION
       The  file name a.out is the default output file name from the link edi‐
       tor, ld(1). The link editor will make an a.out executable if there were
       no errors in linking. The output file of  the  assembler,  as(1),  also
       follows  the format of the a.out file although its default file name is
       different.


       Programs that manipulate ELF files may use the library  that  elf(3ELF)
       describes.  An  overview  of the file format follows. For more complete
       information, see the references given below.

       tab() box; cw(2.69i) |cw(2.81i) cw(2.69i) |cw(2.81i) Linking ViewExecu‐
       tion View _ ELF headerELF header _ Program header  tableProgram  header
       table optional _ Section 1Segment 1 _ . . .  _ Section nSegment 2 _ . .
       .  _ . . .. . .  _ Section header tableSection header table optional



       An  ELF header resides at the beginning and holds a "road map" describ‐
       ing the file's organization. Sections hold the bulk of object file  in‐
       formation for the linking view: instructions, data, symbol table, relo‐
       cation  information,  and so on. Segments hold the object file informa‐
       tion for the program execution view. As shown, a  segment  may  contain
       one or more sections.


       A  program  header  table, if present, tells the system how to create a
       process image. Files used to build a process image (execute a  program)
       must  have a program header table; relocatable files do not need one. A
       section header table contains information describing  the  file's  sec‐
       tions. Every section has an entry in the table; each entry gives infor‐
       mation such as the section name, the section size, etc. Files used dur‐
       ing linking must have a section header table; other object files may or
       may not have one.


       Although  the  figure  shows the program header table immediately after
       the ELF header, and the section header table  following  the  sections,
       actual files may differ. Moreover, sections and segments have no speci‐
       fied order. Only the ELF header has a fixed position in the file.


       When  an  a.out file is loaded into memory for execution, three logical
       segments are set up: the text segment, the  data  segment  (initialized
       data  followed  by uninitialized, the latter actually being initialized
       to all 0's), and a stack. The text segment is not writable by the  pro‐
       gram;  if  other  processes  are  executing  the  same  a.out file, the
       processes will share a single text segment.


       The data segment starts at the next maximal page boundary past the last
       text address. If the system supports more than one page size, the "max‐
       imal page" is the largest supported size. When  the  process  image  is
       created, the part of the file holding the end of text and the beginning
       of  data may appear twice. The duplicated chunk of text that appears at
       the beginning of data is never executed; it is duplicated so  that  the
       operating  system  may  bring in pieces of the file in multiples of the
       actual page size without having to realign the beginning  of  the  data
       section  to  a  page boundary. Therefore, the first data address is the
       sum of the next maximal page boundary past the end of text plus the re‐
       mainder of the last text address divided by the maximal page  size.  If
       the last text address is a multiple of the maximal page size, no dupli‐
       cation  is  necessary. The stack is automatically extended as required.
       The data segment is extended as requested by the brk(2) system call.

SEE ALSO
       as(1), elfcompress(1), elfdiff(1), elfdump(1), elfedit(1),  elffile(1),
       elfsign(1),  elfwrap(1),  ld(1),  ld.so.1(1),  ldd(1),  mcs(1),  nm(1),
       pvs(1), strip(1), brk(2), mmapobj(2), elf(3ELF)


       Oracle Solaris 11.4 Linkers and Libraries Guide

Oracle Solaris 11.4               14 Dec 2023                         a.out(5)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3